a command line interface that can dynamically assign pins

Dependencies:   TextLCD mbed PS2

keyname.cpp

Committer:
gsulc
Date:
2011-10-20
Revision:
0:4b04cc4cccb4

File content as of revision 0:4b04cc4cccb4:

#include "keyname.h"

DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalOut myled4(LED4);

char keyname(char scancode){
    switch(scancode){
        case 0x16:
            return '1';
        case 0x1E:
            return '2';
        case 0x26:
            return '3';
        case 0x25:
            return '4';
        case 0x2E:
            return '5';
        case 0x36:
            return '6';
        case 0x3D:
            return '7';
        case 0x3E:
            return '8';
        case 0x46:
            return '9';
        case 0x45:
            return '0';
        case 0x15:
            return 'Q';
        case 0x1D:
            return 'W';
        case 0x24:
            return 'E';
        case 0x2D:
            return 'R';
        case 0x2C:
            return 'T';
        case 0x35:
            return 'Y';
        case 0x3C:
            return 'U';
        case 0x43:
            return 'I';
        case 0x44:
            return 'O';
        case 0x4D:
            return 'P';
        case 0x1C:
            return 'A';
        case 0x1B:
            return 'S';
        case 0x23:
            return 'D';
        case 0x2B:
            return 'F';
        case 0x34:
            return 'G';
        case 0x33:
            return 'H';
        case 0x3B:
            return 'J';
        case 0x42:
            return 'K';
        case 0x4B:
            return 'L';
        case 0x1A:
            return 'Z';
        case 0x22:
            return 'X';
        case 0x21:
            return 'C';
        case 0x2A:
            return 'V';
        case 0x32:
            return 'B';
        case 0x31:
            return 'N';
        case 0x3A:
            return 'M';
        case 0x4e:
            return '-';
        case 0x49:
            return '.';
        case 0x29:
            return ' ';
        default:
            return '?';
    }
}

int curstr(char* str,int numchar,char c){
    if((c != 0x66)&&(c != 0x5A)){
        if(numchar < 32){ 
            char k = keyname(c);
            if(k!= '?'){
                str[numchar] = k;
                numchar++;
            }
        }
        else {
            myled1 = !myled1;
            myled2 = !myled2;
            myled3 = !myled3;
            myled4 = !myled4;
            wait(0.2);
            myled1 = !myled1;
            myled2 = !myled2;
            myled3 = !myled3;
            myled4 = !myled4;    
            wait(0.2);
        }
    }
    else if(c == 0x66 && numchar > 0){
        numchar = numchar - 1;
        str[numchar] = ' ';
    }
    return numchar;
}

int keyhit(char* str,int numchar,PS2Keyboard::keyboard_event_t evt_kb){
    
    return numchar;
}