设置:简约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看起来很有趣......
答案 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提供了一个很棒的图书馆: