On Sat, Feb 27, 2010 at 03:13:19PM +0300, Nikolai Kondrashov wrote: > Hello everyone, > > I would like to announce a HID report descriptor library and tool I'm making > in my spare time, as a part of the DIGImend project [1]. It is called > simply "hidrd". > > It is aimed to replace the HID Descriptor Tool [2], produced by the USB > Implementers Forum, and address its shortcomings. To me these are mainly the > inability to read native descriptor format, GUI-only interface, and > instability, plus it is Windows-only (although it runs under WINE). > > The ultimate goal is to make a command-line tool which could be used to > conveniently make your own and modify existing descriptors. So the idea is > to implement conversion to/from some format more suitable for human > consumption and editing. XML was chosen for a start. Yeah, I know, some > people consider it ugly and not that convenient, but it was the easiest way > to me. > > The tool is called "hidrd-convert" and currently can only convert from the > native format to XML. However it could already be useful for a developer > wishing to better understand a particular descriptor, or HID report > descriptors as a whole. The next major release (0.2) will include conversion > from XML to the native format. > > Here is how the output looks for a Microsoft's Natural Ergonomic Keyboard: > > <?xml version="1.0"?> > <descriptor xmlns="http://digimend.sourceforge.net" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://digimend.sourceforge.net hidrd.xsd"> > <usage_page>desktop<!-- Generic desktop controls --></usage_page> > <usage>desktop_keyboard<!-- Keyboard (06, top-level) --></usage> > <COLLECTION type="application"> > <usage_page>led<!-- LEDs --></usage_page> > <usage_minimum>01<!-- Top-level --></usage_minimum> > <usage_maximum>03<!-- Top-level --></usage_maximum> > <logical_minimum>0</logical_minimum> > <logical_maximum>1</logical_maximum> > <report_size>1</report_size> > <report_count>3</report_count> > <output> > <variable/> > </output> > <usage>4B</usage> > <report_count>1</report_count> > <output> > <variable/> > </output> > <report_count>4</report_count> > <output> > <constant/> > </output> > <usage_page>keyboard<!-- Keyboard/keypad --></usage_page> > <usage_minimum>keyboard_kb_leftcontrol<!-- Keyboard left control (E0) --></usage_minimum> > <usage_maximum>keyboard_kb_right_gui<!-- Keyboard right GUI (E7) --></usage_maximum> > <report_count>8</report_count> > <input> > <variable/> > </input> > <report_size>8</report_size> > <report_count>1</report_count> > <input> > <constant/> > </input> > <usage_minimum>keyboard_none<!-- No event (00) --></usage_minimum> > <usage_maximum>keyboard_kb_lang2<!-- Keyboard LANG2 (91) --></usage_maximum> > <logical_maximum>255</logical_maximum> > <report_count>6</report_count> > <input/> > </COLLECTION> > </descriptor> > > This is produced by running the hidrd-convert tool like this: > hidrd-convert -o xml descriptor.bin descriptor.xml > > I can show you some a bit more interesting examples (including a Genius > tablet and the PS3 gamepad) on request (since they are bigger). > > The hidrd release 0.1.1 could be downloaded here: > https://sourceforge.net/projects/digimend/files/hidrd/0.1/hidrd-0.1.1.tar.gz/download > You can also visit the hidrd section on the DIGImend project page [3]. > > Any comments and feedback are welcome, of course :) Can you make a plain text output, like what `lsusb -v` produces? XML gives me the heebie jeebies. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html