如何将 /dev/hidraw 输出定向到 python 应用程序而不是终端

如何将 /dev/hidraw 输出定向到 python 应用程序而不是终端

我有一个 USB 条形码扫描仪,正在运行一个 python 脚本,该脚本从数据库收集数据/dev/hidraw0并将数据输入到数据库中。问题是,每次扫描器收集代码时,它还会将其发送到终端,并实际上尝试通过 tty 登录系统。

有没有办法禁止 HID 访问终端并尝试登录,但仍允许 python 脚本收集数据?

预先感谢您提供的任何帮助。

答案1

/dev/input/path-to-your-scanner用选项打开grab。使用带有在启动过程中保持不变的符号链接的路径,而不是/dev/input/eventX.

参见例如这里一个 Python evdev 库,可以轻松地通过 Python 进行操作。

您无法获取 hidraw 级别,除非您出于某种原因需要 HID 报告本身,否则这是没有必要的。

如果您确实需要 hidraw 级别,那么它将变得棘手 - 您必须将 hidraw 级别从输入输入级别中分离出来。或者也许同时打开输入设备和 hidraw 设备,我从未尝试过。

答案2

这是我为 USB 条形码扫描仪编写的 python 脚本,使用 evdev 库,并按照 @dirkt 的建议提供抓取功能:

https://gist.github.com/michalfapso/1755e8a35bb83720c2559ce8ffde5f85

相关内容