【问题标题】:How can I read data from an HID USB device in a Cocoa Application?如何在 Cocoa 应用程序中从 HID USB 设备读取数据?
【发布时间】:2011-11-29 16:03:30
【问题描述】:

我正在尝试在 Mac OS X 中实现 HID USB 应用程序。该应用程序需要从 HID USB 设备读取数据。我找到了一些关于从 HID USB 设备读取的信息,其中提到了创建 HID 管理器 kext。我的问题是,如何创建 HID 管理器 kext 以及如何在我的 Cocoa 应用程序中实现这个 kext?

这是来自 USB Prober 的设备信息:

Low Speed device @ 2 (0x5D200000): .............................................   Composite device: "SportBrain USB\000\000\000\000\000\000\000\000\000\000\000\000"
    Device Descriptor   
        Descriptor Version Number:   0x0110
        Device Class:   0   (Composite)
        Device Subclass:   0
        Device Protocol:   0
        Device MaxPacketSize:   8
        Device VendorID/ProductID:   0x1125/0x2000   (unknown vendor)
        Device Version Number:   0x0106
        Number of Configurations:   1
        Manufacturer String:   1 "SportBrain In"
        Product String:   2 "SportBrain USB\000\000\000\000\000\000\000\000\000\000\000\000"
        Serial Number String:   0 (none)
    Configuration Descriptor: .......................................   "SportBrain USB\000\000\000\000\000\000\000\000\000\000\000\000"
        Length (and contents):   34
            Raw Descriptor (hex)    0000: 09 02 22 00 01 01 02 80  0D 09 04 00 00 01 03 00  
            Raw Descriptor (hex)    0010: 00 02 09 21 00 01 00 01  22 1C 00 07 05 81 03 08  
            Raw Descriptor (hex)    0020: 00 0A 
        Number of Interfaces:   1
        Configuration Value:   1
        Attributes:   0x80 (bus-powered)
        MaxPower:   26 ma
        Interface #0 - HID   
            Alternate Setting   0
            Number of Endpoints   1
            Interface Class:   3   (HID)
            Interface Subclass;   0
            Interface Protocol:   0
            HID Descriptor   
                Descriptor Version Number:   0x0100
                Country Code:   0
                Descriptor Count:   1
                Descriptor 1   
                    Type:   0x22  (Report Descriptor)
                    Length (and contents):   28
                        Raw Descriptor (hex)    0000: 06 A0 FF 09 01 A1 01 09  01 15 00 25 FF 75 08 95  
                        Raw Descriptor (hex)    0010: 08 81 02 09 03 75 08 95  08 B1 02 C0 
                    Parsed Report Descriptor:   
                          Usage Page    (65440) 
                          Usage 1 (0x1)    
                              Collection (Application)    
                                Usage 1 (0x1)    
                                Logical Minimum.........    (0)  
                                Logical Maximum.........    (-1)  
                                Report Size.............    (8)  
                                Report Count............    (8)  
                                Input...................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Bitfield) 
                                Usage 3 (0x3)    
                                Report Size.............    (8)  
                                Report Count............    (8)  
                                Feature.................   (Data, Variable, Absolute, No Wrap, Linear, Preferred State, No Null Position, Nonvolatile, Bitfield) 
                              End Collection     
            Endpoint 0x81 - Interrupt Input   
                Address:   0x81  (IN)
                Attributes:   0x03  (Interrupt no synchronization data endpoint)
                Max Packet Size:   8
                Polling Interval:   10 ms

如果有人知道,请帮助我。

【问题讨论】:

    标签: macos cocoa xcode4 usb hid


    【解决方案1】:

    您不需要实现kext。您只需使用IOKit,特别是IOHid 接口。

    【讨论】:

    • 除了 Apple 文档 @Yann Ramin 之外,您是否知道网络上有任何很好的例子来展示如何做到这一点?
    猜你喜欢
    • 2016-10-28
    • 2011-04-08
    • 2018-06-12
    • 2021-01-24
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2012-11-05
    相关资源
    最近更新 更多