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

问题描述 投票:1回答:3

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

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

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

我可以找到同一制造商的pieces of code用于其他设备,但产品ID存在差异,因此代码不起作用,除了供应商/产品之外,我缺乏理解。

据我所知,我需要使用功能请求数据包轮询USB设备?

是否有一些软件可以用来“观察”USB设备,这样当我按下按钮时,我可以看到实际发生了什么?如果没有,我将如何自己写一些?

usb driver hid
3个回答
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


2
投票

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

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


0
投票

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.