[英]Find port of RFID reader
我将 pyembedded 用于 Python 程序,使用 Ubuntu 22.04。
我正在尝试获取 RFID 阅读器在读取卡片时应提供的 ID。 通过使用 pyembedded,我需要使用这行代码指定 RFID 的端口:
rfid = RFID(port='{USB}', baud_rate=9600)
我找不到正在使用 RFID 的实际 USB 端口。 这是udevadm info
:
sudo udevadm info --query=all --name=/dev/input/event16
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2518:6022.0003/input/input21/event16
N: input/event16
L: 0
S: input/by-id/usb-NSCCN_wCopy_Smart_Reader-event-if00
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2518:6022.0003/input/input21/event16
E: DEVNAME=/dev/input/event16
E: MAJOR=13
E: MINOR=80
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1191291401
E: ID_INPUT=1
E: ID_VENDOR=NSCCN
E: ID_VENDOR_ENC=NSCCN
E: ID_VENDOR_ID=2518
E: ID_MODEL=wCopy_Smart_Reader
E: ID_MODEL_ENC=wCopy\x20Smart\x20Reader
E: ID_MODEL_ID=6022
E: ID_REVISION=0103
E: ID_SERIAL=NSCCN_wCopy_Smart_Reader
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/2518/6022:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-id/usb-NSCCN_wCopy_Smart_Reader-event-if00 /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
是否在此处指定了正在使用的 USB 端口的路径,但我看不到它?
到目前为止,我还尝试了多种方法,但似乎都没有用。 我还添加了一个包含 RFID 的供应商和产品 ID 的 udev 规则,如下所示:SUBSYSTEM=="USB", ATTRS{idVendor}=="2518", ATTRS{idProduct}=="6022", MODE=" 0660", GROUP="插件开发"
这是我使用usb.core
获得的完整设备信息:
DEVICE ID 2518:6022 on Bus 001 Address 007 =================
bLength : 0x12 (18 bytes)
bDescriptorType : 0x1 Device
bcdUSB : 0x110 USB 1.1
bDeviceClass : 0x0 Specified at interface
bDeviceSubClass : 0x0
bDeviceProtocol : 0x0
bMaxPacketSize0 : 0x40 (64 bytes)
idVendor : 0x2518
idProduct : 0x6022
bcdDevice : 0x103 Device 1.03
iManufacturer : 0x1 NSCCN
iProduct : 0x2 wCopy Smart Reader
iSerialNumber : 0x3
bNumConfigurations : 0x1
CONFIGURATION 1: 400 mA ==================================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x2 Configuration
wTotalLength : 0x29 (41 bytes)
bNumInterfaces : 0x1
bConfigurationValue : 0x1
iConfiguration : 0x0
bmAttributes : 0xc0 Self Powered
bMaxPower : 0xc8 (400 mA)
INTERFACE 0: Human Interface Device ====================
bLength : 0x9 (9 bytes)
bDescriptorType : 0x4 Interface
bInterfaceNumber : 0x0
bAlternateSetting : 0x0
bNumEndpoints : 0x2
bInterfaceClass : 0x3 Human Interface Device
bInterfaceSubClass : 0x0
bInterfaceProtocol : 0x0
iInterface : 0x0
ENDPOINT 0x81: Interrupt IN ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x81 IN
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x1
ENDPOINT 0x2: Interrupt OUT ==========================
bLength : 0x7 (7 bytes)
bDescriptorType : 0x5 Endpoint
bEndpointAddress : 0x2 OUT
bmAttributes : 0x3 Interrupt
wMaxPacketSize : 0x40 (64 bytes)
bInterval : 0x1
另外,当我跑步时:
rfid = RFID(port='/dev/bus/usb/001/009', baud_rate=9600)
我得到:
serial.serialutil.SerialException: Could not configure port: (25, 'Inappropriate ioctl for device')
我从哪里可以得到这个设备正在使用的端口的路径?
来自 pyembedded网站:
注意:如果是 windows 机器,请将端口用作“COM1”、“COM2”等。 对于基于 linux 的设备,将端口用作“/dev/ttyUSB0”:
我想你正在从lsusb
命令 output 获取 /dev/bus/usb/001/009。检查这个问题( https://askubuntu.com/questions/435861/what-is-the-difference-between-dev-tty -and-dev-bus-usb-001-002 ) 以了解两条路径之间的区别。
我应该使用dmesg
并连接/断开设备以查看 Linux 如何管理 rfid 阅读器。 然后,如果阅读器被映射到 tty,您可以使用路径调用RFID(port, baud_rate)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.