Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

main.cpp

Committer:
domino5740
Date:
2020-06-08
Revision:
1:be03cac9fe74
Parent:
0:d09bab92fbd1
Child:
2:7dc265489818

File content as of revision 1:be03cac9fe74:

#include "mbed.h"
#include "command_decoder.h"

Serial MyUart(SERIAL_TX, SERIAL_RX);

unsigned int puts (char *pcCharTab, unsigned int uiCharTabSize) {
    
    unsigned int uiNullCheck;
    
    for(int i = 0; i < uiCharTabSize; i++) {
        if((pcCharTab[i] == 0)) {
            uiNullCheck += 1;
        }
    }
    for(int i = 0; pcCharTab[i] != 0; i++) {
        MyUart.putc(pcCharTab[i]);
    }
    MyUart.putc(13);
    return uiNullCheck ? 0 : 1;
}

unsigned int gets (char *pcRecCharTab, unsigned int uiRecCharTabSize) {
    
    unsigned int iTabIterator = 0;
    char cRecChar;
    
    for(iTabIterator = 0; cRecChar != 13 ; iTabIterator++) {
        cRecChar = MyUart.getc();
        pcRecCharTab[iTabIterator] = cRecChar;
        if(iTabIterator >= (uiRecCharTabSize - 1)) {
            return 1;
        }
    }
    pcRecCharTab[iTabIterator - 1] = 0;
    return 0;
}

int main()
{
    char cRecCharTab[50];
    char cSendCharTab[50];
    ucTokenNr = 0;
    
    while(1) {
        gets(cRecCharTab, 50);
        MyCommandDecoder.DecodeMsg(cRecCharTab);
        if(ucTokenNr != 0) {
            for(int iCurrentToken = 0; iCurrentToken <= ucTokenNr; iCurrentToken++) {
                if(asToken[iCurrentToken].eType == KEYWORD) {
                    switch(asToken[iCurrentToken].uValue.eKeyword) {
                        case ID:
                            puts("id anyidentifier", 50);
                        break;
                        default:
                        break;
                    }
                }
                else {
                    puts("unknowncommand", 50);
                }
                
            }
        }
        MyUart.putc('\n');
    }
}