Напишите что-нибудь для устройства linux hid? - PullRequest
5 голосов
/ 27 июля 2011

Я изучаю программирование драйвера linux hid, я знаю, как прочитать сообщение с устройства hid
, но я озадачен, как что-то записать на устройство?например, USB HID клавиатура, я могу использовать Xset или другую программу для управления светодиодами клавиатуры, как архивировать это?Любые советы, пожалуйста!
спасибо заранее.

1 Ответ

3 голосов
/ 28 июля 2011

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 также определяет «Функции», которые являются механизмом управления выводом, но я никогда не использовал их.

...