前言
本文内容摘自 《HID1_11.pdf》
1、HID Item
a、HID Item 有Main Items、Global Items、Local Items 三种类型;HID 报告描述符就是通过利用这三种类型进行填充形成一段有效内存空间,存储相关的位置信息。
b、HID Item 有两种格式:short Items 和 long Items两种格式;
short Items:可选的数据的大小可以是0、1、2或者4字节,其格式如图1所示
long Items:通过一个固定的标识符来说明是一个long Items,其格式如图2所示。
2、short Items
由于平时使用较多的事short Items,故通过short Items来描述HID 报告描述的编写语法。根据图1 short Items格式的描述,short Items的第一个字节由:2bits的bSzie、2bits的bType、4bits的bTag组成。
2.1、bSize、bType、bTag的定义值说明
bSize:bSize的取值决定了携带的数据部分[data]的字节数:
0 —-> 0 bytes
1 —> 1 byte
2 —> 2 bytes
3 —> 4 bytesbType:bType的定义值表示使用哪个类型的Item:
0 —> Main
1 —> Global
2 —> Local
3 —> ReservedbTag:说明Item 功能的数字表达式。
2.2 Main Items
Main Items用于定义报表描述符中的数据项。Main Items可以分为带数据的 Main Items和不带数据的 Main Items。带数据项的 Main Items用于生成报表中的数据项,包括 Input(设备->主机)、Output(主机->设备) 和 Feature 项目。不带数据的 Main Items包括 Collection 和 End Collection 项目。
2.2.1 Main Item Tag值说明:
input : 1000 00 nn(0x8?),9-31bit为保留位,常携带一个字节,故nn为1,常见取值:0x81
Collection:1010 00 nn (0xA?),常携带一个字节的数据,故nn为1,常见取值:0xA1
End Collection:1100 00 nn :不携带数据,故nn为0,取值:0xC0
2.3 Global Items
Global Items实现对数据的描述,用来识别报表并且描述报表内的数据,包括数据的功能、最大与最小允许值以及数据项的大小与数目等。
2.3.1 Global Items Tag值说明:
Usage Page 0000 01 nn(0x04+?) 指定设备的功能;常见取值:0x05
Report ID 1000 01 nn(0x84+?) 报表 ID;不设置时,默认为0;常见取值:0x85
Report Size 0111 01 nn(0x74+?) 指定报表数据区域所包含的位数;常见取值:0x0x75
Report Count 1001 01 nn(0x94+?) 报表中数据域的数目;常见取值:0x0x95
Logical Minimum 0001 01 nn(0x14+?) 定义变量或数组项目的逻辑最小值;常见取值:0x15
Logical Maximum 0010 01 nn(0x24+?) 定义变量或数组项目的逻辑最大值;常见取值:0x25
2.4 Local Items
Local Items定义控制的特征,这一类项目的作用域不超过下一个 Main Items,所以在每一 Main Items之前可能有多个 Local 项目。Local Items用于描述后面的 Input、Output 和Feature 项目。
2.4.1 Local Items Tag值说明:
Usage (0x08+?) 表示对项目或集合建议的用法;常见取值:0x09
Usage Minimum 0001 10 nn(0x18+?) 定义阵列或位图中控制操作的第一个用法;常见取值:0x19
Usage Maximum 0010 10 nn(0x28+?) 定义阵列或位图中控制操作的最后一个用法 ;常见取值:0x29