HID报表描述符大全及实例分析
+ -

HID 报表描述符电话实例

2020-09-23 755 0

内容来源于USB官方HID报告描述符工具自带的tele.hid

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
    REPORT_SIZE (3)                         75 03 
    LOGICAL_MINIMUM (1)                     15 01 
    LOGICAL_MAXIMUM (6)                     25 06 
    INPUT (Data,Ary,Abs)                    81 00 
  END_COLLECTION                            C0
  USAGE_PAGE (Telephony Devices)            05 0B
  USAGE (Telephony Key Pad)                 09 06
  COLLECTION (Logical)                      A1 02 
    USAGE_PAGE (Button)                     05 09
    USAGE_MINIMUM (Button 1)                19 01
    USAGE_MAXIMUM (Button 12)               29 0C
    LOGICAL_MAXIMUM (12)                    25 0C 
    REPORT_SIZE (4)                         75 04 
    INPUT (Data,Ary,Abs)                    81 00 
  END_COLLECTION                            C0
  USAGE_PAGE (Telephony Devices)            05 0B
  USAGE (Hook Switch)                       09 20
  USAGE (Alternate Function)                09 29
  USAGE (Conference)                        09 2C
  USAGE (Transfer)                          09 25
  USAGE (Drop)                              09 26
  USAGE (Hold)                              09 23
  USAGE (Speaker Phone)                     09 2B
  LOGICAL_MAXIMUM (7)                       25 07 
  REPORT_SIZE (3)                           75 03 
  INPUT (Data,Ary,Abs)                      81 00 
  USAGE_PAGE (Consumer Devices)             05 0C
  USAGE (Volume)                            09 E0
  LOGICAL_MINIMUM (-1)                      15 FF 
  LOGICAL_MAXIMUM (1)                       25 01 
  REPORT_SIZE (2)                           75 02 
  INPUT (Data,Var,Abs)                      81 02 
  REPORT_SIZE (4)                           75 04 
  INPUT (Cnst,Var,Abs)                      81 03 
  LOGICAL_MINIMUM (0)                       15 00 
  LOGICAL_MAXIMUM (1)                       25 01 
  USAGE_PAGE (LEDs)                         05 08
  USAGE (Usage Selected Indicator)          09 3A
  COLLECTION (Logical)                      A1 02 
    USAGE_PAGE (Telephony Devices)          05 0B
    USAGE (Programmable Button)             09 07
    COLLECTION (Logical)                    A1 02 
      USAGE_PAGE (Button)                   05 09
      USAGE_MINIMUM (Button 1)              19 01
      USAGE_MAXIMUM (Button 2)              29 02
      REPORT_COUNT (2)                      95 02 
      OUTPUT (Data,Var,Abs)                 91 02 
    END_COLLECTION                          C0
  END_COLLECTION                            C0
  USAGE_PAGE (LEDs)                         05 08
  USAGE (Usage In Use Indicator)            09 3B
  COLLECTION (Logical)                      A1 02 
    USAGE_PAGE (Telephony Devices)          05 0B
    USAGE (Programmable Button)             09 07
    COLLECTION (Logical)                    A1 02 
      USAGE_PAGE (Button)                   05 09
      USAGE_MINIMUM (Undefined)             19 01
      USAGE_MAXIMUM (Undefined)             29 06
      REPORT_COUNT (6)                      95 06 
      OUTPUT (Data,Var,Abs)                 91 02 
    END_COLLECTION                          C0
    USAGE_PAGE (Telephony Devices)          05 0B
    USAGE (Alternate Function)              09 29
    REPORT_COUNT (1)                        95 01 
    OUTPUT (Data,Var,Abs)                   91 02 
  END_COLLECTION                            C0
  USAGE_PAGE (LEDs)                         05 08
  USAGE (Usage Multi Mode Indicator)        09 3C
  COLLECTION (Logical)                      A1 02 
    USAGE_PAGE (Telephony Devices)          05 0B
    USAGE (Message)                         09 73
    COLLECTION (Logical)                    A1 02 
      USAGE_PAGE (LEDs)                     05 08
      USAGE (Indicator On)                  09 3D
      USAGE (Indicator Fast Blink)          09 40
      USAGE (Indicator Off)                 09 41
      REPORT_SIZE (2)                       75 02 
      OUTPUT (Data,Ary,Abs)                 91 00 
    END_COLLECTION                          C0
  END_COLLECTION                            C0
  REPORT_SIZE (5)                           75 05 
  INPUT (Cnst,Var,Abs)                      81 03 
END_COLLECTION                              C0

转成数组内容如下:


