键盘鼠标报告描述符解释

上传人:桔**** 文档编号:432932487 上传时间:2023-07-17 格式:DOCX 页数:6 大小:26.25KB
返回 下载 相关 举报
键盘鼠标报告描述符解释_第1页
第1页 / 共6页
键盘鼠标报告描述符解释_第2页
第2页 / 共6页
键盘鼠标报告描述符解释_第3页
第3页 / 共6页
键盘鼠标报告描述符解释_第4页
第4页 / 共6页
键盘鼠标报告描述符解释_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《键盘鼠标报告描述符解释》由会员分享,可在线阅读,更多相关《键盘鼠标报告描述符解释(6页珍藏版)》请在金锄头文库上搜索。

1、code char KeyBoardReportDescriptor63 = /表示用途页为通用桌面设备0x05, 0x01,/ USAGE_PAGE (Generic Desktop)/表示用途为键盘0x09, 0x06,/ USAGE (Keyboard)/表示应用集合,必须要以END_COLLECTION 来结束它,见最后的END_COLLECTION0xa1, 0x01,/ COLLECTION (Application)/表示用途页为按键0x05, 0x07, / USAGE_PAGE (Keyboard)/用途最小值,这里为左 ctrl 键0x19, 0xe0,/ USAGE_MI

2、NIMUM (KeyboardLeftControl)/用途最大值,这里为右 GUI 键,即 window 键0x29, 0xe7,/ USAGE_MAXIMUM (Keyboard RightGUI)/逻辑最小值为00x15, 0x00,/ LOGICAL_MINIMUM (0)/逻辑最大值为10x25, 0x01,/ LOGICAL_MAXIMUM (1)报告大小(即这个字段的宽度)为1bit,所以前面的逻辑最小值为0,逻 辑最大值为 10x75, 0x01, / REPORT_SIZE (1)报告的个数为8,即总共有8个bits0x95, 0x08, / REPORT_COUNT (8)

3、/输入用,变量,值,绝对值。像键盘这类一般报告绝对值/而鼠标移动这样的则报告相对值,表示鼠标移动多少0x81, 0x02,/ INPUT (Data,Var,Abs)上面这这几项描述了一个输入用的字段,总共为8个bits,每个bit表示一个按键分别从左Ctrl键到右GUI键。这8个bits刚好构成一个字节,它位于报 告的第一个字节。它的最低位,即bit-0对应着左Ctrl键,如果返回的数据该位为1则表 示左 Ctrl 键被按下,否则,左Ctrl键没有按下。最高位,即bit-7表示右GUI键的按下情况。 中间的几个位,需要根据HID协议中规定的用途页表(HID Usage Tables)来确定。

4、这 里通常用来表示/特殊键,例如 Ctrl, shift, del 键等/这样的数据段个数为 10x95, 0x01,/REPORT_COUNT (1)/每个段长度为 8bits0x75, 0x08,/REPORT_SIZE (8)/输入用,常量,值,绝对值0x81, 0x03,/INPUT (Cnst,Var,Abs)上面这8个bit是常量,设备必须返回0/这样的数据段个数为 50x95, 0x05,/ REPORT_COUNT (5)/每个段大小为 1bit0x75, 0x01,/ REPORT_SIZE (1)用途是LED,即用来控制键盘上的LED用的,因此下面会说明它是输出 用0x05

5、, 0x08,/ USAGE_PAGE (LEDs)用途最小值是Num Lock,即数字键锁定灯0x19, 0x01,/ USAGE_MINIMUM (Num LoCk)用途最大值是Kana,这个是什么灯我也不清楚人人0x29, 0x05,/ USAGE_MAXIMUM (Kana)如前面所说,这个字段是输出用的,用来控制LED。变量,值,绝对值。/1表示灯亮, 0 表示灯灭0x91, 0x02,/这样的数据段个数为10x95, 0x01,/每个段大小为 3bits0x75, 0x03,/输出用,常量,值,绝对0x91, 0x03,/ OUTPUT (Data,Var,Abs)/ REPORT

6、_COUNT (1)/ REPORT_SIZE (3)/ OUTPUT (Cnst,Var,Abs)由于要按字节对齐,而前面控制LED的只用了 5个bit,所以后面需要附加3个不用bit,设置为常量。/报告个数为60x95, 0x06,/每个段大小为 8bits0x75, 0x08,/逻辑最小值 00x15, 0x00,/逻辑最大值 2550x25, 0xFF,/用途页为按键0x05, 0x07,/使用最小值为 00x19, 0x00, /REPORT_COUNT (6)REPORT_SIZE (8)LOGICAL_MINIMUM (0)LOGICAL_MAXIMUM (255)USAGE_P

