libusb を使用して、HidD_GetInputReport を使用する Windows コードを Linux に移植しようとしています。私が言えることから、usb_control_msg を呼び出す必要がありますが、どのパラメーターを渡すかを理解するのに問題があります。
私が求めているレポート ID は 0x01 です。これが私がこれまでに持っているものです。
#define HID_GET_REPORT 0x01
#define HID_REPORT_TYPE_INPUT 0x01
#define INTERFACE_NUMBER 0x00
int reportId = 0x01;
int bytesSent = usb_control_msg(
devHandle,
USB_ENDPOINT_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
HID_GET_REPORT,
(HID_REPORT_TYPE_INPUT << 8) | reportId,
INTERFACE_NUMBER,
buf,
sizeof(buf),
10000);
HID_GET_REPORT、HID_REPORT_TYPE_INPUT、および INTERFACE_NUMBER についてはよくわかりません。ウェブ上の例でそれらを見つけました。さまざまな値を変更すると、さまざまな戻りコードが返されますが、それらはどこにも文書化されていないようです。