Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using HIDAPI, how can you query the raw report descriptor?

Tags:

hid

hidapi

I'd like to deconstruct the raw reports received from the hid_read function of hidapi.

As I understand, this can be achieved using the information from the device's report descriptors. But when trying to query for those descriptors, I get lost somewhere between the HID Spec and using the methods available in hidapi.

I would love to see a concrete C or node-hidapi based example that queries and enumerates all the report descriptors for a device — perhaps a mouse to keep things simple?

like image 585
Shane Holloway Avatar asked Jul 17 '13 17:07

Shane Holloway


2 Answers

I asked Alan Ott by email about this, and he responded with no as follows:

HIDAPI does not provide functions for getting or parsing the report descriptor. Since HIDAPI is for talking to a custom devices, these devices will likely contain all or mostly vendor-defined report items anyway.

like image 180
Shane Holloway Avatar answered Sep 28 '22 05:09

Shane Holloway


This isn't exactly what you're looking for, but it will get the same job done. I highly recommend you use libusbx over any other hid library. If you are willing to do so, here is a very blatant example of device enumeration.

Edit:

It appears that libusbx has been merged back into libusb. This is awesome! As the above link is broken, here is the new link.

like image 41
eatonphil Avatar answered Sep 28 '22 05:09

eatonphil