Demo program for StrCommandHandler calss library.

Dependencies:   mbed SerialInputReactionHandler StrCommandHandler

Committer:
aktk
Date:
Wed Oct 21 17:53:04 2020 +0000
Revision:
1:c39728f6555e
Parent:
0:4749705f54ab
Modified as it do just led blinking so as not to send char data.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aktk 0:4749705f54ab 1 #include "mbed.h"
aktk 0:4749705f54ab 2 #include "StrCommandHandler.h"
aktk 1:c39728f6555e 3 #include "SerialInputReactionHandler.h"
aktk 0:4749705f54ab 4
aktk 0:4749705f54ab 5 DigitalOut myled1(LED1);
aktk 0:4749705f54ab 6
aktk 0:4749705f54ab 7 DigitalOut myled2(LED2);
aktk 0:4749705f54ab 8
aktk 0:4749705f54ab 9 DigitalOut myled3(LED3);
aktk 0:4749705f54ab 10
aktk 1:c39728f6555e 11 DigitalOut myled4(LED4);
aktk 1:c39728f6555e 12
aktk 0:4749705f54ab 13 Serial pc(USBTX, USBRX); // tx, rx
aktk 0:4749705f54ab 14
aktk 0:4749705f54ab 15 StrCommandHandler cmdHandler(5);
aktk 0:4749705f54ab 16
aktk 1:c39728f6555e 17
aktk 1:c39728f6555e 18 void * func1(void)
aktk 0:4749705f54ab 19 {
aktk 0:4749705f54ab 20 myled1 = 1;
aktk 0:4749705f54ab 21 myled2 = 0;
aktk 0:4749705f54ab 22 myled3 = 0;
aktk 1:c39728f6555e 23 return NULL;
aktk 0:4749705f54ab 24 }
aktk 0:4749705f54ab 25
aktk 1:c39728f6555e 26 void * func2(void)
aktk 0:4749705f54ab 27 {
aktk 0:4749705f54ab 28 myled1 = 0;
aktk 0:4749705f54ab 29 myled2 = 1;
aktk 0:4749705f54ab 30 myled3 = 0;
aktk 1:c39728f6555e 31 return NULL;
aktk 0:4749705f54ab 32 }
aktk 0:4749705f54ab 33
aktk 1:c39728f6555e 34 void * func3(void)
aktk 0:4749705f54ab 35 {
aktk 0:4749705f54ab 36 myled1 = 0;
aktk 0:4749705f54ab 37 myled2 = 0;
aktk 0:4749705f54ab 38 myled3 = 1;
aktk 1:c39728f6555e 39 return NULL;
aktk 0:4749705f54ab 40 }
aktk 0:4749705f54ab 41
aktk 0:4749705f54ab 42 int main()
aktk 0:4749705f54ab 43 {
aktk 0:4749705f54ab 44 pc.baud(921600);
aktk 0:4749705f54ab 45 cmdHandler.map("func1", func1);
aktk 0:4749705f54ab 46 cmdHandler.map("func2", func2);
aktk 1:c39728f6555e 47 cmdHandler.map(SerialInputReactionHandler::ARROW_UP, func3);
aktk 1:c39728f6555e 48 cmdHandler.list();
aktk 1:c39728f6555e 49
aktk 1:c39728f6555e 50 SerialInputReactionHandler *reactor = new SerialInputReactionHandler();
aktk 1:c39728f6555e 51 //reactor->attach(callback(&cmdHandler, &StrCommandHandler::exe));
aktk 1:c39728f6555e 52 //reactor.startReception(&pc, SerialInputReactionHandler::KB_TILL_ENTER);
aktk 1:c39728f6555e 53
aktk 0:4749705f54ab 54
aktk 0:4749705f54ab 55
aktk 0:4749705f54ab 56 PRELOOP:
aktk 0:4749705f54ab 57 pc.puts("\ncommand: ");
aktk 0:4749705f54ab 58 while(1) {
aktk 1:c39728f6555e 59 myled4 = !myled4;
aktk 1:c39728f6555e 60 wait(.5);
aktk 0:4749705f54ab 61 }
aktk 0:4749705f54ab 62 goto PRELOOP;
aktk 0:4749705f54ab 63 }