USB HID 设备主要是输入设备,因此它们通常不提供 OUT 端点(HID 规范允许它们,但我从未见过)。如果未提供 OUT 端点,则通过控制端点 (EP0) 发送输出报告。URB 应该是这样的:
bmRequestType = 0x21 (To class interface)
bRequest = 0x09 (SET_REPORT)
wValue = 0x02 <report_code>
wIndex = <interface> (Usually 0x0001)
wLength = <Data length>
Data = <report_code> <data>...
Run Code Online (Sandbox Code Playgroud)
当然,有些函数可以做到这一点。从内核中,您可以查看 hiddev_lookup_report/usbhid_submit_report。从用户态,如果您使用/dev/usb/hiddev?您可以尝试 HIDIOCSREPORT ioctl,如果您使用 /dev/hidraw?你只需将()写入其中即可。
HID还定义了“功能”,即一种输出控制机制,但我从未使用过它们。
| 归档时间: |
|
| 查看次数: |
8271 次 |
| 最近记录: |