Demo program for StrCommandHandler calss library.

Dependencies:   mbed SerialInputReactionHandler StrCommandHandler

Files at this revision

API Documentation at this revision

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

Changed in this revision

SerialInputReactionHandler.lib Show annotated file Show diff for this revision Revisions of this file
StrCommandHandler.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SerialInputReactionHandler.lib	Wed Oct 21 17:53:04 2020 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/aktk/code/SerialInputReactionHandler/#4718a4eaf340
--- a/StrCommandHandler.lib	Thu Oct 31 18:59:53 2019 +0000
+++ b/StrCommandHandler.lib	Wed Oct 21 17:53:04 2020 +0000
@@ -1,1 +1,1 @@
-https://os.mbed.com/users/aktk/code/StrCommandHandler/#1d46d90eb7bf
+https://os.mbed.com/users/aktk/code/StrCommandHandler/#a4873d38a32c
--- a/main.cpp	Thu Oct 31 18:59:53 2019 +0000
+++ b/main.cpp	Wed Oct 21 17:53:04 2020 +0000
@@ -1,5 +1,6 @@
 #include "mbed.h"
 #include "StrCommandHandler.h"
+#include "SerialInputReactionHandler.h"
 
 DigitalOut myled1(LED1);
 
@@ -7,72 +8,56 @@
 
 DigitalOut myled3(LED3);
 
+DigitalOut myled4(LED4);
+
 Serial pc(USBTX, USBRX); // tx, rx
 
 StrCommandHandler cmdHandler(5);
 
-int func1(void)
+
+void * func1(void)
 {
     myled1 = 1;
     myled2 = 0;
     myled3 = 0;
-    return 1;
+    return NULL;
 }
 
-int func2(void)
+void * func2(void)
 {
     myled1 = 0;
     myled2 = 1;
     myled3 = 0;
-    return 2;
+    return NULL;
 }
 
-int func3(void)
+void * func3(void)
 {
     myled1 = 0;
     myled2 = 0;
     myled3 = 1;
-    return 3;
+    return NULL;
 }
 
 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.map(SerialInputReactionHandler::ARROW_UP, func3);
+    cmdHandler.list();
+    
+    SerialInputReactionHandler *reactor = new SerialInputReactionHandler();
+    //reactor->attach(callback(&cmdHandler, &StrCommandHandler::exe));
+    //reactor.startReception(&pc, SerialInputReactionHandler::KB_TILL_ENTER);
+    
 
-    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++;
+        myled4 = !myled4;
+        wait(.5);
     }
     goto PRELOOP;
 }
\ No newline at end of file