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

Dependencies:   FXOS8700Q

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Utils.cpp Source File

Utils.cpp

00001 /// SPDX-License-Indentifier: Apache-2.0
00002 /// Copyright: 2020+ Philippe Coval <https://purl.org/rzr/>
00003 /// URL: https://os.mbed.com/users/rzrfreefr/code/rzr-example-mbed/
00004 
00005 #include "Utils.h"
00006 
00007 //https://github.com/ARMmbed/mbed-os/blob/c6094f7b36dc0e90a6a7271870333fbba475286c/drivers/usb/source/USBKeyboard.cpp
00008 #define REPORT_ID_KEYBOARD 1
00009 
00010 bool Utils::keyboard_key_code(USBKeyboard& usb,
00011                               unsigned char const key,
00012                               unsigned char const modifier,
00013                               unsigned int delay)
00014 {
00015     HID_REPORT report;
00016 
00017     report.data[0] = REPORT_ID_KEYBOARD;
00018     report.data[1] = modifier;
00019     report.data[2] = 0;
00020     //report.data[3] = usb.keymap[key].usage;
00021     report.data[3] = key;
00022 
00023     report.data[4] = 0;
00024     report.data[5] = 0;
00025     report.data[6] = 0;
00026     report.data[7] = 0;
00027     report.data[8] = 0;
00028 
00029     report.length = 9;
00030 
00031     if (!usb.send(&report)) {
00032         return false;
00033     }
00034     if (delay) { 
00035       ThisThread::sleep_for(delay);
00036     }
00037     report.data[1] = 0;
00038     report.data[3] = 0;
00039 
00040     if (!usb.send(&report)) {
00041         return false;
00042     }
00043     return true;
00044 }