AGH UST MBED part 2

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

main.cpp

Committer:
matis755
Date:
2020-05-20
Revision:
3:6fc7976cc5bf
Parent:
2:8788d711db7e
Child:
4:e48aee3e8d09

File content as of revision 3:6fc7976cc5bf:

#include "mbed.h"
#include "string.h"

#define BUFFER_SIZE 100

Serial MySerial(USBTX, USBRX);
DigitalOut led_green(LED1);
DigitalOut led_red(LED2);

char gets(char *pStr, unsigned char ucSize){
    unsigned char ucStrPtr = 0;
    while(ucStrPtr < ucSize) {
        pStr[ucStrPtr] = MySerial.getc();
        if(pStr[ucStrPtr] == '\r') {
            pStr[ucStrPtr] = NULL;
            return 0;
        }
        ucStrPtr ++;    
    }
    return 1;
}

char puts(char *pStr, unsigned char ucSize){   
    unsigned char ucNullPtr;
    for(ucNullPtr = 0; ucNullPtr <= ucSize; ucNullPtr++){
        if(pStr[ucNullPtr] == NULL) {
            break;
        }
        else {}
    }
    if (ucNullPtr == ucSize) {
        return 1;
    }

    for(unsigned char ucIdx = 0; ucIdx < ucNullPtr; ucIdx ++) {
        MySerial.putc(pStr[ucIdx]);
    }
    MySerial.putc('\r');
    return 0;
}


int main() {
    Tokenizer MyTokenizer;
    char cTablica[BUFFER_SIZE];

   
    while(1){
        if(!gets(cTablica, BUFFER_SIZE)){        
            MyTokenizer.DecodeMsg(cTablica);
            if ((MyTokenizer.eGetTokenType(0) == KEYWORD) & (MyTokenizer.GetTokenCnt() != 0)){
                switch (MyTokenizer.eGetKeyword(0)){
                    case (CLB):
                        led_green = !led_green;
                        break;
                    case (GT):
                        led_red = !led_red;
                        break;
                    default:
                        break;
                }
            }
        }
    }
}