User Tools

Site Tools


tecnologia:lector_usb

This is an old revision of the document!


Para reiniciar USB y que vuelva a leer.

Si lanzamos la lectura, da error como si estuviera ocupado:

python3 /home/pi/axpertbot-lite-main/local/inverter_data_read.py 92931712101193

</code> Traceback (most recent call last):

File "/home/pi/axpertbot-lite-main/local/inverter_data_read.py", line 16, in <module>
  inverter = inverter_utilities.getDevice(0x0665, 0x5161, argDeviceSerialNumber)
File "/home/pi/axpertbot-lite-main/local/inverter_utilities.py", line 53, in getDevice
  serialNumberOutput = getSerialNumber(dev)
File "/home/pi/axpertbot-lite-main/local/inverter_utilities.py", line 74, in getSerialNumber
  dev.set_interface_altsetting(0,0)
File "/usr/lib/python3/dist-packages/usb/core.py", line 902, in set_interface_altsetting
  self._ctx.managed_set_interface(self, interface, alternate_setting)
File "/usr/lib/python3/dist-packages/usb/core.py", line 102, in wrapper
  return f(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/usb/core.py", line 199, in managed_set_interface
  self.managed_claim_interface(device, i)
File "/usr/lib/python3/dist-packages/usb/core.py", line 102, in wrapper
  return f(self, *args, **kwargs)
File "/usr/lib/python3/dist-packages/usb/core.py", line 167, in managed_claim_interface
  self.backend.claim_interface(self.handle, i)
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 811, in claim_interface
  _check(self.lib.libusb_claim_interface(dev_handle.handle, intf))
File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 595, in _check
  raise USBError(_strerror(ret), ret, _libusb_errno[ret])

usb.core.USBError: [Errno 16] Resource busy </code>

Buscamos cual es el product y vendor del USB:

lsusb
Bus 001 Device 005: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 004: ID 0665:5161 Cypress Semiconductor USB to Serial
Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp. 
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Es Cypress Semiconductor:

Product: 5161
Vendor: 0665

Buscamos a que usb corresponde:

ls -l /sys/bus/usb/devices/

Son enlaces simbólicos:

lrwxrwxrwx 1 root root 0 Feb 14  2019 1-0:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-0:1.0
lrwxrwxrwx 1 root root 0 Feb 14  2019 1-1 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.1 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1
lrwxrwxrwx 1 root root 0 Feb 14  2019 1-1:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1:1.0
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.1.1 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.1
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.1:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1:1.0
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.1.1:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.1/1-1.1.1:1.0
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.2 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.2:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0
lrwxrwxrwx 1 root root 0 Nov 29 21:57 1-1.3 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3
lrwxrwxrwx 1 root root 0 Nov 29 22:26 1-1.3:1.0 -> ../../../devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0
lrwxrwxrwx 1 root root 0 Nov 29 21:57 usb1 -> ../../../devices/platform/soc/3f980000.usb/usb1

Buscamos el vendor 0665

find /sys/devices/platform/soc/3f980000.usb/usb1/ -name idVendor|xargs -i grep --with-filename 0665 {} 
/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/idVendor:0665
/sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/idVendor:0665

Reseteamos los dos. El primero es el 92931712101193 y el segundo es 92931803103279:

echo 0 > /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/authorized
sleep 1
echo 1 > /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/authorized 
echo 0 > /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/authorized
sleep 1
echo 1 > /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/authorized 

Ahora si lanzamos la lectura, funciona:

python3 /home/pi/axpertbot-lite-main/local/inverter_data_read.py 92931712101193
92931712101193 0.0 229.9 50.0 0229 0185 004 394 49.00 000 068 0027 0000 000.0 00.00 00004 00010000 00 00 00000 010#e
tecnologia/lector_usb.1638227156.txt.gz · Last modified: by admin