http://www.usblyzer.com/usb-human-interface-device-hid-class-decoder.htm

  Human Interface Device (HID) Class Decoder

Human Interface Device (HID) class is one of the most frequently used USB classes. The HID class consists primarily of devices that are used by humans to control the operation of computer systems. Examples of HID class devices include keyboards, pointing devices (such as mouse devices, joysticks and trackballs), control devices (such as steering wheels, throttles, rudder pedals, and data gloves), the devices that humans use to enter data directly into a computer (such as telephones, VCR remote controls, games and simulation devices), and other devices that may not require direct human interaction but provide data in a similar to HID class devices format (such as bar code readers, voltmeters, and thermometers).

The HID device class specification defines the configuration and communication protocols for human interface devices. USBlyzer includes fully comprehensive USB HID class decoder that helps you easily visualize various HID class specific requests. HID Descriptor, HID Report Descriptor and HID Reports are also decoded.

HID Class-Specific Protocols

All HID Class, SubClass and Protocols below are supported:

Class SubClass Protocol
03h - HID 00h - None
01h - Boot Interface
00h - None
01h - Keyboard
02h - Mouse

HID Class-Specific Descriptors

HID class devices use class-specific descriptors which are differ
from standard USB descriptors. USBlyzer decodes and displays the
following HID class-specific descriptors:

  • HID Descriptor

    A HID Descriptor
    specifies the number, type, and size of HID Report Descriptors and
    Physical Descriptors that are associated with a HID class device.

  • HID Report Descriptor

    The format of the data a
    HID class device can send or receive is not defined by the HID class
    specification. Instead, a HID device is required to provide HID Report
    Descriptor which enumerates all the data fields of a particular HID
    report the device can use. For each field in the HID report, the HID
    Report Descriptor defines how many bits the particular data item
    occupies, which usage it has, what range of values it uses, etc.

Below is an example of decoding Mouse HID Report Descriptor.

HID Class-Specific Requests

HID class-specific requests allow the host to inquire about the
capabilities and state of a HID compliant device and to set the state of
output and feature items.

All HID class-specific requests below are supported:

  • Get Report (GET_REPORT)

  • Set Report (SET_REPORT)

  • Get Idle (GET_IDLE)

  • Set Idle (SET_IDLE)

  • Get Protocol (GET_PROTOCOL)

  • Set Protocol (SET_PROTOCOL)

For complete description of USB HID class requests, refer to Device Class Definition for Human Interface Devices Specification.

Below are examples of decoding Get Descriptor (HID Report Descriptor) and Set Idle requests.

   

HID Reports

The basic communication mechanism for HID class devices is a HID Reports
that is used to transfer HID control data. HID Report Descriptor
defines the format of each report. Input and Output Reports specify
control data and Feature Reports specify configuration data. A device
may support more than one report type and more than one report of the
same type.

USBlyzer extracts the individual items from the HID Report based on
the HID Report Descriptor and displays them in an easy to view form.
Since USBlyzer uses its own HID Parser it's possible to decode HID
Reports at any time, even after the device has been unplugged or even if
you analize previously saved capture file.

Below is an example of Joystick HID Input Report analysis.

HID Usage Pages

HID usages are organized into usage pages of related controls. The
usage page and usage ID define a unique constant that describes a
particular type of control. The following table lists the currently
supported usage pages.

Page ID Page Name
01h Generic Desktop Controls
02h Simulation Controls
03h VR Controls
04h Sport Controls
05h Game Controls
06h Generic Device Controls
07h Keyboard/Keypad
08h LEDs
09h Button
0Ah Ordinal
0Bh Telephony Devices
0Ch Consumer Devices
0Dh Digitizer
0Fh Physical Input Device (PID)
10h Unicode
14h Alphanumeric Display
40h Medical Instruments
80h Monitor Devices
81h Monitor Enumerated Values
82h VESA Virtual Controls
83h VESA Command
84h Power Device
85h Battery System

Composite USB Device with Single or Multiple HID Class Interfaces

A composite USB device exposes multiple functions to a host by using
multiple interfaces which are separately managed by different drivers.
Each interface of a composite device is, in many respects, like a
separate device that has its own configuration descriptor and, in the
case of HID class interface(s), HID report descriptor(s). The default
control endpoint is shared by all the interfaces while separate HID
class interfaces require non-shareable interrupt endpoint(s).

USBlyzer provides support for USB composite devices with single or multiple HID interfaces.

