有谁知道如何从 USB 设备描述符或其他 USB 描述符确定 USB 设备是 HID 还是键盘模拟?我正在寻找与 magtek 磁卡刷卡读卡器系列的接口(interface),它们可以配置为作为 HID 或键盘模拟运行。 Magtek PID 会告诉我,但如果有人插入不同制造商的电源会发生什么?我正在寻找一种确定这一点的通用方法。我正在使用 libudev 库连接到我的 USB。
另外,Linux 是否有一个通用例程来解码键盘模拟扫描代码。我有自己的查找表,它工作得很好,但我只是想知道。
史蒂夫
最佳答案
- 辨别设备是什么的唯一方法是使用 USB 设备的 PID/VID(以及类,但我相信无论如何,这两种模式都被声明为 HID 类设备)。
- 因此,如果您插入新的制造商,则必须手动添加对其的支持。根据我的经验(我没有使用 magtek 读卡器,而是使用 tmsr33),没有哪个读卡器在 HID 或仿真模式下的行为方式相同。一般来说,我认为最好使用 HID 模式,因为暴露的字节需要较少的转换。
AFAICT,我遇到了同样的麻烦,我基本上将内核源代码中的键码/键布局复制粘贴到我自己的代码中。如果您愿意,可以直接链接到内核的源代码来获取这些表。
HTH
关于keyboard - 是否有 USB 设备描述符来确定设备是 HID 还是键盘模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846484/