Keyboard 是否有USB设备描述符来确定设备是HID还是键盘模拟?

Keyboard 是否有USB设备描述符来确定设备是HID还是键盘模拟?,keyboard,hid,emulation,Keyboard,Hid,Emulation,有人知道如何从USB设备描述符或其他USB描述符确定USB设备是隐藏的还是键盘模拟的吗?我正在寻找接口到一个家庭的magtek磁卡刷卡读卡器,他们可以配置为操作隐藏或键盘模拟。magtek PID会告诉我,但如果有人插入不同的制造商,会发生什么?我正在寻找一种确定这一点的通用方法。我正在使用libudev库与我的USB接口 此外,Linux是否有一个通用例程来解码键盘模拟扫描代码。我有自己的查找表,工作正常,但我只是想知道 史蒂夫 你能辨别设备是什么的唯一方法是使用USB设备的PID/VID(和

有人知道如何从USB设备描述符或其他USB描述符确定USB设备是隐藏的还是键盘模拟的吗?我正在寻找接口到一个家庭的magtek磁卡刷卡读卡器,他们可以配置为操作隐藏或键盘模拟。magtek PID会告诉我,但如果有人插入不同的制造商,会发生什么?我正在寻找一种确定这一点的通用方法。我正在使用libudev库与我的USB接口

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

史蒂夫

  • 你能辨别设备是什么的唯一方法是使用USB设备的PID/VID(和类,但我相信这两种模式都被声明为HID类设备)
  • 因此,如果您插入一个新的制造商,您必须手动添加对它的支持。根据我的经验(我没有使用magtek阅读器,而是使用tmsr33),没有任何阅读器在HID或仿真模式下的行为方式相同。一般来说,我认为最好使用HID模式,因为暴露的字节需要更少的转换
  • 后来,我也遇到了同样的问题,我基本上是将内核源代码中的keycodes/keyplayout复制粘贴到我自己的代码中。如果愿意,可以直接链接到内核的源代码以获取表