7、AGE (Keyboard)USAGE_MINIMUM (Reserved (noevent indicated)/使用最大值为 0x65/ USAGE_MAXIMUM (Keyboard0x29, 0x65,Application)/输入用,变量,数组,绝对值0x81, 0x00,/ INPUT (Data,Ary,Abs)以上定义了 6个8bit宽的数组,每个8bit (即一个字节)用来表示一个按键,所以可以同时/有 6 个按键按下。没有按键按下时,全部返回 0。如果按下的键太多,导 致键盘扫描系统无法区分按键时,则全部返回0x01,即6个0x01。如果有一个键按下, 则这6个字节中的第一

8、个字节为相应的键值(具体的值参看HID Usage Tables),如果两个键 按下,则第1、2两个/字节分别为相应的键值,以次类推。/关集合,跟上面的对应0xc0/ END_COLLECTION;通过上面的分析,我们知道这个报告中只有一个报告,所以没有报告 ID, 因此返回的都是实际使用的数据。总共有8字节输入,1字节输出。其中输入的 第一字节用来表示特殊按键,第二字节保留,后面的六字节为普通按键。下面这个报告描述符是 USB 鼠标报告描述符,比起键盘的来说要简单些。它描述了 4 个字节,第一个字节表示按键,第二个字节表示 x 轴(即鼠标左右 移动,0表示不动,正值表示往右移,负值表示往左移

9、),第三个字节表示y轴 (即鼠标上下移动, 0 表示不动,正值表示往下移动,负值表示往上移动),第 四个字节表示鼠标滚轮(正值为往上滚动,负值为往下滚动)。code char MouseReportDescriptor52 = /通用桌面设备0x05, 0x01,/鼠标/ USAGE_PAGE (Generic Desktop)0x09, 0x02,/集合/ USAGE (Mouse)0xa1, 0x01,/ COLLECTION (Application)/指针设备/USAGE (Pointer)0x09, 0x01,/集合0xa1, 0x00,/按键/COLLECTION (Physica

10、l)0x05, 0x09,/使用最小值1/USAGE_PAGE (Button)/USAGE_MINIMUM (Button 1)0x19, 0x01,/使用最大值3。1表示左键, 2表示右键, 3 表示中键0x29, 0x03,/逻辑最小值0/USAGE_MAXIMUM (Button 3)0x15, 0x00,/逻辑最大值1/LOGICAL_MINIMUM (0)0x25, 0x01,/数量为 3/LOGICAL_MAXIMUM (1)0x95, 0x03,/大小为 1bit/REPORT_COUNT (3)0x75, 0x01,/输入,变量,数值绝对值/REPORT_SIZE (1)以上

11、3个bit分别表示鼠标的三个按键情况,最低位(bit-0)为左键/bit-1 为右键, bit-2 为中键,按下时对应的位值为 1,释放时对应的值为0x81, 0x02,/INPUT (Data,Var,Abs)填充5个bit,补足一个字节0x95, 0x01,/REPORT_COUNT (1)0x75, 0x05,/REPORT_SIZE (5)0x81, 0x03,/INPUT (Cnst,Var,Abs)/用途页为通用桌面0x05, 0x01,/USAGE_PAGE (Generic Desktop)/用途为 X0x09, 0x30,/USAGE (X)/用途为 Y/USAGE (Y)0

12、x09, 0x31,;0x09, 0x38,/逻辑最小值为-127/USAGE (Wheel)0x15, 0x81,/逻辑最大值为+127/LOGICAL_MINIMUM (-127)0x25, 0x7f, /大小为 8 个 bits/LOGICAL_MAXIMUM (127)/0x75, 0x08,数量为3个,即分别代表x,y,滚轮REPORT_SIZE (8)0x95, 0x03, /输入,变量,值相对值/REPORT_COUNT (3)0x81, 0x06,/关集合/INPUT (Data,Var,Rel)0xc0,0xc0/ END_COLLECTION/ END_COLLECTION/用途为滚轮这里只对报告描述符做一个简单的介绍,更详细的资料请参看USB HID协议以及 HID Usage Tables

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号