如何调试人机接口设备?

时间:2012-03-30 00:11:26

标签: delphi hid human-interface

我有一个带USB接口的条码扫描器,因此它显示为HID。

必须断开第一个字符的原因。

这将我的Delphi IDE放在前面,它在断点处停止,其余的条形码被注入到我的代码中,好像它是在键盘前面键入的那样(在某种程度上,键盘就像USB扫描仪只是另一个HID)。

有什么方法可以避免这种情况吗?或者添加一个关于输入源的初始检查?

我非常讨厌我现在正在寻找带有RS232接口的扫描仪。

1 个答案:

答案 0 :(得分:1)

问题是HID“设备”以称为“reports”的数据包的形式将信息发送回计算机。
对于磁条扫描或条形码扫描程序,“report”包含整个编号。

也就是说,您不会逐个字符地收到报告,而是一次收到整个字符串。 (如果是轻扫,您将在同一报告中收到所有两个或三个曲目。)

因此,您的代码不会在第一个字符“上打破”,它会在整个报告中。事实上剩下的角色在那里你可以认为是奖金(如果你不想看它们你没有必要)。但是您不会再收到后续字符的“报告”

我无法想象你不想想立即知道条形码的任何理由。但是大多数磁条扫描和条形码扫描仪都可以配置为模拟键盘,而不是通用的HID设备。在这种情况下,您将收到多条WM_KEYDOWN条消息。