published command line interface

Dependencies:   mbed

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:      "); 
}