/**
* <descriptor id="device" type="0x01">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <word name="bcdUSB">0x0200</word>
* <byte name="bDeviceClass">0</byte>
* <byte name="bDeviceSubClass">0</byte>
* <byte name="bDeviceProtocol">0</byte>
* <byte name="bMaxPacketSize0">USB_CONTROL_ENDPOINT_SIZE</byte>
* <word name="idVendor">0x16c0</word>
* <word name="idProduct">0x05dc</word>
* <word name="bcdDevice">0x0010</word>
* <ref name="iManufacturer" type="0x03" refid="manufacturer" size="1" />
* <ref name="iProduct" type="0x03" refid="product" size="1" />
* <byte name="iSerialNumber">0</byte>
* <count name="bNumConfigurations" type="0x02" size="1" />
* </descriptor>
* <descriptor id="lang" type="0x03" first="first">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <foreach type="0x03" unique="unique">
* <echo name="wLang" />
* </foreach>
* </descriptor>
* <descriptor id="manufacturer" type="0x03" wIndex="0x0409">
* <property name="wLang" size="2">0x0409</property>
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <string name="wString">kevincuzner.com</string>
* </descriptor>
* <descriptor id="product" type="0x03" wIndex="0x0409">
* <property name="wLang" size="2">0x0409</property>
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <string name="wString">LED Wristwatch</string>
* </descriptor>
* <descriptor id="configuration" type="0x02">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <length name="wTotalLength" size="2" all="all" />
* <count name="bNumInterfaces" type="0x04" associated="associated" size="1" />
* <byte name="bConfigurationValue">1</byte>
* <byte name="iConfiguration">0</byte>
* <byte name="bmAttributes">0x80</byte>
* <byte name="bMaxPower">250</byte>
* <children type="0x04" />
* </descriptor>
*/
/**
* <include>usb_hid.h</include>
* <descriptor id="hid_interface" type="0x04" childof="configuration">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <index name="bInterfaceNumber" size="1" />
* <byte name="bAlternateSetting">0</byte>
* <count name="bNumEndpoints" type="0x05" associated="associated" size="1" />
* <byte name="bInterfaceClass">0x03</byte>
* <byte name="bInterfaceSubClass">0x00</byte>
* <byte name="bInterfaceProtocol">0x00</byte>
* <byte name="iInterface">0</byte>
* <children type="0x21" />
* <children type="0x05" />
* </descriptor>
* <descriptor id="hid" type="0x21" childof="hid_interface">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <word name="bcdHID">0x0111</word>
* <byte name="bCountryCode">0x00</byte>
* <count name="bNumDescriptors" type="0x22" size="1" associated="associated" />
* <foreach type="0x22" associated="associated">
* <echo name="bDescriptorType" />
* <echo name="wLength" />
* </foreach>
* </descriptor>
* <descriptor id="hid_in_endpoint" type="0x05" childof="hid_interface">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <inendpoint name="bEndpointAddress" define="HID_IN_ENDPOINT" />
* <byte name="bmAttributes">0x03</byte>
* <word name="wMaxPacketSize">USB_HID_ENDPOINT_SIZE</word>
* <byte name="bInterval">10</byte>
* </descriptor>
* <descriptor id="hid_out_endpoint" type="0x05" childof="hid_interface">
* <length name="bLength" size="1" />
* <type name="bDescriptorType" size="1" />
* <outendpoint name="bEndpointAddress" define="HID_OUT_ENDPOINT" />
* <byte name="bmAttributes">0x03</byte>
* <word name="wMaxPacketSize">USB_HID_ENDPOINT_SIZE</word>
* <byte name="bInterval">10</byte>
* </descriptor>
* <descriptor id="hid_report" childof="hid" top="top" type="0x22" order="1" wIndexType="0x04">
* <hidden name="bDescriptorType" size="1">0x22</hidden>
* <hidden name="wLength" size="2">sizeof(hid_report)</hidden>
* <raw>
* HID_SHORT(0x04, 0x00, 0xFF), //USAGE_PAGE (Vendor Defined)
* HID_SHORT(0x08, 0x01), //USAGE (Vendor 1)
* HID_SHORT(0xa0, 0x01), //COLLECTION (Application)
* HID_SHORT(0x08, 0x01), // USAGE (Vendor 1)
* HID_SHORT(0x14, 0x00), // LOGICAL_MINIMUM (0)
* HID_SHORT(0x24, 0xFF, 0x00), //LOGICAL_MAXIMUM (0x00FF)
* HID_SHORT(0x74, 0x08), // REPORT_SIZE (8)
* HID_SHORT(0x94, 64), // REPORT_COUNT(64)
* HID_SHORT(0x80, 0x02), // INPUT (Data, Var, Abs)
* HID_SHORT(0x08, 0x01), // USAGE (Vendor 1)
* HID_SHORT(0x90, 0x02), // OUTPUT (Data, Var, Abs)
* HID_SHORT(0xc0), //END_COLLECTION
* </raw>
* </descriptor>
*/