Attila Fazekas
/
cli
published command line interface
cli_main.cpp
- Committer:
- attila0970
- Date:
- 23 months ago
- Revision:
- 0:fe9e3f3e16e2
File content as of revision 0:fe9e3f3e16e2:
#include "mbed.h" #include "cli.h" DigitalOut led(PA_5); Serial pc(USBTX, USBRX); fdgh void serialInterrupt(); void writeToSerial(); void clearBuffer(); void analizis(); void charAnalizis(); void start(); int main() { pc.baud(115200); pc.printf("sajt\n"); start(); while(1) { pc.attach(&serialInterrupt, Serial::RxIrq); if(cliFlag == 1) { writeToSerial(); analizis(); charAnalizis(); clearBuffer(); i = 0; cliFlag = 0; run = true; } while(run) { led = !led; wait(1); } } } //==================================================================== //=========================functions================================== //==================================================================== void start() { pc.printf("\nBeirt szoveg: "); } void serialInterrupt() { run = false; while( pc.readable() && ((i + 1) < bufferSize) ) { data[i] = pc.getc(); if ( data[i] == '\n' || data[i] == '\r') { cliFlag = 1; } else if ( data[i] == 0x08 && i > 0) { i--; pc.putc(0x08); } else { pc.putc(data[i]); i++; } } return; } void clearBuffer() { for ( int k = 0; k < bufferSize; k++) { data[k]='\0'; // '\0' intBuff[k]='\0'; bigStrBuff[k]='\0'; smallStrBuff[k]='\0'; elseBuff[k]='\0'; intIndex = 0; bigStrIndex = 0; smallStrIndex = 0; elseIndex = 0; } } void writeToSerial() { pc.printf("\n"); for ( j = 0; j < bufferSize; j++) { if ( data[j] != '\0') { pc.printf("%c", data[j]); } } } void analizis() { pc.printf("\nValasz: "); if ( data[i-5] == 'h' && data[i-4] == 'e' && data[i-3] == 'l' && data[i-2] == 'l' && data[i-1] == 'o') { pc.printf("szia!"); } if ( data[i-5] == 'm' && data[i-4] == 'i' && data[i-3] == 'z' && data[i-2] == 'u' && data[i-1] == '?') { pc.printf("semmi, veled?"); } pc.printf("\n"); run = true; } void charAnalizis() { for ( a = 0; a < bufferSize; a++) { if ( data[a] > 47 && data[a] < 58 ) { intBuff[intIndex] = data[a]; intIndex++; } if ( (data[a] > 64 && data[a] < 91) || (data[a] > 191 && data[a] < 221) ) { bigStrBuff[bigStrIndex] = data[a]; bigStrIndex++; } if ( (data[a] > 96 && data[a] < 123) || (data[a] > 223 && data[a] < 255) ) { smallStrBuff[smallStrIndex] = data[a]; smallStrIndex++; } if ( (data[a] > 32 && data[a] < 48) || (data[a] > 57 && data[a] < 65) || (data[a] > 90 && data[a] < 97)) { elseBuff[elseIndex] = data[a]; elseIndex++; } } pc.printf("Szamok: "); for ( b = 0; b < intIndex; b++) { pc.printf("%c", intBuff[b]); } pc.printf("\n"); pc.printf("Nagy betuk: "); for ( b = 0; b < bigStrIndex; b++) { pc.printf("%c", bigStrBuff[b]); } pc.printf("\n"); pc.printf("Kis betuk: "); for ( b = 0; b < smallStrIndex; b++) { pc.printf("%c", smallStrBuff[b]); } pc.printf("\n"); pc.printf("Minden mas: "); for ( b = 0; b < elseIndex; b++) { pc.printf("%c", elseBuff[b]); } pc.printf("\n\n"); pc.printf("\nBeirt szoveg: "); }