如何解决在 MacOS 应用程序中解析 USB HID 报告描述符
我正在 MacOS 应用程序中处理 USB HID 报告(在 Swift 中使用 IOKit)。
我有一个类似于下面的方法,用于访问设备的报告描述符数据,当它被 IOHIDManager
枚举时。
let deviceMatchingCallback: IOHIDDeviceCallback = { context,result,_,device in
let descriptor = IOHIDDeviceGetProperty(device,kIOHIDReportDescriptorKey as CFString);
let cfData = descriptor as! CFData;
let data = cfData as Data;
// Print out report in hex (i.e 0x05,0x01,etc)
// Then convert to report here - https://eleccelerator.com/usbdescreqparser/
print("string",data.map { String(format: "0x%02hhX",$0) }.joined(separator: ","));
// Iterate individual bytes of the report
let bytesPointer:UnsafePointer<UInt8> = CFDataGetBytePtr(cfData);
let length = CFDataGetLength(cfData);
let buffer = UnsafeBufferPointer<UInt8>(start: bytesPointer,count: length);
for (_,byte) in buffer.enumerated() {
print(byte)
}
}
IOKit 或其他东西中是否有任何 HID 报告描述符解析助手可供我在 Swift 中使用?
常识告诉我一定有,但不幸的是,谷歌搜索或搜索 Apple 文档并没有让我找到任何地方。
我目前的下一步是继续基于 LUFA's implementation 创建我自己的,但我很想节省时间(尽管这将是一个很好的学习机会)。>
我确实考虑过导入这个 LUFA,但它附带了一些与我的架构(即 AVR)无关的依赖项。我对普通 C 的经验并不丰富,所以这对我来说并不容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。