我有一个系统,其中有 8 个 USB RFID 读取器,我想将它们彼此区分开来。以下是摘录自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
如您所见,两个 USB RFID 阅读器的idVendor
和是相同的。idProduct
Q1:有人能帮我做一个吗 --attrubute-walk
与 udev info
这样我就能知道是否有任何参数是每个读者独有的。(我使用的是 Ubuntu 14.04 LTS)
这是我认为应该查看的系统路径,以及文件夹包含的内容:
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
因此我当然尝试了以下方法:
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
但我似乎找不到顶部列出的两个设备(ID 为 05fe:1010)。
Q2:如果有一个对于单个读者来说是唯一的参数,我如何(希望使用 python)区分它们?
下面是一些我认为可以使用的 Python 代码(直到我意识到每个 RFID 阅读器的 ID 都是相同的)
import usb
dev = usb.core.find(idVendor=0x05fe,idProduct=0x1010)
if dev is None:
raise ValueError('Device not found')
else:
print('Device found')
更新
答案1:以下是的输出lsusb -v
:http://paste.ubuntu.com/7818192/
从图中可以看出,iSerial 为零,其他所有属性对于两个设备来说都是相同的。
对于第二季度来说:我想知道我是否可以使用setserial
bash 命令将序列写入 USB RFID 阅读器。如果可以,这个序列是否在断电后仍会保存,还是必须创建一个每次启动时都创建序列的脚本?
任何建议都是有帮助的。