Demo example on FRDM-64F https://ide.mbed.com/compiler/#nav:/rzr-example-mbed;

Dependencies:   FXOS8700Q

Committer:
rzrfreefr
Date:
Wed Mar 16 14:41:31 2022 +0000
Revision:
3:807a69c34b8b
Publish

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rzrfreefr 3:807a69c34b8b 1 /// SPDX-License-Indentifier: Apache-2.0
rzrfreefr 3:807a69c34b8b 2 /// Copyright: 2020+ Philippe Coval <https://purl.org/rzr/>
rzrfreefr 3:807a69c34b8b 3 /// URL: https://os.mbed.com/users/rzrfreefr/code/rzr-example-mbed/
rzrfreefr 3:807a69c34b8b 4
rzrfreefr 3:807a69c34b8b 5 #include "Utils.h"
rzrfreefr 3:807a69c34b8b 6
rzrfreefr 3:807a69c34b8b 7 //https://github.com/ARMmbed/mbed-os/blob/c6094f7b36dc0e90a6a7271870333fbba475286c/drivers/usb/source/USBKeyboard.cpp
rzrfreefr 3:807a69c34b8b 8 #define REPORT_ID_KEYBOARD 1
rzrfreefr 3:807a69c34b8b 9
rzrfreefr 3:807a69c34b8b 10 bool Utils::keyboard_key_code(USBKeyboard& usb,
rzrfreefr 3:807a69c34b8b 11 unsigned char const key,
rzrfreefr 3:807a69c34b8b 12 unsigned char const modifier,
rzrfreefr 3:807a69c34b8b 13 unsigned int delay)
rzrfreefr 3:807a69c34b8b 14 {
rzrfreefr 3:807a69c34b8b 15 HID_REPORT report;
rzrfreefr 3:807a69c34b8b 16
rzrfreefr 3:807a69c34b8b 17 report.data[0] = REPORT_ID_KEYBOARD;
rzrfreefr 3:807a69c34b8b 18 report.data[1] = modifier;
rzrfreefr 3:807a69c34b8b 19 report.data[2] = 0;
rzrfreefr 3:807a69c34b8b 20 //report.data[3] = usb.keymap[key].usage;
rzrfreefr 3:807a69c34b8b 21 report.data[3] = key;
rzrfreefr 3:807a69c34b8b 22
rzrfreefr 3:807a69c34b8b 23 report.data[4] = 0;
rzrfreefr 3:807a69c34b8b 24 report.data[5] = 0;
rzrfreefr 3:807a69c34b8b 25 report.data[6] = 0;
rzrfreefr 3:807a69c34b8b 26 report.data[7] = 0;
rzrfreefr 3:807a69c34b8b 27 report.data[8] = 0;
rzrfreefr 3:807a69c34b8b 28
rzrfreefr 3:807a69c34b8b 29 report.length = 9;
rzrfreefr 3:807a69c34b8b 30
rzrfreefr 3:807a69c34b8b 31 if (!usb.send(&report)) {
rzrfreefr 3:807a69c34b8b 32 return false;
rzrfreefr 3:807a69c34b8b 33 }
rzrfreefr 3:807a69c34b8b 34 if (delay) {
rzrfreefr 3:807a69c34b8b 35 ThisThread::sleep_for(delay);
rzrfreefr 3:807a69c34b8b 36 }
rzrfreefr 3:807a69c34b8b 37 report.data[1] = 0;
rzrfreefr 3:807a69c34b8b 38 report.data[3] = 0;
rzrfreefr 3:807a69c34b8b 39
rzrfreefr 3:807a69c34b8b 40 if (!usb.send(&report)) {
rzrfreefr 3:807a69c34b8b 41 return false;
rzrfreefr 3:807a69c34b8b 42 }
rzrfreefr 3:807a69c34b8b 43 return true;
rzrfreefr 3:807a69c34b8b 44 }