Eu tenho este sistema onde eu tenho 8 leitores RFID USB que eu gostaria de distinguir um do outro. Aqui está um trecho de lsusb
Bus 002 Device 011: ID 05fe:1010 Chic Technology Corp. Optical Wireless
Bus 002 Device 012: ID 05fe:1010 Chic Technology Corp. Optical Wireless
Como você pode ver, o idVendor
e o idProduct
são os mesmos para os dois leitores RFID USB.
P1: Alguém pode me ajudar a fazer um --attrubute-walk
com udev info
para que eu possa ver se há algum parâmetro exclusivo para o indivíduo leitores. (Estou usando o Ubuntu 14.04 LTS)
Este é o caminho da sys que eu acho que devo procurar e o que a pasta contém:
nicolai@nicolai-K53SV:~$ ls /sys/bus/usb/devices/
1-0:1.0 1-1:1.0 1-1.2:1.0 1-1.4 2-0:1.0 2-1:1.0 4-0:1.0 usb2 usb4
1-1 1-1.2 1-1.2:1.1 1-1.4:1.0 2-1 3-0:1.0 usb1 usb3
Então, claro, tentei o seguinte:
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb1
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb2
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb3
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb4
Mas não consigo encontrar os dois dispositivos listados no topo (com ID 05fe: 1010).
Q2: Se houver um parâmetro exclusivo para o leitor individual, como posso (espero que em python) distinguir entre eles?
Aqui está um código python que eu pensei que poderia usar (até que percebi que o ID é o mesmo para todos os leitores de RFID)
import usb
dev = usb.core.find(idVendor=0x05fe,idProduct=0x1010)
if dev is None:
raise ValueError('Device not found')
else:
print('Device found')
A1: Esta é a saída do link lsusb -v
:
Como pode ser visto, o iSerial é apenas zero e todos os outros atributos são os mesmos para ambos os dispositivos.
Então, para Q2: Eu queria saber se eu poderia usar o comando setserial
bash para escrever uma série para o leitor RFID USB. Em caso afirmativo, esta serial é armazenada mesmo depois que a energia é perdida, ou você tem que criar um script que cria as séries a cada vez que você inicializa?
Qualquer sugestão é útil.