在Linux中捕获来自usb设备的输入

时间:2013-01-28 14:50:11

标签: python linux usb pipe device

所以,经过一点点搜索......找到了以下方法来捕获我的USB二维码扫描器的输入。

import sys
pipe = open('/dev/input/event3', 'r')
while 1:
        for character in pipe.read():
                print(character)

它有效,但我仍然有两个关于上述方法的问题。

我在使用Debian Wheezy和GUI的Raspberry设备上,可以确认在GUI上发生问题2 ...在没有GUI的系统上还不知道输出

  1. 有更好的方法吗?
  2. 上面的方法,当我单击右键时,脚本会立即取消并输出所有已扫描的条目。那是为什么?
  3. 更新

    我想我错过了解释上面代码的结果,因为它最终输出了ASCII字符,所以我最终做了以下内容:

    sys.stdin = open('/dev/tty')
    a = raw_input('Scan: ')
    

1 个答案:

答案 0 :(得分:1)

问题1实际上取决于您的QR扫描仪。我认为你很幸运,因为很多时候,USB设备都有复杂的协议来与主机通信。例如,使用鼠标,您如何区分点击和鼠标移动?你需要某种数据格式来交换。

问题2可能是因为你的方法在pipe.read()处阻塞,等待输入。不知何故,只有右键单击结束read()函数并允许打印输出