给鼠标描述符打上注释防止忘记

static uint8_t g_mouse_hid_desc[] = {
//通用桌面设备
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//鼠标设备
0x09, 0x02, // USAGE (Mouse)
//应用集合
0xa1, 0x01, // COLLECTION (Application)
//指针设备
0x09, 0x01, // USAGE (Pointer)
//物理集合
0xa1, 0x00, // COLLECTION (Physical)
//按键
0x85, CONFIG_MOUSE_REPORTID, // REPORT_ID (1)
0x05, 0x09, // USAGE_PAGE (Button)
//使用最小值1,最大值5(左,中,右,上,下)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x05, // USAGE_MAXIMUM (Button 5)
//罗技最新值0,最大值1
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
//数量为5
0x95, 0x05, // REPORT_COUNT (5)
//占一个bit
0x75, 0x01, // REPORT_SIZE (1)
//输入:数据,变量,绝对值
0x81, 0x02, // INPUT (Data,Var,Abs)
//以上3个bit分别表示鼠标的3个按键情况,最低(bit-0)为左键
//bit-1为右键,bit-2为中键,按下时对应值为1,释放时对应的值为0

//填充3个bit,补足一个字节
0x95, 0x01, // REPORT_COUNT (1)
0x75, 0x03, // REPORT_SIZE (3)
0x81, 0x03, // INPUT (Cnst,Var,Abs)
//用途页为通用桌面
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//用途为 X
0x09, 0x38, // USAGE (Wheel)
//逻辑最小值为-127,逻辑最大值为128
0x15, 0x81, // LOGICAL_MINIMUM (-127)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
//数量为1,每个占8bit
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
//输入:数据,变量,绝对值
0x81, 0x06, // INPUT (Data,Var,Rel)

//用途页为通用桌面
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
//用途为 X
0x09, 0x30, // USAGE (X)
//用途为 Y
0x09, 0x31, // USAGE (Y)
//逻辑最小值为-4096,逻辑最大值为4096
0x16, 0x01, 0xf0, // LOGICAL_MINIMUM (-4095)
0x26, 0xff, 0x0f, // LOGICAL_MAXIMUM (4095)
//数量为2,每个10bit
0x75, 0x10, // REPORT_SIZE (16)
0x95, 0x02, // REPORT_COUNT (2)
//输入:数据,变量,绝对值
0x81, 0x06, // INPUT (Data,Var,Rel)
//关闭集合
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};

用于学习记录,具体逻辑还是要看官方文档

相关推荐

  1. 鼠标描述符注释防止忘记

    2023-12-09 08:44:02       55 阅读
  2. Mybatis防止SQL注入

    2023-12-09 08:44:02       25 阅读
  3. 如何防止SQL注入攻击?

    2023-12-09 08:44:02       30 阅读
  4. C#防止多次注册事件

    2023-12-09 08:44:02       26 阅读
  5. 自己Linux搞个『回收站』,防止文件误删除

    2023-12-09 08:44:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-09 08:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-09 08:44:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-09 08:44:02       82 阅读
  4. Python语言-面向对象

    2023-12-09 08:44:02       91 阅读

热门阅读

  1. DETR 目标检测

    2023-12-09 08:44:02       50 阅读
  2. c 语言常用的加密算法——MD5

    2023-12-09 08:44:02       58 阅读
  3. UDP群聊

    UDP群聊

    2023-12-09 08:44:02      52 阅读
  4. Jenkins安装

    2023-12-09 08:44:02       76 阅读
  5. 达梦(主备)搭建

    2023-12-09 08:44:02       46 阅读
  6. WPF(Windows Presentation Foundation)的 ToolBar控件

    2023-12-09 08:44:02       58 阅读
  7. 个人简介(非学习类笔记)

    2023-12-09 08:44:02       57 阅读
  8. Dubbo学习

    2023-12-09 08:44:02       56 阅读
  9. C++同异步极致线程池

    2023-12-09 08:44:02       63 阅读
  10. ELK架构监控MySQL慢日志

    2023-12-09 08:44:02       60 阅读
  11. 线程安全与并发区别

    2023-12-09 08:44:02       59 阅读