我在Linux中找到了许多从HID中提取信息的答案,但在Windows中找到的答案并不多。
我已经创建了一个系统,在这个系统中,人们可以在输入简报时扫描ID徽章,将他们的出席情况记录到数据库中。它使用Python3.4前端来查询并更新MongoDB数据库。
目前,我有一个USB条形码扫描仪,它在扫描时充当键盘,“键入”条形码所说的内容,然后是CR。我还有一个窗口,它接受文本输入,然后关闭窗口,并在收到CR时执行数据库查询和更新。
当前的问题是速度。我被要求扩展系统,以便一台带有USB集线器的计算机可以同时接收4-8个这样的条形码扫描仪,试图将扫描速度提高到每5分钟1000人。
我担心的是,如果两次扫描几乎同时发生,那么它们的输入将重叠,生成无效的查询,并导致两个人都不被记录。
据我所知,我需要将每个扫描仪放在自己的线程中,以防止数据重叠,并且当系统检测到扫描开始时,我不想“锁定”来自其他扫描仪的输入,因为这个系统都是关于速度的。然而,我不确定如何区分设备和如何实现系统。
任何解决方案都将不胜感激!请注意,在这个意义上我不熟悉HID的使用,并且只有多线程的基本背景。
发布于 2016-06-30 18:26:24
在这个场景中,我将建议使用可以模拟串行(COM)端口的扫描仪/读取器。当HID设备写入到同一总线时,来自两个或更多设备的输出可能被混淆的可能性很大。
此外,我还会在前缀中添加一个设备id字符串,比如dev01。绑定到com端口可以由pySerial模块使用。
欢迎任何评论!
https://stackoverflow.com/questions/38066526
复制相似问题