
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
main.cpp@0:f4e0c6f139ea, 2017-11-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |