20

图书馆应该;

  • 易于使用,几行客户端代码就能完成很多工作
  • 尽可能独立于平台。(以防将来移植到其他平台)
  • 有 C++ 绑定。
  • 成熟稳重

我还想通过回调收到大多数 HID 事件的通知。

我考虑了以下替代方案:

  • libhid -(不幸的是?)这是 GPL,不能在我的应用程序中使用。
  • WDK - 对我来说似乎有点低级。我不需要那种控制。
  • atusbhid - 这具有适当的抽象级别,但它与 Windows 消息传递循环紧密相关

还有其他选择吗?

4

6 回答 6

9

看看hidapi:它是 C,它回答了 C++ 绑定问题(有效:)),是跨平台的,并且具有非常宽松的许可证。

它似乎没有回调,但是......

于 2011-08-11T02:12:37.840 回答
5

如果 libhid 对您有用,那么也许要做的事情是编写一个应用程序(您将使用 GPL),它使用 libhid 与设备通信,然后通过 TCP 连接提供您需要的任何内容。您的真实应用程序将通过 TCP 连接以执行其需要的操作。这显然会对性能造成巨大影响。

此应用程序实际上是 libhid 和您的应用程序之间的“垫片”。在这种情况下,垫片将出于法律而非技术原因而存在。

我不是说这是一个好主意,只是说这是一个主意。

于 2008-11-11T22:15:33.240 回答
3

考虑自己滚动。您将完全控制界面、平台独立性级别等。即使项目是 GPL,您也可以将其用作您自己的秘诀,并作为测试平台来发现您自己的问题。

于 2008-11-14T10:31:13.823 回答
2

Trace 系统的 HIDmaker 软件套件是一个选项。

优点:

  • 易于使用(非常适合学习如何为 USB HID 编程)
  • 以各种项目格式(Visual Studio 和Borland)生成工作应用程序源代码
  • 为主机和设备生成稳定的示例代码(根据我的经验是稳定的)
  • 高性能(如果 HID 甚至可以说首先具有高性能)

缺点:

  • 仅适用于 Microsoft Windows
  • 我认为使用自己的 USB 库(ActiveX
于 2008-11-14T09:37:21.937 回答
2

看看这段代码:

从 C# 读取和使用 FM 收音机(或任何其他 USB HID 设备)

它为您提供了一些简单的类来与 HID 设备通信。它归结为获取设备的别名(类似于 \?\HID#Vid_nnnn&Pid_nnn#...)并使用 CreateFile 打开它。您可以在 下获取设备的别名HKML\SYSTEM\CCS\Control\DeviceClasses\{4d1e55...}\

Vid 和 Pid 是设备的供应商 ID 和产品 ID(检查Device Manager)。

于 2009-02-03T19:27:28.647 回答
2

有几个适用于 Windows 的 USB HID 主机驱动程序。一个易于使用的动态链接库来自http://embedded24.net

还包括几个适用于 Visual Studio 2010(C++、C# 和 Visual Basic)的示例应用程序。

于 2011-03-18T12:09:17.620 回答