繁体   English   中英

MAC中的HID设备接口

[英]HID Device Interface in MAC

我必须为OSX创建与通过USB连接的HID设备交互的软件/驱动程序。 该应用程序的目的如下:

  1. 检测何时插入或卸下HID设备。 设备的PID和VID是已知的。
  2. 读取HID设备序列号,固件版本以及与VID和PID匹配的已连接设备的其他详细信息
  3. 连接后,获取报告并将报告设置到HID设备。
  4. 与另一个应用程序进行通信,用户可以通过该应用程序更改HID设备设置

我不是驱动程序开发人员,但是具有C,C ++,Obj C等方面的经验。我想知道什么是实现上述目标的最佳方法。 那是我应该开发内核扩展(驱动程序)还是有更好的选择?

我面临的挑战是

  • 从驱动程序开发开始
  • Mac应用程序与驱动程序通信。

无论哪种方式,这对我来说都是一个新领域。 您能从我这里开始建议一些文档或示例代码吗?

还请提及论坛或社区,这可能有助于开发Mac设备驱动程序。

谢谢大家的帮助。 :)

MacOS X已经具有用于HID设备的驱动程序。 因此,您无需为此开发特殊的驱动程序/内核扩展。

您可以使用跨平台的开源库hidapi与HID设备进行通信。

这个问题的其他答案当然适用于许多不同的用例,我建议尽可能走那条路。 当然,在某些情况下,您需要深入了解kext方面。 特别是,如果HID设备需要充当系统键盘或指点设备,但没有被内置的HID堆栈按您的意愿拿起,则可能需要(或想要)开发一个内核-空间驱动器。 (不过,您也可以选择从用户空间向窗口系统中注入事件,因此,如果有疑问,我首先将用例原型化。)

您尚未完全向我们提供有关您要执行的操作的详细信息,或者无法确切地说出设备的性质来确定哪种方法最好。

有关示例代码,请查看Apple自己的开放源代码。 (IOHIDFamily,IOUSBFamily等)。在网络上搜索正在使用的类,还将在Github等上打开一些第三方OSS代码。

Stack Overflow和相关的Apple开发人员邮件列表(Darwin驱动程序,Darwin内核或Usb,具体取决于问题),也许是开发人员论坛(我发现他们始终难以追踪/监控)可能是为此的最佳社区之类的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM