Demo program for StrCommandHandler calss library.

Dependencies:   mbed SerialInputReactionHandler StrCommandHandler

main.cpp

Committer:
aktk
Date:
2019-10-31
Revision:
0:4749705f54ab
Child:
1:c39728f6555e

File content as of revision 0:4749705f54ab:

#include "mbed.h"
#include "StrCommandHandler.h"

DigitalOut myled1(LED1);

DigitalOut myled2(LED2);

DigitalOut myled3(LED3);

Serial pc(USBTX, USBRX); // tx, rx

StrCommandHandler cmdHandler(5);

int func1(void)
{
    myled1 = 1;
    myled2 = 0;
    myled3 = 0;
    return 1;
}

int func2(void)
{
    myled1 = 0;
    myled2 = 1;
    myled3 = 0;
    return 2;
}

int func3(void)
{
    myled1 = 0;
    myled2 = 0;
    myled3 = 1;
    return 3;
}

int main()
{
    char command[16] ;
    int itr = 0;
    int rlt;

    pc.baud(921600);

    cmdHandler.map("func1", func1);
    cmdHandler.map("func2", func2);
    cmdHandler.map("func3", func3);

    cmdHandler.list();

PRELOOP:
    pc.puts("\ncommand: ");
    itr = 0;

    while(1) {
        command[itr] = pc.getc();
        if(
            command[itr] == '\r'
            ||  command[itr] == '\n'
        ) {
            command[itr] = '\0';
            pc.puts("\n");
            pc.puts("reveived: ");
            pc.puts(command);
            pc.puts("\t");
            rlt = cmdHandler.exe(command);
            printf("result: %x\n", rlt);
            break;
        } else {
            pc.putc(command[itr]);
        }
        if (itr == 15)
            break;
        itr++;
    }
    goto PRELOOP;
}