簡體   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