Human Interface Device (HID) Class Decoder的更多相关文章

  1. 【转】簡單講講 USB Human Interface Device

    原地址http://213style.blogspot.com/2013/09/usb-human-interface-device.html 恩,發本文的原因是看到了以前畢業的朋友在旁邊的對話框問了 ...

  2. Start Developing Mac Apps -- Human Interface Design 用户界面设计

    Human Interface Design It’s not enough to create an app that works. Users expect Mac apps to be powe ...

  3. 【译】iOS人性化界面指南(iOS Human Interface Guidelines)(一)

    1. 引言1.1 译者自述 我是一个表达能力一般的开发员,不管是书面表达,还是语言表达.在很早以前其实就有通过写博客锻炼这方面能力的想法,但水平有限实在没有什么拿得出手的东西分享.自2015年7月以来 ...

  4. 怎么看iOS human interface guidelines中的user control原则

    最近离开了老东家,整理整理思路,因为一直做的是微信公众号相关的产品对app的东西有一段时间没有做过了,所以又看了一遍iOS human interface guidelines,看到user cont ...

  5. iOS 人机交互指导方针(iOS Human Interface Guidelines)

    iOS 人机交互指导方针(iOS Human Interface Guidelines) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名 ...

  6. iOS之《 Human Interface Guidelines:from Concept to Product 》<界面设计指南 二>:从概念到产品的实现

    开发之前需要想到的: 1.列出所有用户可能喜欢的功能. 例子:食谱 (1)创建一个总的食谱菜单 (2)食谱的获取方法  (3)比较价格 (4)当地的食材店 (5)食谱每道菜的注释 (6)能够获取和使用 ...

  7. 《iOS Human Interface Guidelines》——Multitasking

    多任务处理 多任务处理让人们在屏幕上(以及合适的iPad模式)查看多个app,而且在近期使用的app中高速地切换. 在iOS 9中.人们能够使用多任务处理UI(例如以下所看到的)来选择一个近期使用的a ...

  8. 《iOS Human Interface Guidelines》——Search Bar

    搜索栏 搜索栏接收用户输入用于搜索的文本(例如以下,带有占位文本). API NOTE 查看UISearchBar学习怎样在你的代码中定义搜索栏.查看UISearchDisplayController ...

  9. 《iOS Human Interface Guidelines》——Popover

    弹出框 弹出框是当人们点击一个控件或屏幕上一个区域时显示的一个暂时的界面. API NOTE 在iOS 8及以后的系统中.你能够使用UIPopoverPresentationController来显示 ...

随机推荐

  1. 【NIO】之IO和NIO的区别

    在Java1.4之前的版本,Java对I/O的支持并不完善,开发人员在开发高性能I/O程序的时候,会面临以下几个问题: 1.没有数据缓存区,I/O性能存在问题 2.没有C/C++通道的概念,输入和输出 ...

  2. PAT 乙级 1054 求平均值 (20) C++版

    1054. 求平均值 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题的基本要求非常简单:给定N个实 ...

  3. flume http source示例讲解

    一.介绍 flume自带的Http Source可以通过Http Post接收事件. 场景:对于有些应用程序环境,它可能不能部署Flume SDK及其依赖项,或客户端代码倾向于通过HTTP而不是Flu ...

  4. C# int.ToString()

    C# int.ToString() 格式化数值:有时,我们可能需要将数值以一定的格式来呈现,就需要对数值进行格式化.我们使用格式字符串指定格式.格式字符串采用以下形式:Axx,其中 A 为格式说明符, ...

  5. 廖雪峰Java5集合-1Java集合简介-1Java结合简介

    1.集合 定义:集合就是一堆东西.集合里的东西,称为元素Element 数学中的集合: 有限集合: * 一个班所有的学生组成的集合 * 一个网站所有的商品组成的集合 无限集合: * 全体自然数集合 * ...

  6. Python pip源处理

    pypi 镜像使用帮助 pypi 镜像每 5 分钟同步一次. 临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-pac ...

  7. 安装部署Jenkins服务

    1.导入安装包 2.安装安装包 (1).安装JDK和maven 创建jdk存储目录 # mkdir /usr/jdk64/ 解压jdk到存储目录 # tar -zxvf jdk-8u191-linux ...

  8. UE4如何检测目标在锥形视野内

    转自:http://blog.csdn.net/l346242498/article/details/70237083 做UE4游戏AI方面经常会遇到一个问题,就是何如判定目标在AI单位的视野范围内, ...

  9. 微信小程序支付签名老是失败,在官网的校验签名工具校验成功,老是返回签名失败

    在网上也百度了各种签名不正确的解决方法,都没有问题,但签名就是不成功,实在找不出问题了,我就重置了一下api秘钥,结果成功了…… 不知道什么原因第一次填写的api秘钥也是我重置的,填写的也没有问题,但 ...

  10. 基于Linux命令行KVM虚拟机的安装配置与基本使用

    背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使 ...