在超时中从python中读取USB键盘

时间:2014-02-10 21:04:25

标签: python keyboard raspberry-pi

我的Python脚本(通过SSH启动)如何从连接的USB键盘读取一行? 它应该在超时时执行此操作。

我有一个读卡器充当键盘,在检测到卡时将卡ID作为单行发送。 在shell中使用cat /dev/tty0运行良好,但我正在寻找一种方法在我的Python脚本中执行此操作。

1 个答案:

答案 0 :(得分:0)

数据最有可能作为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

您需要获得访问该设备的权限。它会在超时时引发异常