SWRA715 December   2021 CC2642R , CC2652R

 

  1.   Trademarks
  2. 1Introduction
  3. 2Bluetooth Low Energy Introduction
  4. 3HOGP Introduction
    1. 3.1 HID Roles
    2. 3.2 HID Host
    3. 3.3 HID Device
  5. 4Project Description and Walkthrough
    1. 4.1  General Project Discussion
    2. 4.2  Report Map Discussion
    3. 4.3  Hid_input struct/union Discussion
    4. 4.4  Mouse Operation
    5. 4.5  Keyboard Operation
    6. 4.6  Consumer Report Operation
    7. 4.7  Connection Interval
    8. 4.8  Notification System
    9. 4.9  PDU Size and Number of PDUs per Connection Event
    10. 4.10 Notification Payload Discussion
      1. 4.10.1 Mouse Notification
      2. 4.10.2 Keyboard Notification
      3. 4.10.3 Consumer Report Notification
    11. 4.11 Throughput Discussion
    12. 4.12 Overall Block Diagrams
  6. 5Demo Usage
    1. 5.1 Hardware/Software Used
    2. 5.2 Mouse Demo Usage
    3. 5.3 Keyboard and Consumer Report Demo Usage
  7. 6Summary

Keyboard Operation

The project also implements HID keyboard operation. The keyboard functionality is implemented in a manner that is very similar to how the mouse functionality is implemented. The hid_input union is used to package the keyboard input. Specifically, the keyboard structure is packaged with the desired inputs. Several keypresses can be sent in a single transmission. The hiddev.h file contains all of the keyboard/keypad usage IDs. The aforementioned IDs are used to send a specific key press. The section of the report map that corresponds to the keyboard operation is shown in Figure 4-3.

GUID-20210610-CA0I-XBG9-X88L-1SJ3SGZLSKM7-low.png Figure 4-3 The Keyboard Section of the Report Map

The keyboard portion of the hid_input union be filled with several key presses, modifier keys, and a reserved field. Once the keyboard data has been packaged, the HidEmuKbd_sendKeyboardInput() function may be called to send a keyboard input transmission to the HID Host. In the demo portion of this project, keypresses are sent through the use of events that are queued up within the HidEmuKbd_keyPressHandler() function.