USB : USB Classes    A Closer Look at HID Class  

Here is an example of a typical Report Descriptor, with a few comments added. It happens to be the Report Descriptor of a USB Keyboard device.

Usage Page (Generic Desktop), 
Usage (Keyboard), 
Collection (Application), 
    Report Size (1),
    Report Count (8),
    Usage Page (Key Codes),
    Usage Minimum (224),
    Usage Maximum (231),
    Logical Minimum (0),
    Logical Maximum (1),
    Input (Data, Variable, Absolute), ;Modifier byte
    Report Count (1),
    Report Size (8),
    Input (Constant),  ;Reserved byte
    Report Count (5),
    Report Size (1),
    Usage Page (LEDs),
    Usage Minimum (1),
    Usage Maximum (5),
    Output (Data, Variable, Absolute), ;LED report
    Report Count (1),
    Report Size (3),
    Output (Constant), ;LED report padding
    Report Count (6),
    Report Size (8),
    Logical Minimum (0),
    Logical Maximum(255),
    Usage Page (Key Codes),
    Usage Minimum (0),
    Usage Maximum (255),
    Input (Data, Array),
End Collection

 

Note that this is in human readable form: it is NOT what the PC sees.

 
  

12 of 17
Copyright Notice and Author Information