HID类报表描述符深入理解(需要完善)

ops/2024/9/23 1:34:28/

参考资料

一篇博文,
USB中文网,
USB中文网1,
HID有关资源,

HID报告描述符的基本组成(短)item

长的item几乎没使用过,和短的item使用方法类似,可根据HID协议查看,使用方式可以参考item介绍

三大类items

详细介绍可参考一篇博文,
在这里插入图片描述

一个HID报告描述符的整体框架

keyboad的hid实例,参考

05 01          //Usage Page (Generic Desktop),
09 06          //Usage (Keyboard),
A1 01          //Collection (Application),
05 07          //Usage Page (Key Codes);
19 E0          //Usage Minimum (224),
29 E7          //Usage Maximum (231),
15 00          //Logical Minimum (0),
25 01          //Logical Maximum (1),
75 01          //Report Size (1),
95 08          //Report Count (8),
81 02          //Input (Data, Variable, Absolute), ;Modifier byte
95 01          //Report Count (1),
75 08          //Report Size (8),
81 01          //Input (Constant), ;Reserved byte
95 05          //Report Count (5),
75 01          //Report Size (1),
05 08          //Usage Page (Page# for LEDs),
19 01          //Usage Minimum (1),
29 05          //Usage Maximum (5),
91 02          //Output (Data, Variable, Absolute),  ;LED report
95 01          //Report Count (1),
75 03          //Report Size (3),
91 01          //Output (Constant),  ;LED report padding
95 06          //Report Count (6),
75 08          //Report Size (8),
15 00          //Logical Minimum (0),
25 65          //Logical Maximum(101),
05 07          //Usage Page (Key Codes),
19 00          //Usage Minimum (0),
29 65          //Usage Maximum (101),
81 00          //Input (Data, Array), ;Key arrays (6 bytes)
C0             //End Collection

在这里插入图片描述

HID报表描述符中常见命令和代表的含义

在这里插入图片描述

报表描述符的item中参数含义

下面是控制类型的usage type,一般用于,可以看出数据的类型和触发方式等
在这里插入图片描述
音量调节的控制方式,满足条件触发一次
在这里插入图片描述
在这里插入图片描述
数据类型一般用于INPUT, OUTPUT,Feature的item中
在这里插入图片描述

bit位作用或含义
Bit0:Data(0):数据表示该项目正在定义包含可修改设备数据的报告字段。 Constant(1)常量表示该项目是报表中的静态只读字段,一般保留字符使用
Bit1Array(0): 将每个数据占用8bit位 Variable(1): 每个字节占1bit
Bit 2Absolute (0) 指示数据是绝对数据(基于固定原点)还是相对数据(指示上次报告的值变化)。 Relative (1) 鼠标设备通常提供相对数据,而平板电脑通常提供绝对数据。
Bit3Wrap(1):数值过最大循环到最小(例如音量键到100后) Wrap(0): 不循环
Bit 4Linear (0) :来自设备的原始数据和报告数据存在线性关系,一般是灵敏度修改; Non Linear (1):对原始数据非线性处理
Bit 5Preferred State(0):主项目对应的操作再不被触发时会自动恢复到初始状态,例如键盘的按键; Preferred State(1):不会恢复原状
Bit 6No Null position (0):任何状态都发送有效数据,; Null state(1):控件某一种空状态,处于不发送有意义数据的状态
Bit 8Bit Field (0) :控件发出固定大小的字节流 Buffered Bytes (1):主项目的数据格式要以字节为单位,不足构成字节时自动填充成字节

在这里插入图片描述


http://www.ppmy.cn/ops/87487.html

相关文章

重生之我在NestJS中使用EventStream

有一个需求是需要长连接等待后台的返回,我们使用的EventStream,在NestJS中使用很简单,框架基本上已经封装好了 0. 如果没有创建项目的,可以先创建一个项目,创建项目的直接跳转到下一个步骤去 全局安装 nest: npm inst…

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.7安全架构

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…

AHK是让任何软件都支持 Shift + 鼠标滚轮 实现界面水平滚动

目录 基本介绍 详细特点 图解安装 下载失败?缓慢? 创建并运行脚本代码😃 新建空 xxx.ahk文件 vscode/记事本等编辑工具打开 复制并粘贴简易脚本 运行 其他问题 问题一:弹出无法执行此脚本 关闭脚本 基本介绍 AutoHot…

TZDYM001矩阵系统源码 矩阵营销系统多平台多账号一站式管理

外面稀有的TZDYM001矩阵系统源码,矩阵营销系统多平台多账号一站式管理,一键发布作品。智能标题,关键词优化,排名查询,混剪生成原创视频,账号分组,意向客户自动采集,智能回复&#xf…

使用Prometheus监控Java应用性能

使用Prometheus监控Java应用性能 大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天,我们将探讨如何使用Prometheus监控Java应用的性能。 一、引入Prometheus客户端库 在Java应用中使用…

MySQL——日期与时间类型

为了方便在数据库中存储日期和时间,MySQL 提供了表示日期和时间的数据类型分别是 YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。下表列举了这些 MySQL 中日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值。 数据类型字节数取值范围日期格式零值YEAR119…

vue+node后台处理大文件切片上传--前端部分

本文主要介绍,在vue3vite项目下,如何进行有效的大文件上传,本文章主要讲大文件切片上传方式,并提供简单的demo代码供参考 首先,请确保已经创建好项目,这一步跳过。 1、为了选择合适的文件,我们…

Python酷库之旅-第三方库Pandas(060)

目录 一、用法精讲 231、pandas.Series.reorder_levels方法 231-1、语法 231-2、参数 231-3、功能 231-4、返回值 231-5、说明 231-6、用法 231-6-1、数据准备 231-6-2、代码示例 231-6-3、结果输出 232、pandas.Series.sort_values方法 232-1、语法 232-2、参数…