【发布时间】:2014-03-08 09:55:30
【问题描述】:
我的 Python 脚本(通过 SSH 启动)如何从连接的 USB 键盘读取一行? 它应该在超时的情况下执行此操作。
我有一个充当键盘的读卡器,当检测到卡时,它将卡 ID 作为单行发送。
在 shell 中使用 cat /dev/tty0 效果很好,但我正在寻找一种在我的 Python 脚本中执行此操作的方法。
【问题讨论】:
标签: python keyboard raspberry-pi
我的 Python 脚本(通过 SSH 启动)如何从连接的 USB 键盘读取一行? 它应该在超时的情况下执行此操作。
我有一个充当键盘的读卡器,当检测到卡时,它将卡 ID 作为单行发送。
在 shell 中使用 cat /dev/tty0 效果很好,但我正在寻找一种在我的 Python 脚本中执行此操作的方法。
【问题讨论】:
标签: python keyboard raspberry-pi
数据很可能以 HID 协议 USB 设备的形式出现。您可以使用 sourceforge 中的 PYUSB 模块来访问原始数据,然后对其进行解释。
import usb.core
import usb.util
dev = usb.core.find(idVendor=0x0abc, idProduct=0x0123)
if dev is None: raise ValueError("Device not found")
dev.set_configuration()
endpoint = device[0][(0,0)][0]
for attempts in xrange(10):
try:
data = device.read(endpoint.bEndpointAddress, endpoint.wMaxPacketSize)
except:
data = None
if data is None: raise RuntimeError("no data found")
print 'got data', data
您需要获得访问设备的权限。它会在超时时引发异常
【讨论】: