原始访问OS X中的HID设备

| 在OS X上对HID设备进行原始访问的最简单方法是什么? 我一直在研究IOKit示例,但即使打开设备似乎也不必要,它涉及多个回调并包含来自六个库的内容。 libusb可用于OS X,但是内核会捕获所有HID设备以进行独占访问,并且在尝试使用无代码.kext阻止它与我的设备关联时,我得到了奇怪的行为(它阻止了内核捕获设备。最初,但是任何配置设备的调用似乎都会导致内核从我正在测试的python libusb脚本下抢走设备。 基本上,我有一个仅用于传输数据的HID设备。我想打开它进行访问(最好是独占访问),然后获取数据流。 与libusb中的〜8行相比,我在IOKit文档中发现的所有示例都非常复杂。必须有一个不是3rd'rd方库的简单方法。 值得注意的是,我完全不熟悉任何功能的OS X编程。 Python支持将是一个不错的选择     
已邀请:
        不幸的是,除了使用
HID Manager
API外,别无其他方法。不支持对OS X中的HID设备进行原始访问。 该文档明确指出:
HID family. Through the HID Manager, the HID family provides a device
interface for accessing a variety of devices, including joysticks and other 
game devices, audio devices, non-Apple displays, and UPS (uninterruptible 
power supply) devices. 
通过POSIX API进行的原始访问仅适用于存储,网络和串行设备:
Using POSIX APIs
For each storage, network, and serial device the I/O Kit dynamically
creates a device file in the file system’s /dev directory when it discovers 
a device and finds a driver for it, either at system startup or as part of 
its ongoing matching process. If your device driver is a member of the I/O 
Kit’s Storage, Network, or Serial families, then your clients can access your 
driver’s services by using POSIX I/O routines.
因此,您可以直接使用
HID Manager
api,也可以使用libusb或(如其他答案所述)hidapi,这些都不过是
HID Manager
api的包装库。使用这些库的好处是它们抽象了大多数低级调用,从而使它们更易于使用。     
        看看hidapi mac后端 http://www.signal11.us/oss/hidapi/ https://github.com/signal11/hidapi     

要回复问题请先登录注册