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>...
Естественно, есть функции, которые делают это.Из ядра вы можете посмотреть на hiddev_lookup_report / usbhid_submit_report.Из пользовательского пространства, если вы используете / dev / usb / hiddev?вы можете попробовать HIDIOCSREPORT ioctl, и если вы используете / dev / hidraw?вы просто пишете в него ().
HID также определяет «Функции», которые являются механизмом управления выводом, но я никогда не использовал их.