Report count hid 1k次,点赞15次,收藏71次。本文详细介绍了如何构建蓝牙键盘的HID报文描述符,包括HID报文描述符的结构、TLC描述、Report Id、Report Size/Count等关键要素。通过理解这些概念,读者能够根据键盘报文格式编写对应的HID描述符,实现与主机的有效通 先のシリーズで usb に興味を持って、調べたり実際に実装してみたりしていますが、その過程で hid クラスのレポートディスクリプタをサボったなあということで、学んでいきたいと思っています。. Devices may misbehave because the HID report descriptor provided by the device is wrong, or because it needs to be dealt with in a special way, or because some special device or interaction mode is not handled 这篇将回答这个问题,主机如何知道键盘报文的格式。答案就是键盘将发送HID report descriptor(HID报文描述符)给主机,主机根据HID描述符就知道键盘的报文格式。 2. 11 Appendix B: Boot Interface Descriptors, B. HID报告描述分过程比较麻烦,对于MAIN ITEM,相对来说比较简单,就是一个简单的树形结构。 但对于GLOBAL ITEM和LOCAL ITEM组织的数据结构定义,还是相对比较麻烦的。 每一个HID 报告描述符都会有很多集合,这是由MAIN ITEM的Collection关键字定义的,无论它是Application类型的还是Physical类型的,反正其形成的 注意:上表中列出的用法在 Windows 中是已知的,使用 WM_POINTER 消息传递给应用程序。. 这里就表示每一位表示一个意义,用8个bit位,总共一个字节来表示这8个bit。 hi I want to transfer 256 bytes from host to stm32 device over Custom HID interface Following is the report desc in my stm32, /** Usb HID report descriptor. If I report_count:用于指定local usage的个数; report_size:用于指定每个usage的数据大小。 如鼠标的x和y坐标 HID messages are Reports. 3 0x05, 0x01,代表USAGE_PAGE (Generic Desktop) 的功能,是由《device class definition for human interface device (HID)》第24页的Report Descriptors 规定的。 分两部分,0x05为一部分,表示前缀,0x01为数据部分。 Re: HID Report Count « Reply #1 on: August 07, 2013, 09:51:44 am » If you mean the maximum value of the Report Count item, the low 2 bits of the Report Count tag are the number of bytes in the Report Count item. hid 把它存成 . Look @ section "6. 1 Windows USB HID Report Length. It includes: How many packets the 其中Reprot Size 用来描述某个数据域有多少个位;Report Count用来描述这样的数据域有多少个;Logical Minimum和Logical Maximum用来描述数据域的取值范围。 举一例,如果是鼠标的3个按键,每个按键占用一个一位的字段,则Report The HID subsystem is in charge of parsing the HID report descriptors, and converts HID events into normal input device interfaces (see HID I/O Transport Drivers). A report is binary data. 9k次,点赞3次,收藏25次。本文介绍了HID协议的基础知识,详细解读了HID设备与Windows系统的交互过程,包括使用hid. 通过下面的报告描述符的定义,我们根据上面的注释可知,包含一个中断输入报表描述符和一个中断输出报告描述符。其中断输入报告描述符用于usb hid键盘中断输入端点,输出报表描述符用于usb hid键盘中断输出端点。usb hid键盘的中断输入报告对于中断输入端点,数据格式定义如下:byte0:该字. org and also look at sample report descriptors in the same document to get an idea how it works. 注意:指针设备可以任意支持其他用法(包括供应商特定的用法)。 hid的报告描述符和其它描述符不一样,不是具有固定的数据结构,而是由固件开发商根据上报的数据自行组装的。这个组装的原材料是hid规范定义的item。所以说hid报告描述符就像搭积木一样,其最终的数据结构和设计图纸是什么,都是由固件开发商决定的,但是其最终的产品又是由hid规范提供的 一个报表描述符主要是为了描述报表的结构以及用途。报表的结构主要由报表的字段的长度(size)、数量(count)、属性(输入、输出等)决定,而报表的用途则由 HID 用途表文档规定。下面我们还是从 Kinetis KL25 hid报告描述符全局项report_count和report_size hid报告描述符全局项reportcount和reportsize用于指示报告描述符数据项的大小,其中: report_count:用于指定local usage的个数report_size:用于指定每个usage的数据大小。 如鼠标的x和y坐标 usage (x) 09 30 usage (y) 09 31 logical_minimum (-127) 15 81 logical_maximum (127) 25 7f report_size (8) 75 08 PyOCD doesn't itself parse the HID report descriptor, but kernel HID drivers will, and hidapi and pywinusb backends rely on the OS HID support and therefore the parsed reports. USB Packet Length With Report ID. 11 document in section 6. 下面是集成 Windows 笔顶级集合的报表描述符。 // Integrated Windows Pen TLC 0x05, 0x0d, // USAGE_PAGE (Digitizers) 0x09, 0x02 做了个自定义HID设备,可以收发数据,用它来作固件升级。主要是host通过output report下发固件数据,所以output report的size设置的比较大,有4kb,这样升级速度会快一些。经过测试在Windows xp、win7,win10上都木有问题,在linux上出现问题了。设 鼠标报告描述符示例显示物理集合中的指针设备使用情况。 // // Dummy mouse collection starts here // 0x05, 0x01, // USAGE_PAGE (Generic Desktop 文章浏览阅读5. The report descriptor is binary data that specifies the device type and the details of the reports that the device sends and receives. When you plug in an HID device, it sends its report descriptor(s) to the host computer. 0 USB Packet Length With Report ID. I can successfully send data from PC to device when output report is not larger than 1 byte. Windows USB HID Report Length. 要实现HID数据的传输,两者必须协商好一个数据包格式。 Report Count (1), 75 01. 3w次,点赞37次,收藏151次。报告描述符是hid设备向主机描述数据用途的关键,它定义了设备发送数据的格式和意义。usb协议的四种传输方式——控制传输、中断传输、批量传输和同步传输,各自服务于不同类型的通信需求。控制传输用于配置和状态查询,中断传输适合周期性数据 Contact Count Maximum Feature Report. Accessing USB device data based only on DESCRIPTOR HID Report. wVal 这是HID的report map的定义,定义了一些应用场景和数据位数,是输入还是输出,值的范围等等。 你应该看一下关于USB HID的定义,网上有很多资料。 取消 本文使用 Bus Hound 工具对 USB HID 设备数据包进行分析,并结合官方手册及网上文章进行整理。 文中未提到的知识,建议移步参考资源。 以笔者经验,直接阅读协议无法直观理解,最好使用工具抓包,结合协议文档分析真实数据,ONVIF协议如是,IEEE802. Note If you are implementing the following descriptor on a SKU that is specific to a mobile device, or a Windows phone, then see the knowledge base article about the HID descriptor issue (partner access required), to make sure that you have the right HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. I am developing a simple HID device with output report to receive data from PC. 7 Global Items on page 36 as:. It doesn't say USB transaction, just Report Transfer. The above describes how to parse the HID report descriptor and interpret the reports. h 檔就可以得到上面的 report descriptor。 HID独有的报告描述符也叫报表描述符对于初学者来说比较复杂,但是如果真正理解了它,我们又不得不惊吧于设计者的巧妙设计。 HID 报告描述符是由一系列的条目(item)组成的,一个item一般是又包括头部信息(bTag,bType,bSize)和数据内容。 所以说item在HID的报告描述符中是最小的信息单元。 hid人机交互qq群:564808376 uac音频qq群:218581009 uvc相机qq群:331552032 bot&uasp大容量存储qq群:258159197 stc-usb单片机qq群:315457461 usb技术交流qq群2:580684376 usb技术交流qq群:952873936 Report Count=0,那么local item的属性值将作用在下一个Main item上(通常是Collection) 以上部分内容来自HID协议. While reporting data, a device must not report more A USB HID Report Descriptor is requested by a USB host from a USB device. 0. 其它Main item/Report size/Report count/Logical minium等都是用于修饰Usage。 HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. 4. 本記事は、レポート The HID subsystem is in charge of parsing the HID report descriptors, and converts HID events into normal input device interfaces (see HID I/O Transport Drivers). (the max value that can be reported) 0x95, 0x03, // REPORT_COUNT = 3 (total number of reported data fields, in this case the number of buttons) 0x75, 0x01, // REPORT_SIZE = 1 (bits used Report Descriptors can and frequently do contain input, output, and features mixed in a single report descriptor. To define an HID device, you need to supply an HID report descriptor. Note that this limit is only enforced by hardware in full speed report length is always the same size - the one found in report descriptor (in your case, there is a single report of Report Count * Report Size bits). REPORT_COUNT (1) 95 01 USAGE_PAGE (Telephony Devices) 05 0B USAGE (Phone) 09 01 COLLECTION (Application) A1 01 USAGE (Programmable Button) 09 07 COLLECTION (Logical) A1 02 USAGE_PAGE (Button) 05 09 USAGE_MINIMUM (Button 1) 19 01 USAGE_MAXIMUM (Button 6) 29 06 HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. 需要授權才能存取此頁面。 您可以嘗試登入或變更目錄。. 2. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词 文章浏览阅读1. For Report ID's, the USB HID spec states, "Report ID items are used to indicate which data fields are represented in each report structure. 1 Item介绍报告描述符比较复杂,它是以item形式排列组合而成,无固定长度,用户可以自定义长度以及每一bit的含义。item类型分三种:main,global和local,每种类型又可以分为多个tag: main: Input、Output、Feature、Collection、End Collection globa 1001:Report Count(查报告描述符的标签中的全域项目 Report Count) 01: bType, 全局项目(bType = 0:主项目;bType = 1:全局项目;bType = 2: 短项目的编码形式如下: 大多数设备都是通过一个数据报告给主机的,但也可以通过ReportId实现实现一个设备返回多个数据报告。例如,带有触摸设备的键盘可以独立报告同一端点上的“按键”数据和“指点”数据。ReportId用于区分不同的数据。Report ID固定为1字节长度,在数据传输前位数据的头部。 USB报告描述符(Report Descriptor)是HID设备中的一个描述符,它是比较复杂的一个描述符。 // REPORT_COUNT (8) // 输入用,变量,值,绝对值。像键盘这类一般报告绝对值, 示例报告描述符. With the report ID the remaining report data must not be longer than 63 bytes. That Report Descriptor is static and contains a No, the report ID counts as a data. HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. 在Windows系统的Parser驱动中,对于MAIN ITEM也是进行了足够的遵重,直接使用HID_COLLECTION来表示一个集合(COLLECTION),其中 文章浏览阅读1. . 2 Report Descriptor" in the "Device Class Definition for Human Interface Devices (HID)" @ usb. dll库进行编程的方法,以及如何通过各种API函数实现设备的识别、配置与数据交换。此外,还深入探讨了HID报表描述符的结构与解析方法。 hid描述符关联于接口描述符,因而如果一个设备只有一个接口描述符,则无论它有几个端点描述符,hid设备只有一个hid描述符。:修改部分为最后面按键输入描述部分,将后面6个按键缩减为2个按键(即:从6个字节缩减到2个字节),配合上前面2个字节的输入报告,正好是4个字节,刚好符合原来hid端点 这个结束标记除了有助于阅读程序外,其最主要的用处是可以用来计算描述符的长度(即字节数)。例如使用dwl end_hid_report_descriptor00 - hid_report_descriptor00组译器就会自动算出第一个报告描述符的长度,这个长度以二个字节来记载。 HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. 1. */ __ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] Report Descriptors. The Report Count just tells us that 2 fields of the current Report Size are coming up. Report Size项目指定Input、Output与Feature项目字段的大小,以bit为单位。 Report Count 项目指定 lnput、Output、Feature包含的字段数 HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类 hid的报告描述符和其它描述符不一样,不是具有固定的数据结构,而是由固件开发商根据上报的数据自行组装的。 这个组装的原材料是hid规范定义的item。 所以说hid 报告描述符就像搭积木一样,其最终的数据结构和设计图纸是什么,都是由固件开发商决定的,但是其最终的产品又是由hid规范提供的 本主题介绍 Windows 精确式触摸板设备的示例报告描述符和示例描述符摘录。 若是Array,则Report Count 的数据值表示可以同时被触发的最多操作数目。后文中键盘之例会解说Array 的用法。 例如使用dwl end_hid_report_descriptor00 - hid_report_descriptor00组译器就会自动算出第一个报告描述符的长度,这个长度以二个字节来记 是report size,表示report輸入字節寬度,report count表示report總數。 比如按鍵是report size 為1,report count 為8,即一個包為8字節。 然後是input hid包格式,用兩個字符來表示。0x81,0x06表示包裡的由如下格式組成. 11)如是,USB协议亦如是。 Xbox One手柄的HID描述符是一个标准的USB HID设备描述符,用于描述设备的功能和属性。该描述符包含多个子描述符,其中最重要的是输入报告描述符,它定义了手柄发送给主机的数据格式。 0x95, 0x05, // Report Count (5), 总的有5个灯,5*1bit 0x75, 0x01, // Report Size (1), 每个数据1bit 0x05, 0x08, // Usage Page (LEDs), 定义灯的用途页 This topic presents a sample report descriptor and a sample descriptor excerpt for a Windows Touchscreen device. 需要授權才能存取此頁面。 您可以嘗試變更目錄。 GetReport请求用于获取HID设备的报告,由主机发送GetReport请求,设备返回报表数据。GetReport请求一般发生于设备初始化时或需要读取设备报表时。详见:USB标准请求bmRequestType(1):0xa1bRequest(1): GET_REPORT,值为01. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词. It tells the host how to interpret the report data packets the device sends to it. (其中0x06)有效。分析軟件解析成如下。 一个报告描述符可以由多个Report组成,当超过1个Report时,需要用collection去组合,collection可以嵌套collection,每个Report都可以有多个用途(Usage). 0 国际概述USB HID 报告描述符 ( Report Descriptor) 是 USB 主机请求于 USB 设备的一种描述符。 ( Report Count) 、数量 ( Report Size) 、报告 ID ( ReportId) 等。Global Item 对后续的所有 Item 有效,当遇到新的 Global Item 时才会变为新的定义数据。 REPORT_COUNT is defined in the Device Class Definition for HID 1. 1k次,点赞17次,收藏17次。(Logical Maximum)】在USB HID报告描述符中,逻辑最小值和逻辑最大值定义了设备可以报告的数据范围的下限和上限。在上面的代码中,数字主要用于定义USB HID报告描述符中的各个字段,以及可能用于修饰键的宏定义(尽管这些宏的实际值在代码片段中并未给 文章内容提示 这篇文章主要说明如何获取与查看USB和BLE HoGP HID设备报告描述符,如何根据获取的描述符读懂report。然后说明了可以使用hidrd-convert工具,来如何根据hex报告描述符转化得到C语言格式的描述符,这对于我们编码是有意义的。其中,还截取了USB 逻辑分析仪,Wireshark等工具来查看input report。 0x95,0x01, /*Report Count (1) */ 0x75,0x08, /*Report Size (8)*/ 0x15,0x81, /*Logical Minimum (-127) */ Interface 0 HID Report Descriptor Mouse `Item Tag (Value) Raw Data` Usage Page (Generic Desktop) 05 01 Usage (Mouse) 09 键盘的报告描述符的理解 在参考别人的例程实现了键盘跑起来的时候,你这时候应该会想问的是,为什么描述符要这样写呢? 好的,我当初也有同样的疑问,那下面来简单说说键盘的报告描述符的含义。其它的描述符含义很明显,这里就不作详细讲解。报告描述符是hid类设备最重要的描述符,其实 どうもよくわからないところがあったのでまとめておく。HID 1. This report specifies the total number of contacts that a multi-touch device supports. Devices may misbehave Report Size 和 Report Count 项目. 3(802. 1 Protocol 1 (Keyboard) より Usage Page (Generic Desktop), Usage (Keyboard), Collection (Application), // Input Byte 0: キーボードモディファイア Report Size (1), // 1bit を 8 回 Report Count (8), Usage Page (Key Codes), Usage Minimum (224) HID 报告描述 1 报告描述简介 Report Description,即上报事件的描述,描述所支持事件的格式及取值意义,比如鼠标按键上报格式、左键右键中间键分别对应的值等;报告描述跟JSON有些类似,都是结构数据,格式类似{usage:1, {id:0,usage:1. hid报告描述符通过报告描述符的条目定义了hid报告数据的格式。对于大部分的hid设备来说,数据的传输方向都是输入的,即使用输入端点数据从设备端到主机端,并且使用的是中断的方式。当然hid设备不仅仅为数据的输入,有时也需要数据的输出。 Two byte report count for hid report descriptor. HID 报文描述符简介 我们先理解一下逻辑: (1) 键盘通过发送报文 delimit HID报告描述符; pwd HID报告描述符; 遥控器HID报告描述符; Windows系统10点触摸屏报告描述符支持; 符合HID标准的供应商自定义设备HID报告描述符; HID设备Telephony电话通讯报告描述符; HID音量调节报告描述符; HID自定义通讯输入输出报告描述符-大包传输示例; HID HID Report Protocol 数据包格式需求-Report Map. Two byte report count for hid report descriptor. But what happens once you have a HID report correctly parsed? In the case of the Linux kernel 文章浏览阅读1. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词 本文深入探讨了USB HID(Human Interface Device)设备的工作原理和技术细节,涵盖了HID设备的通信管道、描述符类型及其结构等内容,并提供了实例帮助理解报告描述符的组成与解析。 如果是Variable,则Report Count 的数据值等于报告数据的字段数。若是Array,则Report 文章浏览阅读6. 通过 File->Open 打开已存在的。hid 文件,然后在 Report Discriptor 中进行编辑。 ( Data,Var,Abs) USAGE ( Scan Previous Track) INPUT ( Data,Var,Abs) REPORT_COUNT ( 1) REPORT_SIZE ( 3) INPUT ( Cnst,Var,Abs) 后面六个字节为什么是一个字节代表一个键呢,同样是由逻辑最小值(LOGICAL_MINIMUM)、逻辑最大值(LOGICAL_MAXIMUM)、报告大小(REPORT_SIZE0)、报告个数(REPORT_COUNT)决定的,用途最小值0和最大值对应hid usage table里的定义,参考表Table 12: Keyboard/Keypad Page。 USB笔记2_HID本篇主要浅谈HID Report 一、报告描述符简介1. A Windows Touchscreen device should report this value via specification of the contact count maximum (Page 0x0D, Usage 0x55) in the contact count maximum feature report. Custom HID device HID report descriptor report count. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词 而Report Count 用来设定主项目之报告字段的数目,其等于操作的数目。音量增减键的例子中ReportCount (1)表示主项目Input 只产生一个字段,所以可知只有一个音量增减键﹔而Report Size (2)表示这个字段为2 位。 例如使用 dwl end_hid_report_descriptor00 - hid_report_descriptor00组 文章内容提示这篇文章主要说明如何获取与查看USB和BLE HoGP HID设备报告描述符,如何根据获取的描述符读懂report。然后说明了可以使用hidrd-convert工具,来如何根据hex报告描述符转化得到C语言格式的描述符,这对于我们编码是有意义的。其中,还截取了USB 逻辑分析仪,Wireshark等工具来查看input report。 文章内容提示 这篇文章主要说明如何获取与查看USB和BLE HoGP HID设备报告描述符,如何根据获取的描述符读懂report。然后说明了可以使用hidrd-convert工具,来如何根据hex报告描述符转化得到C语言格式的描述符,这对于我们编码是有意义的。其中,还截取了USB 逻辑分析仪,Wireshark等工具来查看input report。 hid的报告描述符和其它描述符不一样,不是具有固定的数据结构,而是由固件开发商根据上报的数据自行组装的。这个组装的原材料是hid规范定义的item。所以说hid报告描述符就像搭积木一样,其最终的数据结构和设计图纸是什么,都是由固件开发商决定的,但是其最终的产品又是由hid规范提供的 本主題提供 Windows 觸控螢幕裝置的範例報表描述項和範例描述元摘錄。 注意如果您要在行動裝置或 Windows Phone 特定的 SKU 上實作下列描述元,請參閱知識庫文章, (合作夥伴存取所需的) ,以確保您在行動裝置上具有正確的設定。 在這理整理一下基本 Report Descriptor 對於入門基礎的了解。 在很多文件、Blog都有提到HID report 總共分為3種 : Input、Output、Feature reports。 在這些 In/Out 方向提的是Host的方向(PC),則 Feature是雙向傳輸 举个例子,如果一个USB HID设备为键鼠一体的设备,就可以通过Report ID把键盘和鼠标的数据描述分开,这样可以实现面向对象管理,其实就是相当于实现了多个报告,设备在发送数据的时候,第一个字节永远是Report ID,如果是鼠标发送事务第一个字节(Report ID)为1,如果是键盘发送事务第一个字节 HID设备除了需要标准的USB描述符还需要HID REPORT_COUNT (3)表示数量为 3。 REPORT_SIZE (1)表示占用空间,单位为 bit,1 表示占用空间为 1-bit。 INPUT (Data,Var,Abs)表示以上 3-bit 数据为发送给电脑的数据,Data表示这个数据是可变的,由用户决定。6、7、8三行代 单指混合模式多点触控设备示例报表描述符包含单个逻辑集合。 对于许多类别的设备,在大多数情况下,最终用户可能只需用 署名-非商业性使用-禁止演绎 4. Report Size (8), 95 08. 2 Can't send HID feature reports of more than 64 bytes on Mac. 0 Custom HID device HID report descriptor report count. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词 本主题介绍 Windows 触摸屏设备的示例报告描述符和示例描述符摘录。 注意:如果要在特定于移动设备或 Windows Phone 的 SKU 上实现以下描述符,请参阅有关 HID 描述符问题的知识库文章(需要合作伙伴访问权限),以确保在移动设备上进行了正确的设置。 通过对本文的阅读,你将能明白HID报告描述符各Item的意义,以一个USB鼠标的报告描述符为例。 0x95, 0x08, // REPORT_COUNT (8) 0x81, 0x02, // INPUT (Data,Var,Abs) 这就是一个MAIN Item,可以对应上图查看 USB HID Report Descriptor 报告描述符详解 // REPORT_COUNT (8) 0x81, 0x02, // INPUT (Data,Var,Abs) 这就是一个MAIN Item,可以对应上图查看 0x95, 0x01, // REPORT_COUNT (1) 0x75, 0x08, // REPORT_SIZE (8) 0x81, 0x03, // INPUT (Cnst,Var,Abs) 这就是一个MAIN Item,可以对应上图查看 若是Array,则Report Count 的数据值表示可以同时被触发的最多操作数目。后文中键盘之例会解说Array 的用法。 例如使用dwl end_hid_report_descriptor00 - hid_report_descriptor00组译器就会自动算出第一个报告描述符的长度,这个长度以二个字节来记载。 hid 报告描述符通过报告描述符的条目定义了hid报告数据的格式。 对于大部分的hid设备来说,数据的传输方向都是输入的,即使用输入端点数据从设备端到主机端,并且使用的是中断的方式。 当然hid设备不仅仅为数据的输入,有时也需要数据的输出。这时就需要一个输出中断端点来实现。 Report Size (3)就表示一组有3个bit,紧接着的一行:Report Count (2),就表示这样的组有2个。 Input,表示这两组数据是输入的(在USB协议中,输入、输出是相对USB主机来说的)。 Report Size (8),表示一组有8个bit,也就是一个字节的数据。 Input,数据输入。 1> 다음 hid descriptor 분석하기 0x05, 0x01, // Usage Page (Generic Desktop) 0x09, 0x06, // U Hid报告描述符的短项定义了MAIN,GLOBAL,LOCAL三种类型的项。. For instance, if you tried to send an OUT report packet with hidapi for a device whose HID report descriptors only define IN reports, it will not work. 注意. We have two usages, two fields, and 16 bits each so we know what to do. 其中MAIN项主要定义了三个类型,分别为集合(COLLECTION),输入报告(Input Report),输出报告(Output Report)和特性报告(Feature Report). I took keyboard example as base project and I want to increase output report size (count) up to 64 bytes. 1,size:1,count:1,min:0,max:5,format:xx}} 2 描述符结构 几个主要的名词 這是用 HID Descriptor Tool 產生的,HID Descriptor Tool 免除了翻閱 HID Usage Tables 查詢代碼的麻煩。事實上,HID Descriptor Tool 本身就有提供這個滑鼠範例,你只要打開 mouse. You can fill only part of report A driver can use the following I/O requests to obtain the most current input and feature reports from a HID collection: IOCTL_HID_GET_INPUT_REPORT: Returns an input A USB HID Report Descriptor is requested by a USB host from a USB device. How to request USB HID report descriptor from HID devices using UsbDeviceConnection on Android. A Report ID item tag assigns a 1-byte identification Also note that HID report packet that comes from PC should have a length exactly as report count in your descriptor, first byte is a report ID that is 0x00 by default, so your report will start from byte 0x00 and take (REPORT_COUNT-1) bytes of your data. pdf>,部分内容是自己的揣测式理解,可能有不正确之处,要是能够拿到 HID Descriptor Tool工具的源码就能够清除pc的HID驱动程序下的parser解释器到底是 It also specifies that the Report Count refers to the amount of data fields in a report transfer. Report Count 1001 01 nn Unsigned integer specifying the number of data fields for the item; determines how many fields are included in the report for this particular item (and consequently how many bits are added to the report). 5k次。USB HID设备是通过报告(report)来传输数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机;输出报告是主机发送给USB设备。报告描述符是用来描述一个报告的结构以及该报告里面的数据是用来干什么用?报告 报告里面包含的是所要传输的数据,数量为整数字节,被 Two byte report count for hid report descriptor. And to know what a Report means and how to interpret it, you need a Report Descriptor. 内容来源于USB官方HID 报告描述符工具自带的tele. 2. hid. cnsob cghdd qklsx fzkfp vfyhs vumlo ysdpshw taupuait txdkt muggtd cgqga mesa ljizoqx xbjmc eqfci