找回密码
 立即注册
查看: 931|回复: 1

FAQ:绝对值鼠标描述符怎么写?

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-9 15:53:25 | 显示全部楼层 |阅读模式


简化版的绝对值鼠标HID描述符示例:
05 01       ; Usage Page (Generic Desktop)
09 02       ; Usage (Mouse)
A1 01       ; Collection (Application)
85 01       ;   Report ID (1)
09 01       ;   Usage (Pointer)
A1 00       ;   Collection (Physical)
05 09       ;     Usage Page (Button)
09 01       ;     Usage (Button 1)
09 02       ;     Usage (Button 2)
09 03       ;     Usage (Button 3)
15 00       ;     Logical Minimum (0)
25 01       ;     Logical Maximum (1)
75 01       ;     Report Size (1)
95 03       ;     Report Count (3)
81 02       ;     Input (Data, Var, Abs)
05 01       ;     Usage Page (Generic Desktop)
09 01       ;     Usage (Pointer)
75 08       ;     Report Size (8)
95 02       ;     Report Count (2)
81 01       ;     Input (Const, Array)
C0           ;   End Collection
C0           ; End Collection




05 01:表示通用桌面设备的使用页面。
09 02:表示鼠标设备的使用。
A1 01:开始一个应用级别的集合。
85 01:定义报告ID为1。
09 01:定义了一个指针类型的使用。
A1 00:开始一个物理级别的集合。
05 09:切换到按钮使用页面。
09 01:09 02, 09 03:分别定义了按钮1、2、3的使用。
15 00:和25 01:定义了逻辑最小值和最大值。
75 01:定义了报告大小为1位。
95 03:定义了报告计数为3,表示有3个按钮状态。
81 02:定义了一个输入报告,数据类型为变量,绝对定位。
05 01:回到通用桌面设备使用页面。
09 01:再次定义指针类型的使用。
75 08:定义了报告大小为8位(1字节)。
95 02:定义了报告计数为2,表示有两个坐标轴(X和Y)。
81 01:定义了一个输入报告,数据类型为常量,数组形式。
C0:结束集合。




char ReportDescriptor[42] = {
    0x05, 0x01,                    // USAGE_PAGE (Generic Desktop)
    0x09, 0x02,                    // USAGE (Mouse)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x85, 0x01,                    //   REPORT_ID (1)
    0x09, 0x01,                    //   USAGE (Pointer)
    0xa1, 0x00,                    //   COLLECTION (Physical)
    0x05, 0x09,                    //     USAGE_PAGE (Button)
    0x09, 0x01,                    //     USAGE (Button 1)
    0x09, 0x02,                    //     USAGE (Button 2)
    0x09, 0x03,                    //     USAGE (Button 3)
    0x15, 0x00,                    //     LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //     LOGICAL_MAXIMUM (1)
    0x75, 0x01,                    //     REPORT_SIZE (1)
    0x95, 0x03,                    //     REPORT_COUNT (3)
    0x81, 0x02,                    //     INPUT (Data,Var,Abs)
    0x05, 0x01,                    //     USAGE_PAGE (Generic Desktop)
    0x09, 0x01,                    //     USAGE (Pointer)
    0x75, 0x08,                    //     REPORT_SIZE (8)
    0x95, 0x02,                    //     REPORT_COUNT (2)
    0x81, 0x01,                    //     INPUT (Cnst,Ary,Abs)
    0xc0,                          //   END_COLLECTION
    0xc0                           // END_COLLECTION
};



截图202408091550538474.jpg

截图202408091551395763.jpg

截图202408091552445420.jpg

绝对值鼠标.hid (254 Bytes, 下载次数: 74)

DebugLab
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-8-10 09:37:00 | 显示全部楼层
wnag*** 发表于 2024-8-9 16:22
这就是数位板嘛,学习了

还不一样,数位板还有压力信息
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:26 , Processed in 0.165705 second(s), 52 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表