I am currently trying to get the usages from a HID input report with the HidP_GetUsagesEx() function.
I used HidP_GetCollectionDescription() to parse the report descriptor, which works fine, but when I try to read an acutal input report with HidP_GetUsagesEx() I get a HIDP_STATUS_INCOMPATIBLE_REPORT_ID error.
The report descriptor I provided to HidP_GetCollectionDescription() does not use report ids, so I’m confused at where this error is coming from. The descriptor I’ve parsed is a standard keyboard descriptor with the modifiers (E0-E7) in the first byte. Whenever I press a normal key, like the spacebar, HidP_GetUsagesEx() seems to work just fine, but as soon as I do anything that touches the first byte, HidP_GetUsagesEx() fails with HIDP_STATUS_INCOMPATIBLE_REPORT_ID. I can’t think of a reason this could happen other than HidP_GetUsagesEx() treating the first byte as a report id, despite the descriptor not defining any report ids.
Here is the descriptor I am currently parsing with HidP_GetCollectionDescription():
05 01 09 06 A1 01 05 07 19 E0 29 E7 15 00 25 01
75 01 95 08 81 02 95 01 75 08 81 01 05 08 95 05
75 01 19 01 29 05 91 02 95 01 75 03 91 01 95 06
75 08 15 00 26 FF 00 05 07 19 00 29 91 81 00 C0
I’m really confused on what is happening here.