如何解析隐藏的报告描述符?

时间:2019-12-05 18:44:43

标签: usb driver hid

我已阅读的有关USB隐藏报告描述符的所有教程均使用数字表示数据。这些数字从哪里来?

示例:

0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
0x09, 0x02,                    // USAGE (Mouse)
0xa1, 0x01,                    // COLLECTION (Application)
0x09, 0x01,                    //   USAGE (Pointer)
0xa1, 0x00,                    //   COLLECTION (Physical)
0x05, 0x09,                    //     USAGE_PAGE (Button)
0x19, 0x01,                    //     USAGE_MINIMUM (Button 1)
0x29, 0x03,                    //     USAGE_MAXIMUM (Button 3)
0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
0x25, 0x01,                    //     LOGICAL_MAXIMUM (1)
0x95, 0x03,                    //     REPORT_COUNT (3)
0x75, 0x01,                    //     REPORT_SIZE (1)
0x81, 0x02,                    //     INPUT (Data,Var,Abs)
0x95, 0x01,                    //     REPORT_COUNT (1)
0x75, 0x05,                    //     REPORT_SIZE (5)
0x81, 0x03,                    //     INPUT (Cnst,Var,Abs)
0x05, 0x01,                    //     USAGE_PAGE (Generic Desktop)
0x09, 0x30,                    //     USAGE (X)
0x09, 0x31,                    //     USAGE (Y)
0x15, 0x81,                    //     LOGICAL_MINIMUM (-127)
0x25, 0x7f,                    //     LOGICAL_MAXIMUM (127)
0x75, 0x08,                    //     REPORT_SIZE (8)
0x95, 0x02,                    //     REPORT_COUNT (2)
0x81, 0x06,                    //     INPUT (Data,Var,Rel)
0xc0,                          //   END_COLLECTION
0xc0                           // END_COLLECTION

例如,第一行的0x05和0x01来自何处?如何转换为// // USAGE_PAGE(通用桌面)?什么是有效值?这些如何订购?如何定义嵌套?

1 个答案:

答案 0 :(得分:0)

Custom HID device HID report descriptor上查看我对类似问题的答案(摘录如下):

  

要了解HID报告描述符,您需要阅读HID Information page上的一些文档。特别是,您应该尝试了解:

     
      
  1. “ HID 1.11的设备类定义”文档-描述了人机界面设备报告格式
  2.   
  3. “ HID使用情况表1.12”文档-描述了许多使用情况页面的值以及这些页面中可以显示在报表描述符中的使用情况
  4.