2

有谁知道如何从 USB 设备描述符或其他 USB 描述符中确定 USB 设备是 HID 还是键盘仿真?我正在寻找与 magtek magcard 刷卡阅读器系列的接口,它们可以配置为作为 HID 或键盘仿真运行。magtek PID 会告诉我,但如果有人插入不同的制造商会发生什么?我正在寻找一种通用的方法来确定这一点。我正在使用 libudev 库来连接我的 USB。

此外,Linux 是否有一个通用例程来解码键盘仿真扫描代码。我有自己的查找表,它工作正常,但我只是想知道。

史蒂夫

4

1 回答 1

2
  1. 判断设备是什么的唯一方法是使用 USB 设备的 PID/VID(以及类,但我相信这两种模式都被声明为 HID 类设备)。
  2. 因此,如果您插入新的制造商,则必须手动添加对它的支持。根据我的经验(我没有使用 magtek 阅读器,而是使用 tmsr33),没有阅读器在 HID 或仿真模式下的行为方式相同。一般来说,我会说最好使用 HID 模式,因为暴露的字节需要更少的转换。
  3. AFAICT,我遇到了同样的麻烦,我基本上将内核源代码中的键码/键布局复制粘贴到我自己的代码中。如果您愿意,可以直接链接到内核的源代码以获取表格。

高温高压

于 2013-06-04T18:08:54.867 回答