用Python听USB键盘

时间:2011-05-15 21:02:13

标签: python embedded usb hid

设置:简约Linux(华硕路由器上的OpenWRT),USB键盘(假设我知道设备名称如/ dev / hiddev0)

目标:编写一个python(或shell,在这种情况下,我可以像使用python的代理一样使用它)脚本,它将监听此设备并根据用户输入执行某些操作

作为开头 - 足以将用户输入的字符回显给给定名称的文本文件。

PyUSB看起来真的很混乱。 我对PySerial没问题,虽然我不确定它是否适合这个任务 - 当试图打开设备时它说“serial.serialutil.SerialException:无法配置端口:(22,'无效参数')”

UPD:嗯,好的,琐碎的回答是“cat / dev / input / event1”

但是输出真的很神秘 - 任何解释它的提示(作为字符int代码)?

UPD UPD :hexdump / dev / input / event1要好得多! 它为每个按键提供6个9元组(我想,3个用于按键,3个用于按键) 它可能不会如此难以解密

但更多的民间方式仍然受到高度赞赏

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py看起来很有趣......

2 个答案:

答案 0 :(得分:6)

http://svn.navi.cx/misc/trunk/python/evdev/evdev.py是真正的答案 - 输出非常详细,并且有准备好的.poll()方法返回事件。

我遇到的唯一问题 - readMetadata()因错误22而失败。然后我评论了它的调出,它就像一个魅力

实际上,我从http://autokey.googlecode.com/svn/trunk/src/lib/evdev.py

下载了一些更新的版本

添加:发现实际的事件N,

cat /proc/bus/input/devices

并仔细阅读

答案 1 :(得分:3)

对于后来发现这个问题的人(就像发生在我身上一样):Georgi Valkov为evdev提供了一个很棒的图书馆:

https://github.com/gvalkov/python-evdev

http://python-evdev.readthedocs.org/en/latest/index.html