Hotkeys for RTL investigation
Dependencies: C12832 USBDevice mbed
Dependents: mbed_hotkeys_rtlx7 mbed_hotkeys_rtlX6
main.cpp@2:f5bc849199f3, 2018-05-10 (annotated)
- 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?
User | Revision | Line number | New 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 | } |