Hotkeys for RTL investigation

Dependencies:   C12832 USBDevice mbed

Dependents:   mbed_hotkeys_rtlx7 mbed_hotkeys_rtlX6

Committer:
rowlybot12000
Date:
Thu May 10 08:45:43 2018 +0000
Revision:
2:f5bc849199f3
Parent:
1:e0fb48c0f15b
Child:
3:e0e10ef13f02
Child:
4:206dc00e56b2
Changing to include a variance in the time period between switching.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gmilway 0:fcb5eced08ed 1 /*==============================================================================
gmilway 0:fcb5eced08ed 2 * Hotkey channel switcher *
gmilway 0:fcb5eced08ed 3 * Sends hotkeys to switch channels on Infinity-like systems, then types *
gmilway 0:fcb5eced08ed 4 *
gmilway 0:fcb5eced08ed 5 ==============================================================================*/
gmilway 0:fcb5eced08ed 6
gmilway 0:fcb5eced08ed 7
gmilway 0:fcb5eced08ed 8 #include "mbed.h"
gmilway 0:fcb5eced08ed 9 #include "C12832.h"
gmilway 0:fcb5eced08ed 10 #include "USBKeyboard.h"
rowlybot12000 1:e0fb48c0f15b 11 #include <string>
gmilway 0:fcb5eced08ed 12
gmilway 0:fcb5eced08ed 13
gmilway 0:fcb5eced08ed 14 BusOut leds(p23, p24, p25);
gmilway 0:fcb5eced08ed 15 C12832 lcd(p5, p7, p6, p8, p11);
gmilway 0:fcb5eced08ed 16 USBKeyboard keyboard;
gmilway 0:fcb5eced08ed 17
gmilway 0:fcb5eced08ed 18 const float delay = 0.1;
gmilway 0:fcb5eced08ed 19 int count = 1;
rowlybot12000 1:e0fb48c0f15b 20
rowlybot12000 1:e0fb48c0f15b 21 const int ccs_hotkeys = KEY_CTRL | KEY_ALT;
rowlybot12000 1:e0fb48c0f15b 22 int ccs_base = 1;
rowlybot12000 1:e0fb48c0f15b 23 const int ccs_end = 8;
rowlybot12000 1:e0fb48c0f15b 24 char ccs_mod;
rowlybot12000 1:e0fb48c0f15b 25
rowlybot12000 1:e0fb48c0f15b 26 const int alif_hotkeys = KEY_CTRL | KEY_SHIFT;
rowlybot12000 1:e0fb48c0f15b 27 int alif_base = 1;
rowlybot12000 1:e0fb48c0f15b 28 const int alif_end = 4;
rowlybot12000 1:e0fb48c0f15b 29 char alif_mod;
rowlybot12000 1:e0fb48c0f15b 30
gmilway 0:fcb5eced08ed 31 const float speed = 5;
rowlybot12000 1:e0fb48c0f15b 32
rowlybot12000 1:e0fb48c0f15b 33 string info;
gmilway 0:fcb5eced08ed 34
gmilway 0:fcb5eced08ed 35 static void sendKey(char c, int modifiers, float delay)
gmilway 0:fcb5eced08ed 36 {
gmilway 0:fcb5eced08ed 37 keyboard.keyCode(c, modifiers);
gmilway 0:fcb5eced08ed 38 wait(delay);
gmilway 0:fcb5eced08ed 39 }
gmilway 0:fcb5eced08ed 40
gmilway 0:fcb5eced08ed 41 //Display general status information
rowlybot12000 1:e0fb48c0f15b 42 void printData(string info, int key2) {
gmilway 0:fcb5eced08ed 43 lcd.cls();
gmilway 0:fcb5eced08ed 44 lcd.locate(0,0);
rowlybot12000 1:e0fb48c0f15b 45 lcd.printf("Sending %s+%c \n", info.c_str(), key2);
gmilway 0:fcb5eced08ed 46 }
gmilway 0:fcb5eced08ed 47
gmilway 0:fcb5eced08ed 48 int main(void)
gmilway 0:fcb5eced08ed 49 {
gmilway 0:fcb5eced08ed 50
gmilway 0:fcb5eced08ed 51 lcd.cls();
gmilway 0:fcb5eced08ed 52 lcd.locate(0,0);
gmilway 0:fcb5eced08ed 53 lcd.printf("Starting Up,\nAllowing USB to settle\n>>Please Wait<< ");
rowlybot12000 2:f5bc849199f3 54 wait(10);
rowlybot12000 2:f5bc849199f3 55 srand(time(NULL));
rowlybot12000 2:f5bc849199f3 56 int counter = 0;
gmilway 0:fcb5eced08ed 57
gmilway 0:fcb5eced08ed 58 while (1) {
gmilway 0:fcb5eced08ed 59
rowlybot12000 1:e0fb48c0f15b 60 ccs_base = 1;
rowlybot12000 1:e0fb48c0f15b 61
rowlybot12000 1:e0fb48c0f15b 62 while (ccs_base<=ccs_end) {
rowlybot12000 2:f5bc849199f3 63 int mod = 0;
rowlybot12000 2:f5bc849199f3 64 counter++;
rowlybot12000 2:f5bc849199f3 65 if (counter <= 1000) {
rowlybot12000 2:f5bc849199f3 66 mod = rand() % (5 + 1 - 0) + 0;
rowlybot12000 2:f5bc849199f3 67 }
gmilway 0:fcb5eced08ed 68 //setup and open next connection
rowlybot12000 1:e0fb48c0f15b 69 ccs_mod = '0'+ccs_base;
rowlybot12000 1:e0fb48c0f15b 70 leds = ~ccs_base;
rowlybot12000 1:e0fb48c0f15b 71 sendKey(ccs_mod, ccs_hotkeys, delay);
rowlybot12000 1:e0fb48c0f15b 72 printData("Ctrl+Alt", ccs_mod);
rowlybot12000 2:f5bc849199f3 73 if (counter <= 1000) {
rowlybot12000 2:f5bc849199f3 74 mod = rand() % (5 + 1 - 0) + 0;
rowlybot12000 2:f5bc849199f3 75 }
rowlybot12000 2:f5bc849199f3 76 wait(speed + mod);
rowlybot12000 1:e0fb48c0f15b 77 alif_base = 1;
rowlybot12000 1:e0fb48c0f15b 78 while (alif_base<=alif_end) {
rowlybot12000 1:e0fb48c0f15b 79 alif_mod = '0'+alif_base;
rowlybot12000 1:e0fb48c0f15b 80 sendKey(alif_mod, alif_hotkeys, delay);
rowlybot12000 1:e0fb48c0f15b 81 printData("Ctrl+Shift", alif_mod);
rowlybot12000 2:f5bc849199f3 82 if (counter <= 1000) {
rowlybot12000 2:f5bc849199f3 83 mod = rand() % (5 + 1 - 0) + 0;
rowlybot12000 2:f5bc849199f3 84 }
rowlybot12000 2:f5bc849199f3 85 wait(speed + mod);
rowlybot12000 1:e0fb48c0f15b 86 sendKey('x', alif_hotkeys, delay);
rowlybot12000 1:e0fb48c0f15b 87 alif_base++;
gmilway 0:fcb5eced08ed 88 }
gmilway 0:fcb5eced08ed 89 //prep for next loop
gmilway 0:fcb5eced08ed 90 wait(speed);
rowlybot12000 1:e0fb48c0f15b 91 ccs_base++;
rowlybot12000 2:f5bc849199f3 92 if (counter == 1000) {
rowlybot12000 2:f5bc849199f3 93 counter = 0;
rowlybot12000 2:f5bc849199f3 94 }
rowlybot12000 1:e0fb48c0f15b 95
gmilway 0:fcb5eced08ed 96 }
gmilway 0:fcb5eced08ed 97 }
gmilway 0:fcb5eced08ed 98 }