报告描述符, report descriptor,是设备向主机描述它要上传的数据(这里可以称作“报告”)的表达意义。
比如说鼠标这个HID设备向主机回复的4字节数据中,第一个字节中的前3位表示三个鼠标按键的状态;后5个位是填充位
0x05, /*Usage Page(Buttons)*/
0x09,
0x19, /*Usage Minimum(1)*/
0x01,
0x29, /*Usage Maximum(3)*/
0x03,
/* 16 */
0x15, /*Logical Minimum(0)*/
0x00,
0x25, /*Logical Maximum(1)*/
0x01,
0x95, /*Report Count(3)*/
0x03,
0x75, /*Report Size(1)*/
0x01,
/* 24 */
0x81, /*Input(Variable)*/
0x02,
0x95, /*Report Count(1)*/
0x01,
0x75, /*Report Size(5)*/
0x05,
0x81, /*Input(Constant,Array)*/
后面3个字节,分别表示此时鼠标在X、Y轴以及滚轮轴上的位置信息,取值范围是[-127,127]
0x05, /*Usage Page(Generic Desktop)*/
0x01,
0x09, /*Usage(X axis)*/
0x30,
0x09, /*Usage(Y axis)*/
0x31,
0x09, /*Usage(Wheel)*/
0x38,
/* 40 */
0x15, /*Logical Minimum(-127)*/
0x81,
0x25, /*Logical Maximum(127)*/
0x7F,
0x75, /*Report Size(8)*/
0x08,
0x95, /*Report Count(3)*/
|