如何调试未附带驱动程序的USB HID设备?

时间:2012-09-25 11:46:50

标签: usb driver hid

我有一个single button USB controller,但它没有附带任何驱动程序(只是一个Windows程序直接与它预期通信)。

USB Fidget
供应商ID:0x1d34
产品编号:0x0001
产品名称:DL100A Dream Cheeky Generic Controller

所以,我希望能够读出按钮是否被按下。我的主要开发环境是Mac,但我也想在Windows上运行该解决方案。理想情况下,跨平台解决方案最好。

我可以为同一制造商的其他设备找到pieces of code,但产品ID存在差异,因此代码无法正常工作,而且我无法理解除了供应商/产品。

据我了解,我需要使用功能请求包轮询USB设备?

我是否可以使用某些软件“观看”USB设备,以便在按下按钮时看到实际发生的情况?如果没有,我将如何自己写一些?

3 个答案:

答案 0 :(得分:2)

基本上在MacOs上,非常大量的usb设备通过IOUserClient工作。这个标准类为用户模式程序提供了在没有内核模式驱动程序的情况下控制设备的能力(通过使用IOKit框架的usermode部分)。要嗅探usb数据包,您可以使用USB Prober,从本文http://developer.apple.com/library/mac/#qa/qa1370/_index.html

开始

在Windows标准方式 - 标准USB驱动程序+标准HID驱动程序,如果他们没有开发一些标准的附加功能,则不需要特定的供应商驱动程序。您可以使用任何商业或免费软件工具来嗅探usb数据包 - 例如http://www.hhdsoftware.com/usb-monitor

答案 1 :(得分:2)

我不知道有任何跨平台的方式来处理它。这是我指示人们如何为随机HID硬件创建驱动程序应用程序的演示文稿:

https://developer.apple.com/videos/wwdc/2011/?id=207

答案 2 :(得分:0)

用于测试/访问HID设备,即

  • 获取专题报道(matt的原始问题)
  • 发送功能报告
  • 发送输出报告
  • 接收输入报告

我建议在signal11/hidapi的优秀跨平台HID库中包含“HIDAPI测试工具”/“testgui”。

在Windows上,您需要额外的3rd party package来编译testgui应用程序,但这很简单,GUI工具比我看到的其他代码示例和工具更直接。 (我可以反复核对我是否可以发布VS2008编译版本。)

发送输出报告和接收输入报告的另一个免费选项是我们自己的“Docklight”工具(在评估模式下,无限时间,只是没有存储),请参阅Docklight Scripting HID USB

相关问题