您现在的位置是:主页 > HID规范 >
HID报告描述符Report Descriptor解析分析
发布时间:2022-11-16 19:55:08所属栏目:HID规范 已帮助人编辑作者:【USB接口百科】
HID独有的报告描述符也叫报表描述符对于初学者来说比较复杂,但是如果真正理解了它,我们又不得不惊吧于设计者的巧妙设计。
HID报告描述符是由一系列的条目(item)组成的,一个item一般是又包括头部信息(bTag,bType,bSize)和数据内容。所以说item在HID的报告描述符中是最小的信息单元。ITEM是HID报告描述符的最最基本的数据结构。
HID报告描述符的最小单元是ITEM,在HID规范中这个ITEM又分为两种:
短ITEM :使用最广泛的ITEM类型,我们重点研究的对象长ITEM :几乎不会使用到。详细的长短项解释可见:http://www.usbzh.com/article/detail-48.html
HID报告描述符的解析在各操作系统中,HID类驱动程序包含一个报告描述符的解析器,用于分析在报表描述符中找到的项。
VS2019分析HID报告描述符解析源代码 http://www.usbzh.com/article/detail-461.htmlHID设备的驱动HidClass,HIDUSB.sys,HidParser.sys和HidParse.sys之间的关系 http://www.usbzh.com/zone/detail-31.html没有解析报告描述符的程序例程? http://www.usbzh.com/zone/detail-12.html从解析器的角度来看,HID类设备如下图所示:
解析器在遍历描述符时收集每个已知项的状态,并将它们存储在项状态表中。项目状态表包含单个项目的状态。
解析器线性的方式进行对各ITEM进行扫描,根所不同的ITEM类型,动作不一样,主要执行的是main重新分配操作,push和pop操作。
main item:当解析器遇到一个main条目后,将分配并初始化新的报告结构使用当前项状态表。然后从item状态表中删除所有local item ,但保留global项目。 这样,Global 项就为后续新的 Main 项设置了默认值。 具有多个类似控件(例如,六个轴)的设备只需要在第一个 Main 项目之前定义 Global 项目一次。
main item按照它们的声明顺序与collection进行相关联,当解析器遇到一个collection时,表示一个集合的的开始,遇到 End Collection表示一个集合的结束。
当遇到 Push 项目时,项目状态表被复制并放置在堆栈上供以后检索。
当找到一个 Pop 项目时,项目状态表被堆栈中的顶部表替换。 例如:Unit (Meter), Unit Exponent (-3), Push, Unit Exponent (0)
当解析器到达 Push item时,它会将定义单位为毫米(10-3 米)的项目放置在堆栈上。 下一个项目将项目状态表更改为米单位(100 米)。
解析器需要解析整个 Report 描述符以找到所有 Main 项。 这是分析设备发送的报告所必需的。以上就是USB接口百科为您提供HID报告描述符Report Descriptor解析分析的解读,本文章链接: http://www.usb-hub.cn/hidgf/42340.html 欢迎分享转载,更多婚礼相关资讯请前往HID规范
上一篇:HID 报表描述符/报告描述符
下一篇:HID报告描述符详解
相关文章
USB接口百科推荐
HID报告描述符Usage
HID 设置协议SetProtocol
HID 获取空闲请求GetIdle
HID设备的bInterfaceClass、bInterfaceSubClass和bInterfaceProtocol
HID 设置空闲SetIdle
HID报告描述符主项InputReport、OutputReport,FeatureReport
HID规范、HID Usage Tables版本及文档分类
HID 设备描述符关系
HID设备描述符的级级关系
HID局部条目
HID 全局条目(Global Item)
HID报告描述符协议
HID报告描述符的GLOBAL ITEM
HID 简介
HID报告描述符详解