#macos #cocoa #xcode4 #usb #hid
#macos #cocoa #xcode4 #usb #hid
Вопрос:
Я пытаюсь реализовать приложение HID USB в Mac OS X. Приложению необходимо считывать данные с устройства HID USB. Я нашел некоторую информацию о чтении с устройства HID USB, в котором упоминается создание HID manager kext. Мой вопрос в том, как я могу создать HID manager kext и как мне реализовать этот kext в моем приложении Cocoa?
Это информация о моем устройстве из USB Prober:
Low Speed device @ 2 (0x5D200000): ............................................. Composite device: "SportBrain USB000000000000000000000000"
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 USB000000000000000000000000"
Serial Number String: 0 (none)
Configuration Descriptor: ....................................... "SportBrain USB000000000000000000000000"
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
Если кто-нибудь знает это, пожалуйста, помогите мне.
Ответ №1:
Вам не нужно реализовывать kext
. Вы бы просто использовали IOKit
, особенно IOHid
интерфейс.
Комментарии:
1. Знаете ли вы какие-либо хорошие примеры в Интернете, показывающие, как это сделать, кроме документов Apple @Yann Ramin?