Keyboard Report Format
Size: 9 bytes, fixed-length.
Structure: REPORT ID (1) MODIFIER (1) RESERVED (1) KEYCODES (6)
Values in parentheses indicate the size, in bytes, of the field.
Important: The host application does not need to understand and process Keyboard Reports. This task belongs to the host operating system. Keycodes are passed to the host application as if a user were typing keyboard text. The host application must be the active application in order to receive keystrokes.
Keyboard Reports protocol requires that two reports be sent for every keystroke. The first report indicates which key is pressed. The second report indicates "no key pressed", with all keycodes NUL (0x00) to indicate that all keys have been released. In the case of the MINI Hawk, each byte output is equivalent to a keystroke, with a "key pressed" report and a "no key pressed" report. For this reason, data rates are much slower when using Keyboard Reports.