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

标签 keyboard hid emulation

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

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

史蒂夫

最佳答案

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

HTH

关于keyboard - 是否有 USB 设备描述符来确定设备是 HID 还是键盘模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846484/

相关文章:

c++ - 与 MinGW (v.4.3.0) 和 libhid 的链接问题

java - 写入 HID 键盘适用于 Linux 但不适用于 Windows

c# - 在 Windows 中如何从 USB HID 设备获取原始描述符数据?

windows - SQLLOCALDB 问题

c - 如何为 UHF 电视信号建模?

c++ - 测试模拟器

android - Android 应用程序中 WebView 中的 html 文本字段被软键盘隐藏

python - 从 python 脚本创建键盘输入命令

keyboard - 如何让 python 检测键盘上的击键并根据 Windows 中的输入键发送不同的字符串

javascript - 在带有隐藏文本区域的 html5 Canvas 上显示 iphone 键盘