【发布时间】:2018-05-12 17:44:46
【问题描述】:
我正在尝试编写一个需要从类键盘 (HID) 设备获取输入的 Linux 守护程序 - 它不是控制台键盘,而是第二个设备(如果有任何区别,它实际上是一维条形码扫描仪) .守护进程将处理它接收到的数据(来自字母数字条形码的“击键”)。
我知道守护进程可以使用 ioctl(EVIOCGRAB) 从 /dev/input/eventx 中获取该设备,然后使用 read() 事件(来自
使用输入事件需要编写一大堆额外的代码,只是为了从中得到“A”——当几乎可以肯定存在键盘处理程序(或类似的东西)时,这似乎是浪费时间和精力) 这将比我一起破解代码做得更好 - 我只是找不到它们!
有没有办法将现有的(键盘?)软件层放到 /dev/input/eventx 上,然后守护程序可以从其中独占读取简单的 ascii 流?
对于这个设备,/proc/bus/input/devices 报告...
H: Handlers=sysrq kbd leds event9
...这可能表明某些东西已经在其上放置了一个“kbd”层,但是如何访问它呢?
如果我不使用 EVIOCGRAB,那么当我扫描条形码时,我会看到有关“在 /dev/tty1 上登录失败”的系统日志,因此键盘输入显然是在尝试登录某个终端/shell :-/(有这台机器上也没有 X、桌面等。)
【问题讨论】:
标签: c linux barcode-scanner keyboard-events input-devices