用Python听USB键盘

用Python听USB键盘,python,embedded,usb,hid,Python,Embedded,Usb,Hid,设置:一个简约的Linux(ASUS路由器上的OpenWRT),一个USB键盘(假设我知道设备名,比如/dev/hiddev0) 目标:编写一个python(或者shell,在本例中,我可以像python的代理一样使用它)脚本,它将侦听这个设备并根据用户输入执行一些操作 作为一个开始,它足以将用户输入的字符回显到给定名称的文本文件中 Pyubs看起来真的很混乱。 我同意PySerial,但我不确定它是否适合此任务-当尝试打开设备时,它会显示“serial.serialutil.SerialExc

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

目标:编写一个python(或者shell,在本例中,我可以像python的代理一样使用它)脚本,它将侦听这个设备并根据用户输入执行一些操作

作为一个开始,它足以将用户输入的字符回显到给定名称的文本文件中

Pyubs看起来真的很混乱。 我同意PySerial,但我不确定它是否适合此任务-当尝试打开设备时,它会显示“serial.serialutil.SerialException:无法配置端口:(22,'无效参数')”

UPD:好吧,简单的答案是“cat/dev/input/event1”

但是输出真的很神秘-有没有关于解释它的提示(作为字符int代码)

UPD-UPD:hextump/dev/input/event1更好! 它为每个按键提供6个9元组(我想,3个表示向下键,3个表示向上键) 解密它可能并不困难

但更文明的方式仍然受到高度赞赏

看起来很有趣…

是真正的答案-输出非常详细,并且有一个ready
.poll()
方法返回事件

我遇到的唯一问题是-readMetadata()失败,错误为22。然后我评论了它的呼唤,它就像一个符咒

事实上,我从

添加:要发现实际事件n

cat /proc/bus/input/devices

然后仔细阅读它

给后来发现这个问题的人(就像我遇到的那样):有一个由Georgi Valkov为evdev设计的很棒的图书馆:


为什么不直接捕获字符作为用户输入?你是说读取控制台输入?阅读问题-它是嵌入式系统(路由器),键盘没有连接到脚本“屏幕”上可能的重复,是的,看起来像是答案,虽然一些示例代码可能会很好-Input.py说“subclass this”,但不清楚具体如何