是否有USB设备描述符来确定设备是HID还是键盘仿真?

时间:2013-05-30 21:53:30

标签: keyboard hid emulation

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

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

史蒂夫

1 个答案:

答案 0 :(得分:2)

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

  4. HTH