Tableau: Tablet keyboard IDD HW2 Tony Wu
Dependencies: PinDetect USBDevice mbed
Fork of idd_fall15_hw2_twuster_tableautabletkeyboard by
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
Generated on Mon Jul 18 2022 10:01:56 by 1.7.2