Demo program for StrCommandHandler calss library.
Dependencies: mbed SerialInputReactionHandler StrCommandHandler
main.cpp@1:c39728f6555e, 2020-10-21 (annotated)
- 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?
User | Revision | Line number | New 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 | } |