1

我有一个单按钮 USB 控制器,但它没有附带任何驱动程序(只是一个 Windows 程序,它直接与其通信以达到预期目的)。

USB
Fidget 供应商 ID:0x1d34
产品 ID:0x0001
产品名称:DL100A Dream Cheeky 通用控制器

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

我可以找到同一制造商的其他设备代码片段 ,但产品 ID 存在差异,因此代码不起作用,而且我缺乏了解更改供应商/产品以外的任何内容。

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

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

4

3 回答 3

2

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

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

于 2012-09-25T15:50:49.590 回答
2

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

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

于 2012-09-25T13:29:40.770 回答
1

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

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

我建议使用 signal11/hidapi 的跨平台 HID 库中包含的“HIDAPI 测试工具”/“testgui

在 Windows 上,您需要额外的3rd 方包来编译 testgui 应用程序,但它非常简单,而且 GUI 工具比我看到的其他代码示例和工具更简单。(我可以交叉检查是否允许我发布 VS2008 编译版本。)

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

于 2014-02-11T16:38:38.810 回答