前言 断断续续的学习了将近三个月,才把USB的HID类搞明白,速度真是够慢的.利用晚上+周末的时间学习自己的东西确实是必要的,不过效率是有点低,以后要更专注一些才行,希望自己能做到吧. 在学习过程中,刚开始主要参考了周立功编写的一本<PDIUSBD12 USB 固件编程与驱动开发>,后面的学习主要参考电脑圈圈的资料包,包括里面的HID类的英文协议文档,还有一位台湾前辈几年前写的几篇文章,还有网络下有下得到的一些例程.在此感谢各位大虾前辈的分享. 一.学习流程 1,先大致看下USB1.1中文版的…
转自:http://group.ednchina.com/93/198.aspx. 参考:USB HID usage table 概述:   报告在这里意思是数据传输(data transfer),而报告描述符是对这些传输的数据作用途(usage)上的说明. USB通讯协议的规范是以1ms产生一个USB帧(frame),USB设备可以每一个帧中发送和接收一个交换(transaction).交换是由几个封包(packet)组成,而传输是由一个或几个交换来完成传送一口中有效的数据.在这里,传输和报告…
title: usb的hid鼠标键盘报告描述符 tags: linux date: 2018/12/20/ 18:05:08 toc: true --- usb的hid鼠标键盘报告描述符 https://blog.csdn.net/xqhrs232/article/details/79184272 鼠标 鼠标发送给PC的数据每次4个字节 BYTE1 BYTE2 BYTE3 BYTE4 定义分别是: BYTE1 -- ​ |--bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,…
在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,接口描述符,端点描述符,字符串描述符,报告描述符等等.USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符.        USB HID设备是通过报告来给传送数据的,报告有输入报告和输出报告.输入报告是USB设备发送给主机的,例如USB鼠标将鼠标移动和鼠标点击等信息返回给电脑,键盘将按键数据数据返回给电脑等:输出报告是主机发送给USB设备的,例如键盘上的数字…
Report descriptors are composed of pieces of information. Each piece of information is called an Item.报告描述符由一些数据片组成.这些数据片被叫做Item.All items have a one-byte prefix that contains the item tag, item type, and item size. 每一个Item都包含一个字节的前缀,这个前缀中包含了三个信息--it…
1,报告描述符概述    1.1) 报表描述符        报表描述符和USB的其他描述符是不一样的,它不是一个简单的表格,报表描述符是USB所有描述符中最复杂的.报表描述符非常复杂而有弹性,因为它需要处理各种用途的设备.报表的数据必须以简洁的格式来储存,这样才不会浪费设备内的储存空间以及数据传输时的总线时间.实际上可以这样理解,报表内容的简洁,是通过报表描述符全面的.复杂的数据描述实现的.报表描述符必须先描述数据的大小与内容.报表描述符的内容与大小因设备的不同而不同,在进行报表传输之前,主机…
在USB中,USB Host是通过各种描述符来识别识别设备的,一般在设备枚举的过程将会获取有设备描述符/配置描述符/接口描述符/端点描述符/字符串描述符等 现在我们来介绍一下HID ReportDesc. 我们看一下在其内容为 我们先来使用HID Descriptor Tool来生成上面的数据 小结 USAGE_PAGE You first set a usage page.  Above it is using 'Generic Desktop' USAGE_PAGE page is much…
部分参考自:http://www.geekfan.net/7862/ 新式类与经典类 2和3不一样,3都是新式类. 新式类和经典类的区别: class A: #classic class """this is class A""" pass __slots__=('x','y') def test(self): # classic class test """this is A.test()""&…
什么是描述符类? 根据鸭子模型理论,只要具有__get__方法的类就是描述符类. 如果一个类中具有__get__和__set__两个方法,那么就是数据描述符,. 如果一个类中只有__get__方法,那么是非数据描述符. __get__:当我们用类或者实例来调用该属性时,Python会返回__get__函数的结果. __set__:当我们用实例来设置属性值时,Python会调用该函数.对类没有限制作用. __delete__:当我们用实例试图删除该属性时,Python会调用该函数.对类没有限制作用…
https://www.cnblogs.com/Jimmy1988/p/6808237.html https://segmentfault.com/a/1190000006660339 https://blog.csdn.net/u013679490/article/details/54767152 1.getattribute() 无条件调用 2.数据描述符(定义了__get__\__set__方法的类的实例) --由1的getattribute()调用[注,会将数据描述符转换成:当前类名._…