Tableau: Tablet keyboard IDD HW2 Tony Wu

Dependencies:   PinDetect USBDevice mbed

Fork of idd_fall15_hw2_twuster_tableautabletkeyboard by TONY WU

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "PinDetect.h"
00003 #include <string>
00004 #include <ctime>
00005 #include "USBKeyboard.h"
00006 
00007 
00008 Serial pc(USBTX, USBRX);
00009 PinDetect input4(D4);
00010 PinDetect input5(D5);
00011 PinDetect input6(D6);
00012 PinDetect input7(D7);
00013 PinDetect input8(D8);
00014 PinDetect input9(D9);
00015 PinDetect input10(D10);
00016 PinDetect input11(D11);
00017 PinDetect input12(D12);
00018 PinDetect input13(D13);
00019 USBKeyboard keyboard;
00020 
00021 
00022 int main() {
00023     time_t seconds_since_last_action = time(NULL);
00024     clock_t begin = clock();
00025     string last_action = "";
00026     double buffer_time = 50.0;
00027     while(1) {
00028         if (input4 == 0) {
00029             if (double(clock()-begin) < buffer_time) { // move to next letter
00030                 if (last_action.compare("w") == 0) {
00031                     keyboard.keyCode(8);
00032                     keyboard.printf("%s", "x");
00033                     last_action = "X";
00034                 } else if (last_action.compare("x") == 0) {
00035                     keyboard.keyCode(8);
00036                     keyboard.printf("%s", "w");
00037                     last_action = "w";
00038                 } else {
00039                     keyboard.printf("%s", "w");
00040                     last_action = "w";
00041                 }
00042             } else {
00043                 keyboard.printf("%s", "w");
00044                 last_action = "w";
00045             }
00046             wait(0.3);
00047             begin = clock();
00048         } else if (input5 == 0) {
00049             pc.printf("%s", "QRS");
00050             if (double(clock()-begin) < buffer_time) { // move to next letter
00051                 if (last_action.compare("q") == 0) {
00052                     keyboard.keyCode(8);
00053                     keyboard.printf("%s", "r");
00054                     last_action = "r";
00055                 } else if (last_action.compare("r") == 0) {
00056                     keyboard.keyCode(8);
00057                     keyboard.printf("%s", "s");
00058                     last_action = "s";
00059                 } else if (last_action.compare("r") == 0 || last_action.compare("s") == 0) {
00060                     keyboard.keyCode(8);
00061                     keyboard.printf("%s", "q");
00062                     last_action = "q";
00063                 } else {
00064                     keyboard.printf("%s", "q");
00065                     last_action = "q";
00066                 }
00067             } else {
00068                 keyboard.printf("%s", "q");
00069                 last_action = "q";
00070             }
00071             wait(0.3);
00072             begin = clock();
00073         } else if (input6 == 0) {
00074             pc.printf("%s", "IJKL");
00075             if (double(clock()-begin) < buffer_time) { // move to next letter
00076                 if (last_action.compare("i") == 0) {
00077                     keyboard.keyCode(8);
00078                     keyboard.printf("%s", "j");
00079                     last_action = "j";
00080                 } else if (last_action.compare("j") == 0) {
00081                     keyboard.keyCode(8);
00082                     keyboard.printf("%s", "k");
00083                     last_action = "k";
00084                 } else if (last_action.compare("k") == 0) {
00085                     keyboard.keyCode(8);
00086                     keyboard.printf("%s", "l");
00087                     last_action = "l";
00088                 } else if (last_action.compare("j") == 0 || last_action.compare("k") == 0 || last_action.compare("l") == 0) {
00089                     keyboard.keyCode(8);
00090                     keyboard.printf("%s", "i");
00091                     last_action = "i";
00092                 } else {
00093                     keyboard.printf("%s", "i");
00094                     last_action = "i";
00095                 }
00096             } else {
00097                 keyboard.printf("%s", "i");
00098                 last_action = "i";
00099             }
00100             wait(0.3);
00101             begin = clock();
00102         } else if (input7 == 0) {
00103             pc.printf("%s", "ABCD");
00104             if (double(clock()-begin) < buffer_time) { // move to next letter
00105                 if (last_action.compare("a") == 0) {
00106                     keyboard.keyCode(8);
00107                     keyboard.printf("%s", "b");
00108                     last_action = "b";
00109                 } else if (last_action.compare("b") == 0) {
00110                     keyboard.keyCode(8);
00111                     keyboard.printf("%s", "c");
00112                     last_action = "c";
00113                 } else if (last_action.compare("c") == 0) {
00114                     keyboard.keyCode(8);
00115                     keyboard.printf("%s", "d ");
00116                     last_action = "d";
00117                 } else if (last_action.compare("b") == 0 || last_action.compare("c") == 0 || last_action.compare("d") == 0) {
00118                     keyboard.keyCode(8);
00119                     keyboard.printf("%s", "a");
00120                     last_action = "a";
00121                 } else {
00122                     keyboard.printf("%s", "a");
00123                     last_action = "a";
00124                 }
00125             } else {
00126                 keyboard.printf("%s", "a");
00127                 last_action = "a";
00128             }
00129             wait(0.3);
00130             begin = clock();
00131         } else if (input8 == 0) {
00132             pc.printf("%s", "space");
00133             keyboard.keyCode(32);
00134             last_action = "space";
00135             wait(0.3);
00136         } else if (input9 == 0) {
00137             pc.printf("%s", "YZ");
00138             if (double(clock()-begin) < buffer_time) {
00139                 if (last_action.compare("y") == 0) {
00140                     keyboard.keyCode(8);
00141                     keyboard.printf("%s", "z");
00142                     last_action = "z";
00143                 } else if (last_action.compare("z") == 0) {
00144                     keyboard.keyCode(8);
00145                     keyboard.printf("%s", "y");
00146                     last_action = "y";
00147                 } else {
00148                     keyboard.printf("%s", "y");
00149                     last_action = "y";
00150                 }
00151             } else {
00152                 keyboard.printf("%s", "y");
00153                 last_action = "y";
00154             }
00155             wait(0.3);
00156             begin = clock();
00157         } else if (input10 == 0) {
00158             pc.printf("%s", "TUV");
00159             if (double(clock()-begin) < buffer_time) { // move to next letter
00160                 if (last_action.compare("t") == 0) {
00161                     keyboard.keyCode(8);
00162                     keyboard.printf("%s", "u");
00163                     last_action = "u";
00164                 } else if (last_action.compare("u") == 0) {
00165                     keyboard.keyCode(8);
00166                     keyboard.printf("%s", "v");
00167                     last_action = "v";
00168                 } else if (last_action.compare("u") == 0 || last_action.compare("v") == 0) {
00169                     keyboard.keyCode(8);
00170                     keyboard.printf("%s", "t");
00171                     last_action = "t";
00172                 } else {
00173                     keyboard.printf("%s", "t");
00174                     last_action = "t";
00175                 }
00176             } else {
00177                 keyboard.printf("%s", "t");
00178                 last_action = "t";
00179             }
00180             wait(0.3);
00181             begin = clock();
00182         } else if (input11 == 0) {
00183             pc.printf("%s", "MNOP");
00184             if (double(clock()-begin) < buffer_time) { // move to next letter
00185                 if (last_action.compare("m") == 0) {
00186                     keyboard.keyCode(8);
00187                     keyboard.printf("%s", "n");
00188                     last_action = "n";
00189                 } else if (last_action.compare("n") == 0) {
00190                     keyboard.keyCode(8);
00191                     keyboard.printf("%s", "o");
00192                     last_action = "o";
00193                 } else if (last_action.compare("o") == 0) {
00194                     keyboard.keyCode(8);
00195                     keyboard.printf("%s", "p");
00196                     last_action = "p";
00197                 } else if (last_action.compare("n") == 0 || last_action.compare("o") == 0 || last_action.compare("p") == 0) {
00198                     keyboard.keyCode(8);
00199                     keyboard.printf("%s", "m");
00200                     last_action = "m";
00201                 } else {
00202                     keyboard.printf("%s", "m");
00203                     last_action = "m";
00204                 }
00205             } else {
00206                 keyboard.printf("%s", "m");
00207                 last_action = "m";
00208             }
00209             wait(0.3);
00210             begin = clock();
00211         } else if (input13 == 0) {
00212             pc.printf("%s", "EFGH");
00213             if (double(clock()-begin) < buffer_time) { // move to next letter
00214                 if (last_action.compare("e") == 0) {
00215                     keyboard.keyCode(8);
00216                     keyboard.printf("%s", "f");
00217                     last_action = "f";
00218                 } else if (last_action.compare("f") == 0) {
00219                     keyboard.keyCode(8);
00220                     keyboard.printf("%s", "g");
00221                     last_action = "g";
00222                 } else if (last_action.compare("g") == 0) {
00223                     keyboard.keyCode(8);
00224                     keyboard.printf("%s", "h");
00225                     last_action = "h";
00226                 } else if (last_action.compare("f") == 0 || last_action.compare("g") == 0 || last_action.compare("h") == 0) {
00227                     keyboard.keyCode(8);
00228                     keyboard.printf("%s", "e");
00229                     last_action = "e";
00230                 } else {
00231                     keyboard.printf("%s", "e");
00232                     last_action = "e";
00233                 }
00234             } else {
00235                 keyboard.printf("%s", "e");
00236                 last_action = "e";
00237             }
00238             wait(0.3);
00239             begin = clock();
00240         } else if (input12 == 0) {
00241             pc.printf("%s", "DELETE");
00242             keyboard.keyCode(8);
00243             last_action = "delete";
00244             wait(0.3);
00245             begin = clock();
00246         }
00247     }
00248 }
00249 
00250 
00251