tecnologia:lector_usb
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
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
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.txt · Last modified: by admin