char ReportDescriptor[175] = {
    0x95, 0x01,                    // REPORT_COUNT (1)
    0x05, 0x0b,                    // USAGE_PAGE (Telephony Devices)
    0x09, 0x01,                    // USAGE (Phone)
    0xa1, 0x01,                    // COLLECTION (Application)
    0x09, 0x07,                    //   USAGE (Programmable Button)
    0xa1, 0x02,                    //   COLLECTION (Logical)
    0x05, 0x09,                    //     USAGE_PAGE (Button)
    0x19, 0x01,                    //     USAGE_MINIMUM (Button 1)
    0x29, 0x06,                    //     USAGE_MAXIMUM (Button 6)
    0x75, 0x03,                    //     REPORT_SIZE (3)
    0x15, 0x01,                    //     LOGICAL_MINIMUM (1)
    0x25, 0x06,                    //     LOGICAL_MAXIMUM (6)
    0x81, 0x00,                    //     INPUT (Data,Ary,Abs)
    0xc0,                          //   END_COLLECTION
    0x05, 0x0b,                    //   USAGE_PAGE (Telephony Devices)
    0x09, 0x06,                    //   USAGE (Telephony Key Pad)
    0xa1, 0x02,                    //   COLLECTION (Logical)
    0x05, 0x09,                    //     USAGE_PAGE (Button)
    0x19, 0x01,                    //     USAGE_MINIMUM (Button 1)
    0x29, 0x0c,                    //     USAGE_MAXIMUM (Button 12)
    0x25, 0x0c,                    //     LOGICAL_MAXIMUM (12)
    0x75, 0x04,                    //     REPORT_SIZE (4)
    0x81, 0x00,                    //     INPUT (Data,Ary,Abs)
    0xc0,                          //   END_COLLECTION
    0x05, 0x0b,                    //   USAGE_PAGE (Telephony Devices)
    0x09, 0x20,                    //   USAGE (Hook Switch)
    0x09, 0x29,                    //   USAGE (Alternate Function)
    0x09, 0x2c,                    //   USAGE (Conference)
    0x09, 0x25,                    //   USAGE (Transfer)
    0x09, 0x26,                    //   USAGE (Drop)
    0x09, 0x23,                    //   USAGE (Hold)
    0x09, 0x2b,                    //   USAGE (Speaker Phone)
    0x25, 0x07,                    //   LOGICAL_MAXIMUM (7)
    0x75, 0x03,                    //   REPORT_SIZE (3)
    0x81, 0x00,                    //   INPUT (Data,Ary,Abs)
    0x05, 0x0c,                    //   USAGE_PAGE (Consumer Devices)
    0x09, 0xe0,                    //   USAGE (Volume)
    0x15, 0xff,                    //   LOGICAL_MINIMUM (-1)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x75, 0x02,                    //   REPORT_SIZE (2)
    0x81, 0x02,                    //   INPUT (Data,Var,Abs)
    0x75, 0x04,                    //   REPORT_SIZE (4)
    0x81, 0x03,                    //   INPUT (Cnst,Var,Abs)
    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
    0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
    0x05, 0x08,                    //   USAGE_PAGE (LEDs)
    0x09, 0x3a,                    //   USAGE (Usage Selected Indicator)
    0xa1, 0x02,                    //   COLLECTION (Logical)
    0x05, 0x0b,                    //     USAGE_PAGE (Telephony Devices)
    0x09, 0x07,                    //     USAGE (Programmable Button)
    0xa1, 0x02,                    //     COLLECTION (Logical)
    0x05, 0x09,                    //       USAGE_PAGE (Button)
    0x19, 0x01,                    //       USAGE_MINIMUM (Button 1)
    0x29, 0x02,                    //       USAGE_MAXIMUM (Button 2)
    0x95, 0x02,                    //       REPORT_COUNT (2)
    0x91, 0x02,                    //       OUTPUT (Data,Var,Abs)
    0xc0,                          //     END_COLLECTION
    0xc0,                          //   END_COLLECTION
    0x05, 0x08,                    //   USAGE_PAGE (LEDs)
    0x09, 0x3b,                    //   USAGE (Usage In Use Indicator)
    0xa1, 0x02,                    //   COLLECTION (Logical)
    0x05, 0x0b,                    //     USAGE_PAGE (Telephony Devices)
    0x09, 0x07,                    //     USAGE (Programmable Button)
    0xa1, 0x02,                    //     COLLECTION (Logical)
    0x05, 0x09,                    //       USAGE_PAGE (Button)
    0x19, 0x01,                    //       USAGE_MINIMUM (Undefined)
    0x29, 0x06,                    //       USAGE_MAXIMUM (Undefined)
    0x95, 0x06,                    //       REPORT_COUNT (6)
    0x91, 0x02,                    //       OUTPUT (Data,Var,Abs)
    0xc0,                          //     END_COLLECTION
    0x05, 0x0b,                    //     USAGE_PAGE (Telephony Devices)
    0x09, 0x29,                    //     USAGE (Alternate Function)
    0x95, 0x01,                    //     REPORT_COUNT (1)
    0x91, 0x02,                    //     OUTPUT (Data,Var,Abs)
    0xc0,                          //   END_COLLECTION
    0x05, 0x08,                    //   USAGE_PAGE (LEDs)
    0x09, 0x3c,                    //   USAGE (Usage Multi Mode Indicator)
    0xa1, 0x02,                    //   COLLECTION (Logical)
    0x05, 0x0b,                    //     USAGE_PAGE (Telephony Devices)
    0x09, 0x73,                    //     USAGE (Message)
    0xa1, 0x02,                    //     COLLECTION (Logical)
    0x05, 0x08,                    //       USAGE_PAGE (LEDs)
    0x09, 0x3d,                    //       USAGE (Indicator On)
    0x09, 0x40,                    //       USAGE (Indicator Fast Blink)
    0x09, 0x41,                    //       USAGE (Indicator Off)
    0x75, 0x02,                    //       REPORT_SIZE (2)
    0x91, 0x00,                    //       OUTPUT (Data,Ary,Abs)
    0xc0,                          //     END_COLLECTION
    0xc0,                          //   END_COLLECTION
    0x75, 0x05,                    //   REPORT_SIZE (5)
    0x81, 0x03,                    //   INPUT (Cnst,Var,Abs)
    0xc0                           // END_COLLECTION
};
HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

