Python实现USB HID报文转换:未知用法处理教程
需积分: 33 140 浏览量
更新于2024-08-07
收藏 2.26MB PDF 举报
本教程详细介绍了如何在Python中实现一个CAN报文转换工具,特别关注通用串行总线(USB)HID(Human Interface Device)的使用。HID协议用于设备与主机之间的交互,它定义了一系列标准的输入输出设备用法(Usage Tables),以便于不同设备间的互操作。
3.1 部分关键知识点:
- HID使用表约定:HID规定,ID 0应始终保持保留,用于标识通用或基础功能。使用ID 1到0x1F通常用于表示“顶级”集合,这些ID不是应用程序级别的,而是用来识别常见的设备类型,例如键盘、鼠标等。每个使用(Usage)由32位标识符构成,高16位表示使用页面(Usage Page),低16位表示使用ID。对于紧凑的报告描述符,可以分别声明使用页面和使用ID,例如当bSize字段为1或2时,数据部分全部用于ID;bSize为3时,前16位为ID,后16位为页面。
3.2 处理未知用法:
在开发过程中,如果遇到应用程序未知的用法,应采取谨慎态度,即忽略它们。这是因为某些设备可能会自定义或扩展HID标准,未知的集合及其包含的用法可能被用于改变其原有的意义。例如,LED页面上的Usage Selected Indicator,其含义可能因设备的不同而变化。系统软件虽然提供了解析HID报告描述符的功能,但在遇到未定义的用法时,驱动程序加载或映射可能依赖于与顶级应用程序集合关联的预定义用法,以实现传统兼容性。
此外,文档还提到了USB HID Usage Tables的历史版本更新,从1.0版本开始,经过多次审查和修正,反映了行业标准的发展和完善过程。这些版本记录了对条形码使用页面ID、键盘使用表等的整合,以及对HID规范和审查请求的响应,体现了USB Implementers Forum对确保兼容性和标准化的重视。
总结,这个教程不仅教授了如何处理和编码HID报文,还展示了HID技术在USB设备通信中的关键角色,以及开发者在面对不确定性时的处理策略。同时,了解历史版本和变更记录对于理解HID协议的演变和实践应用至关重要。
点击了解资源详情
点击了解资源详情
5308 浏览量
点击了解资源详情
点击了解资源详情
577 浏览量
958 浏览量
思索bike
- 粉丝: 38
- 资源: 3959
最新资源
- 2013年 " 蓝桥杯 "第五届全国软件和信息技术专业人才大赛 嵌入式设计与开发项目模拟试题——·双路输出控制器·代码.zip
- CookingApp_v1
- 国际象棋
- 图形窗口生成器 fig.m,版本 3.1:打开具有指定大小的新图形窗口-matlab开发
- front-end-samples:前端样本
- 电路方面的仿真操作 资料
- AR256_Demon_killers:预测棉花的未来价格趋势并提出合适的价格模型并缩小买卖双方之间的差距(SIH-2020)
- My-OOP-endterm-project:Bakhytzhan SE-2016
- rest:基于 https 的流星休息
- EI会议海报可编辑模板,高效解决新手小白对不知道如何制作海报的困惑
- 保险行业培训资料:一诺千金产品基础班
- state-csv.zip
- 图书馆应用
- 带有 3D 误差条的简单条形图:带有 3D 误差条的简单条形图。-matlab开发
- 保险公司讲师邀请函版本
- tamplated-road-trip