Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Human interface device
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Report Descriptor === The Report Descriptor exposes the messages that are generated or accepted by a HID device. Each message is referred to as a 'Report'. Reports can define bits/controls in a device that can be read or written, or generated periodically to keep a host updated on the current status of the device. For instance, a mouse typically generates a Report 200 times a second to inform the host of any movement or button presses. Report Descriptors are 'bit orientated', meaning that controls can present between 1 and 32 bits of information. Each control defined in a Report Descriptor has an ID and defines its size and position in its Report. A Report Descriptor can define many Reports, each reporting a different set, or combination of information. For example, a basic mouse defines a 3 byte Report where the least significant (0) bit of the report is the left button, the next (1) bit is the middle button, and the third (2) bit is the right button. To allow the mouse 8-bit X and Y position coordinates to conveniently land on byte boundaries, a 5-bit 'pad' is defined. Then the X coordinate is defined as an 8-bit relative value (i.e., number of 'mickeys' since the previous report) that resides in bit positions 8 through 15, and the Y coordinate is defined as an 8-bit relative value that resides in bit positions 16 through 24, resulting in a data packet that is presented to the host. A Report Descriptor is extremely versatile, allowing a device to specify the resolution, range, and many other characteristics of each control that it presents. Being designed at a time when a mouse or keyboard controller was lucky to have 1KB of ROM for all its code and data, the Report Descriptor syntax has many features that allow its size to be minimized e.g., selected control parameters can persist across control multiple definitions, only needing to be redeclared if their value changes. The reports generated by a basic mouse can be described in 50 bytes, and a 104 keyboard in 65 bytes.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)