要判断一个短条目具体是哪种类型,先查看bType确定出主条目、全局条目、局部条目的一种,然后再跟据bTag确定具体的类型。
1. 关于第三章USB鼠标的ReportDescriptor,
从条目前缀结构中可以发现,这一节的条目类型只有这三种(0xC0,唉,对不起你啊):
0x1 --> 00 01 --> 后面跟一字节的(main)主条目
0x5 --> 01 01 --> 后面跟一字节的(Global)全局条目
0x9 --> 10 01 --> 后面跟一字节的(Local)局部条目
以0x05,0x01为例(0x05要拆开来看--0x0与0x5):
0x5: 后面跟一字节的(Global)全局条目
0x0: UsePage
0x01: Generic Desktop Controls (这个需要参考:Hut1_12v2.pdf 【HID Usage Tables】)
3. 关于HID描述符中main global local 三者之间的关系
我感觉是这样的: HID中最关键的是main条目,而global local条目是用来描述main条目的。
点击(此处)折叠或打开
- Usage Page (Generic Desktop), 05 01
- Usage (Mouse), 09 02
- Collection (Application), A1 01
- Usage (Pointer), 09 01
- Collection (Physical), A1 00
- Usage Page (Buttons), 05 09
- Usage Minimum (01), 19 01
- Usage Maximun (03), 29 03
- Logical Minimum (0), 15 00
- Logical Maximum (1), 25 01
- Report Count (3), 95 03
- Report Size (1), 75 01
- Input (Data, Variable, Absolute), 81 02
- Report Count (1), 95 01
- Report Size (5), 75 05
- Input (Constant), 81 01
- Usage Page (Generic Desktop), 05 01
- Usage (X), 09 30
- Usage (Y), 09 31
- Logical Minimum (-127), 15 81
- Logical Maximum (127), 25 7F
- Report Size (8), 75 08
- Report Count (2), 95 02
- Input (Data, Variable, Relative), 81 06
- End Collection, C0
- End Collection C0
a. 先定义了一个普通桌面鼠标的应用(大)开集合
b. 再定义用途为指针的(小)开集合
c. 输入button
d. 填充位无实际意义
e. 输入的范围
f. 关闭小集合
g. 关闭大集合