我有一个出现在/dev/hidraw上的USB RFID设备
对于我的串行设备,它们出现在/dev/ttyUSB *上,我使用了pyserial,它的工作原理类似于魅力,但是对于这一点,我无法使用cat /dev/hidraw0从中读取,需要root特权
再加上我需要读一行而不是继续听

我使用了evdev库,但是我的设备根本没有出现:

import evdev
devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
for device in devices:
    print(device.fn, device.name, device.phys)

那么,是否有适当的方法以编程方式从设备读取内容?

最佳答案

通过default evdev.list_devices()仅查找/dev/input

并且您需要使用设备的权限。您可以将用户添加到拥有您的设备的组中(请参阅$ ls -l/dev/hidraw0)

然后,您需要循环收听设备

#!/usr/bin/python3
import evdev

devices = [evdev.InputDevice(fn) for fn in evdev.list_devices()]
for device in devices:
  print(device.fn, device.name, device.phys)

device = evdev.InputDevice("/dev/input/event4")
print(device)
for event in device.read_loop():
  print(event)

08-28 13:49