我必须为OSX创建一个软件/驱动程序,它与通过USB连接的HID设备进行交互。申请的目的如下,
我不是驱动程序开发人员,但有C,C ++,Obj C等经验。我想知道实现上述目标的最佳方法是什么。那我应该开发内核扩展(驱动程序)还是有更好的替代方案?
我面临的挑战是,
无论哪种方式,这对我来说都是一个新领域。您能否请一些文件或示例代码,我可以从中开始。
另外请提及可能有助于为mac开发设备驱动程序的论坛或社区。 p>
谢谢大家的帮助。 :)
答案 0 :(得分:2)
MacOS X已经有HID设备的驱动程序。所以你不需要为它开发一个特殊的驱动程序/内核扩展。
您可以使用跨平台的开源库hidapi与HID设备进行通信。
答案 1 :(得分:1)
这个问题的另一个答案肯定适用于一堆不同的用例,我建议尽可能沿着这条路走下去。但是,肯定会有一些情况需要深入到kext端。特别是,如果HID设备需要充当系统键盘或指点设备,但是内置的HID堆栈没有按照您的需要进行拾取,则可能需要(或想要)开发内核空间驱动程序。 (你也可以选择从用户空间向窗口系统中注入事件,所以如果有疑问的话,我首先用你的用例做原型。)
您还没有给我们足够的详细信息,告诉我们您尝试做什么,或设备的性质,以确定哪种方法可能最佳。
有关示例代码,请查看Apple自己的开源代码。 (IOHIDFamily,IOUSBFamily等)在网上搜索你正在使用的课程也会在Github等上发现一些第三方OSS代码。
Stack Overflow和相关的Apple开发人员邮件列表(Darwin-drivers,Darwin-kernel或Usb,取决于问题),以及开发人员论坛(我发现他们很难一直遵循/监控)可能是最好的这种事情的社区。 p>