This will read a USB Human Interface Device (HID) report descriptor from the specified input file then attempt to decode it and, optionally, create a C language header file from it. It also does some minimal sanity checks to verify that the report descriptor is valid. The input file can be a binary file or a text file (for example, an existing C header file). If it is a text file, it will concatenate all the printable-hex-like text that it finds on each line (until the first non-hex sequence is found) into a single string of hex digits, and then attempt to decode that string. You can feed it an existing C header file and it will decode it as long as you have all the hex strings (e.g. 0x0F, 0x0Fb2) at the beginning of each line. Commas (,) and semicolons (;) are ignored. Oh, and it's just a Rexx script - not an executable.
Features
- Decodes all the USB HID descriptors currently published by usb.org
- Converts HID Report Descriptor into C language structure declarations
- Highlights common errors such as redundant descriptor tags, field size errors etc
- Accepts binary or textual input (for example existing C structure definitions)
- Decodes vendor-specific descriptors (if you supply a simple definition file)