如何仅通过一个Python进程使用USB HID设备?

问题描述 投票:0回答:1

我正在使用条形码扫描仪开发后台应用程序。在我的Linux操作系统上,条形码扫描仪被识别为USB HID(人机接口设备)设备。因此,将加载默认的USB HID驱动程序,并且扫描仪的行为类似于键盘。

我可以使用pyxhook Python模块读取扫描仪的STDIN内容。因此,即使我的进程在后台运行,我也可以从条形码扫描仪读取输入。

我的问题是,后台应用程序也在读取常规键盘的输入,因为它也写入了STDIN。

我只想通过后台处理使用条形码扫描仪的STDIN,而忽略其他HID设备(如键盘)的STDIN,但是我不知道如何实现。有想法吗?

python linux stdin barcode-scanner usb-hid
1个回答
0
投票

如果您在较低级别(evdev)上拦截输入,则可以按设备将其划分出来。对于python,有python-evdev。您可以根据名称过滤设备,然后从那里进行过滤。缺点之一是您必须自己将evdev事件转换为可读的输入(内核通常会为您完成一些操作)。

我已经写了simple program用于将条形码保存到文件,以便在RPi上运行(具有对GS1-128 / SSCC-128 / EAN-128的附加支持)。

© www.soinside.com 2019 - 2024. All rights reserved.