Gordon Sulc / Mbed 2 deprecated CLI

Dependencies:   TextLCD mbed PS2

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers keyname.cpp Source File

keyname.cpp

00001 #include "keyname.h"
00002 
00003 DigitalOut myled1(LED1);
00004 DigitalOut myled2(LED2);
00005 DigitalOut myled3(LED3);
00006 DigitalOut myled4(LED4);
00007 
00008 char keyname(char scancode){
00009     switch(scancode){
00010         case 0x16:
00011             return '1';
00012         case 0x1E:
00013             return '2';
00014         case 0x26:
00015             return '3';
00016         case 0x25:
00017             return '4';
00018         case 0x2E:
00019             return '5';
00020         case 0x36:
00021             return '6';
00022         case 0x3D:
00023             return '7';
00024         case 0x3E:
00025             return '8';
00026         case 0x46:
00027             return '9';
00028         case 0x45:
00029             return '0';
00030         case 0x15:
00031             return 'Q';
00032         case 0x1D:
00033             return 'W';
00034         case 0x24:
00035             return 'E';
00036         case 0x2D:
00037             return 'R';
00038         case 0x2C:
00039             return 'T';
00040         case 0x35:
00041             return 'Y';
00042         case 0x3C:
00043             return 'U';
00044         case 0x43:
00045             return 'I';
00046         case 0x44:
00047             return 'O';
00048         case 0x4D:
00049             return 'P';
00050         case 0x1C:
00051             return 'A';
00052         case 0x1B:
00053             return 'S';
00054         case 0x23:
00055             return 'D';
00056         case 0x2B:
00057             return 'F';
00058         case 0x34:
00059             return 'G';
00060         case 0x33:
00061             return 'H';
00062         case 0x3B:
00063             return 'J';
00064         case 0x42:
00065             return 'K';
00066         case 0x4B:
00067             return 'L';
00068         case 0x1A:
00069             return 'Z';
00070         case 0x22:
00071             return 'X';
00072         case 0x21:
00073             return 'C';
00074         case 0x2A:
00075             return 'V';
00076         case 0x32:
00077             return 'B';
00078         case 0x31:
00079             return 'N';
00080         case 0x3A:
00081             return 'M';
00082         case 0x4e:
00083             return '-';
00084         case 0x49:
00085             return '.';
00086         case 0x29:
00087             return ' ';
00088         default:
00089             return '?';
00090     }
00091 }
00092 
00093 int curstr(char* str,int numchar,char c){
00094     if((c != 0x66)&&(c != 0x5A)){
00095         if(numchar < 32){ 
00096             char k = keyname(c);
00097             if(k!= '?'){
00098                 str[numchar] = k;
00099                 numchar++;
00100             }
00101         }
00102         else {
00103             myled1 = !myled1;
00104             myled2 = !myled2;
00105             myled3 = !myled3;
00106             myled4 = !myled4;
00107             wait(0.2);
00108             myled1 = !myled1;
00109             myled2 = !myled2;
00110             myled3 = !myled3;
00111             myled4 = !myled4;    
00112             wait(0.2);
00113         }
00114     }
00115     else if(c == 0x66 && numchar > 0){
00116         numchar = numchar - 1;
00117         str[numchar] = ' ';
00118     }
00119     return numchar;
00120 }
00121 
00122 int keyhit(char* str,int numchar,PS2Keyboard::keyboard_event_t evt_kb){
00123     
00124     return numchar;
00125 }