HID 触摸屏的报表描述符
讲道理,这个触摸屏的报告描述符是我从网上搜索的一段代码,这个触摸屏的报告内容本人也进行了测试。测试是通过本站编写的虚拟触摸屏驱动实现的。0x05, 0x0d, // USAGE_PAGE (Digitizers) 0 0x......
HID 报表描述符数字显示实例
USAGE_PAGE (Alphnumeric Display) 05 14USAGE (Alphanumeric Display) 09 01LOGICAL_MINIMUM (0) 15 00 CO......
HID 报表描述符远程控制实例
USAGE_PAGE (Consumer Devices) 05 0CUSAGE (Consumer Control) 09 01COLLECTION (Application) A1 01 ......
USB键盘报告描述符数据格式分析
USB键盘的HID报表描述符的内容参见下表。数据的输入端点为中断方式,当有键盘敲击事件时,会上报数据长度为8字节的数据报告。0x05,0x01,// Global Generic Desktop0x09,0x06,// Local KeyBoard 0xA1,0x01,// Main app col......
HID 报表描述符键盘实例
通过下面的报告描述符的定义,我们根据上面的注释可知,包含一个中断输入报表描述符和一个中断输出报告描述符。其中断输入报告描述符用于USB HID键盘中断输入端点,输出报表描述符用于USB HID键盘中断输出端点。USB HID键盘的中断输入报告对于中断输入端点,数据格式定义如下:BYTE0:该字......
HID 报表描述符游戏手柄
LOGICAL_MINIMUM (0) 15 00 USAGE_PAGE (Generic Desktop) 05 01USAGE (Joystick) 09 04......
USB鼠标HID报告描述符数据格式分析
注意:这里的鼠标为普通鼠标报告描述符的信息解释,其并不适用于全鼠标报表描述符。一个示例如下:0x05,0x01, // Global Generic Desktop0x09,0x02, // Local Mouse0xa1,0x01, // Main app collection0x09,......
HID 报表描述符数字仪
USAGE_PAGE (Digitizers) 05 0DUSAGE (Digitizer) 09 01COLLECTION (Application) A1 01 ......
HID 报表描述符操纵杆实例
USAGE_PAGE (Generic Desktop) 05 01LOGICAL_MINIMUM (0) 15 00 USAGE (Joystick) 09 04CO......
HID 报表描述符开关电源实例
USAGE_PAGE (Power Device) 05 84USAGE (UPS) 09 04COLLECTION (Application) A1 01 ......
HID 报表描述符监视器实例
USAGE_PAGE (Monitor) 05 80USAGE (Monitor Control) 09 01COLLECTION (Application) A1 01 ......
HID 报表描述符/报告描述符
报表描述符用于描述USB HID设备与主机之间数据交互的格式。根据数据的传输方向,分为输入报告和输出报告。输入报告是USB设备发送数据给主机的。大部分的USB HID设备主要实现的是输入报告。如我们平常使用的USB鼠标,就是通过我们点击鼠标按键或滑动鼠标流轮实现给主机上报鼠标的报告信息。输出报告......
HID 报表描述符电话实例
内容来源于USB官方HID报告描述符工具自带的tele.hidREPORT_COUNT (1) 95 01 USAGE_PAGE (Telephony Devices) 05 0BUSAGE (Phone) ......
USB键盘与HID报表描述符关系
报告描述符确实非常复杂,要看懂协议真得比较难(因为只有英文的),我见到的国内教材也没有对这部分写得很详细的,有的也只是部分内容的翻译而已。一般建议用示例报告描述符修改一下就可以了,《Hid Usage Table》里给出了一些常见应用的报告描述符。对于键盘类应用,通常用已有的示例已经够用了。“如果是......
HID 报表描述符鼠标实例
USAGE_PAGE (Generic Desktop) 05 01USAGE (Mouse) 09 02COLLECTION (Application) A1 01 ......
关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!