参考文献:HID Usage Tables
Main Item共有5个:Input、Output、Feature、Collection和End Collection,其中Input、Output和Feature会产生实际的数据域并附带说明操作特性。
Global Item:可对其后的所有主项目产生的数据域作用,直到出现一个新的Global Item为止。
Local Item:只对其后的一个主项目产生的数据域有效。
关于范围:当一个产生多个数据域(Report Count>1)的主项目之前有一个以上的【用途】时,每个【用途】与一个数据域依次对应,如果数据域个数(Report Count)超过【用途】的个数,则剩余的数据域都对应于最后一个【用途】。
短项目格式:
bTag:项目标签,指出项目的具体意义
bType: 项目类型 【00】主项目 【01】全局项目 【10】局部项目
bSize:可选数据字节数 【00,01,10,11】=【0,1,2,4】字节
主项目分类
主项目说明 | ||
---|---|---|
项目标签 | 前缀字节取值 | |
Input | 输入 | 1000 00 nn |
Output | 输出 | 1001 00 nn |
Feature | 特征 | 1011 00 nn |
Collection | 集合开始 | 1010 00 nn |
End Collection | 集合结束 | 1100 00 nn |
(nn 为bSize【即可选数据字节数】) |
【Input】【Output】【Feature】项目的后续数据说明
Bit | 取值 |
| |
0 | 1 | 说明 (0/1) | |
8 | Bit Field | Buffered Bytes | 位域/字节填充(不足8位填充成8位) |
7 | Non Volatile | Volatile | 主机不可改变/可改变状态值,只用于Feature项目 |
6 | No Null Position | Null State | 没有【无效(空)状态】/有【无效(空)状态】 |
5 | Preferred State | No Preferred | 无操作时回复原位(如按键或游戏杆)/不回复原位 |
4 | Linear | Non Linear | 线性/非线性 |
3 | No Wrap | Wrap | 卷绕/非卷绕,【卷绕】指最大最小值首尾相连 |
2 | Absolute | Relative | 绝对值/相对值 |
1 | Array | Variable | 每个字段(Report Size)独立触发操作/ 所有字段(Report Size* Report Count)触发一个操作 |
0 | Data | Constant | 变量/常量 |
【Collection】项目后的类型说明
集合类型 | 缩写 | 取值 | 说明 |
Physical | CP | 0x00 | 用于包含单个几何点的控制 |
Application | CA | 0x01 | 用于包含多种报告、多种应用 |
Logical | CL | 0x02 | 用于包含多种不同结构的报告数据 |
Report |
| 0x03 | 用于包含一个单独的报告(含有报告ID) |
Named Array | Nary | 0x04 |
|
Usage Switch | US | 0x05 |
|
Usage Modifier | UM | 0x06 |
|
Reserved |
| 0x07 ~ 0x7F | (保留)未来扩展 |
| 0x80 ~ 0xFF | (保留)用户自定义 |
用途页代码
代码 | 用途页 | 说明 | |
00 | Undefined | 未定义 |
|
01 | Generic Desktop Controls | 通用桌面控制 |
|
02 | Simulation Controls | 仿真控制 |
|
03 | VR Controls | 虚拟现实控制 |
|
04 | Sport Controls | 运动控制 |
|
05 | Game Controls | 游戏控制 |
|
06 | Generic Device Controls | 通用设备控制 |
|
07 | Keyboard/Keypad | 键盘 |
|
08 | LEDs | LED阵 |
|
09 | Button | 按钮 |
|
0A | Ordinal | 顺序 |
|
0B | Telephony | 电话 |
|
0C | Consumer | 消费 |
|
0D | Digitizer | 数字化仪 |
|
0E | Reserved | 保留 |
|
0F | PID Page | 人体接口设备 |
|
10 | Unicode | Uincode码 |
|
11-13 | Reserved | 保留 |
|
14 | Alphanumeric Display | 字符显示 |
|
15-3f | Reserved | 保留 |
|
40 | Medical Instruments | 医学设备 |
|
41-7F | Reserved | 保留 |
|
80-83 | Monitor pages | 监控器页 |
|
84-87 | Power pages | 电源页 |
|
88-8B | Reserved | 保留 |
|
8C | Bar Code Scanner page | 条形码页 |
|
8D | Scale page | 天平 |
|
8E | Magnetic Stripe Reading (MSR) Devices | 磁条阅读设备 |
|
8F | Reserved Point of Sale pages |
|
|
90 | Camera Control Page | 照相机控制页 |
|
91 | Arcade Page |
|
|
92-FEFF | Reserved | 保留 |
|
FF00-FFFF | Vendor-defined | 用户自定义 |
|
【Generic Desktop Controls】用途页下的部分主要用途Usage
用途ID | 用途名 | 用途类型 | 说明 |
00 | Undefined |
| 未定义 |
01 | Pointer | CP(物理集合) | 指针定位 |
02 | Mouse | CA(应用集合) | 鼠标 |
03 | Reserved |
| 保留 |
04 | Joystick | CA(应用集合) | 游戏摇杆 |
05 | Game Pad | CA(应用集合) | 游戏板 |
06 | Keyboard | CA(应用集合) | 键盘 |
07 | Keypad | CA(应用集合) | 键板(数字小键盘) |
08 | Multi-axis Controller | CA(应用集合) | 多轴控制器 |
09 | Tablet PC System Controls | CA(应用集合) | 平板计算机系统控制 |
0A-2F | Reserved |
| 保留 |
30 | X | DV(动态值) | X坐标 |
31 | Y | DV(动态值) | Y坐标 |
32 | Z | DV(动态值) | Z坐标 |
33 | Rx | DV(动态值) | X轴旋转 |
34 | Ry | DV(动态值) | Y轴旋转 |
35 | Rz | DV(动态值) | Z轴旋转 |
36 | Slider | DV(动态值) | 滑动条 |
37 | Dial | DV(动态值) | 刻度盘 |
38 | Wheel | DV(动态值) | 旋钮 |
39 | Hat switch | DV(动态值) | 碰触开关 |