Sends infinity hotkey combinations (Current: LCTRL + RALT + NUM) Cycles numbers 0 to 9 with gaps of 10 seconds.

Dependencies:   mbed C12832 USBDevice

Dependents:   mbed_alif4000_hotkeys_3chan_001

Committer:
shivikas
Date:
Wed Nov 15 17:07:42 2017 +0000
Revision:
0:f4e0c6f139ea
Child:
1:0e50909db8ee
program to emulate keyboard, to send hot-keys combination for Infinity Channel switching test.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shivikas 0:f4e0c6f139ea 1 /****************************************************************************
shivikas 0:f4e0c6f139ea 2 - Following program is to emulate Inifinity channel switching.
shivikas 0:f4e0c6f139ea 3 - embeds are used to send hotkey combination to switch channel.
shivikas 0:f4e0c6f139ea 4 - CTRL+SHIFT+[1-4] is used to switch among four channels.
shivikas 0:f4e0c6f139ea 5 - LCD screen on mbed application board is used to show switch status and count.
shivikas 0:f4e0c6f139ea 6
shivikas 0:f4e0c6f139ea 7 ****************************************************************************/
shivikas 0:f4e0c6f139ea 8
shivikas 0:f4e0c6f139ea 9
shivikas 0:f4e0c6f139ea 10 #include "mbed.h"
shivikas 0:f4e0c6f139ea 11 #include "C12832.h"
shivikas 0:f4e0c6f139ea 12 #include "USBKeyboard.h"
shivikas 0:f4e0c6f139ea 13
shivikas 0:f4e0c6f139ea 14
shivikas 0:f4e0c6f139ea 15 // To change LED colour at channel switching
shivikas 0:f4e0c6f139ea 16 BusOut leds(p23, p24, p25);
shivikas 0:f4e0c6f139ea 17 BusOut myleds(LED1, LED2, LED3, LED4);
shivikas 0:f4e0c6f139ea 18
shivikas 0:f4e0c6f139ea 19 // keyboard interface to emulate keyboard and send keys with modifiers
shivikas 0:f4e0c6f139ea 20 USBKeyboard keyboard;
shivikas 0:f4e0c6f139ea 21
shivikas 0:f4e0c6f139ea 22 // LCD interface on appication board
shivikas 0:f4e0c6f139ea 23 C12832 lcd(p5, p7, p6, p8, p11);
shivikas 0:f4e0c6f139ea 24
shivikas 0:f4e0c6f139ea 25 const float speed = 5;
shivikas 0:f4e0c6f139ea 26 const int hotkeys = KEY_CTRL | KEY_SHIFT;
shivikas 0:f4e0c6f139ea 27
shivikas 0:f4e0c6f139ea 28 void lcd_print(int key, int count, float speed) {
shivikas 0:f4e0c6f139ea 29 lcd.cls();
shivikas 0:f4e0c6f139ea 30 lcd.locate(0,0);
shivikas 0:f4e0c6f139ea 31 lcd.printf("Sending CTRL+SHIFT+%c \nCount: %d\nSpeed: %4.2f\n", key, count, speed);
shivikas 0:f4e0c6f139ea 32 }
shivikas 0:f4e0c6f139ea 33
shivikas 0:f4e0c6f139ea 34 // Start programm
shivikas 0:f4e0c6f139ea 35 int main(void) {
shivikas 0:f4e0c6f139ea 36 int key_base;
shivikas 0:f4e0c6f139ea 37 int count = 1;
shivikas 0:f4e0c6f139ea 38 char key_modifier;
shivikas 0:f4e0c6f139ea 39
shivikas 0:f4e0c6f139ea 40 //Disconnect any existing connections
shivikas 0:f4e0c6f139ea 41 lcd.cls();
shivikas 0:f4e0c6f139ea 42 lcd.locate(0,0);
shivikas 0:f4e0c6f139ea 43 lcd.printf("Starting Up..\nAllowing USB to settle\n>>Please Wait<< ");
shivikas 0:f4e0c6f139ea 44 wait(10);
shivikas 0:f4e0c6f139ea 45
shivikas 0:f4e0c6f139ea 46 while(1) {
shivikas 0:f4e0c6f139ea 47 key_base = 1;
shivikas 0:f4e0c6f139ea 48 while(key_base <= 4) {
shivikas 0:f4e0c6f139ea 49 lcd.cls();
shivikas 0:f4e0c6f139ea 50 leds = ~key_base;
shivikas 0:f4e0c6f139ea 51 myleds = key_base;
shivikas 0:f4e0c6f139ea 52 key_modifier = '0'+key_base;
shivikas 0:f4e0c6f139ea 53 keyboard.keyCode(key_modifier, hotkeys);
shivikas 0:f4e0c6f139ea 54 lcd_print(key_modifier, count, speed);
shivikas 0:f4e0c6f139ea 55 wait(speed);
shivikas 0:f4e0c6f139ea 56 key_base++;
shivikas 0:f4e0c6f139ea 57 count++;
shivikas 0:f4e0c6f139ea 58 }
shivikas 0:f4e0c6f139ea 59 }
shivikas 0:f4e0c6f139ea 60 }