[英]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.