繁体   English   中英

查找RFID阅读器的端口

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM