mbed2 pre-final

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Revision:
1:be03cac9fe74
Parent:
0:d09bab92fbd1
Child:
2:7dc265489818
--- a/main.cpp	Mon Jun 08 11:33:52 2020 +0000
+++ b/main.cpp	Mon Jun 08 21:57:59 2020 +0000
@@ -1,47 +1,66 @@
 #include "mbed.h"
-#include <cstring>
+#include "command_decoder.h"
 
 Serial MyUart(SERIAL_TX, SERIAL_RX);
-DigitalOut led3(LED3);
-DigitalOut led4(LED4);
 
 unsigned int puts (char *pcCharTab, unsigned int uiCharTabSize) {
+    
     unsigned int uiNullCheck;
-    if(pcCharTab[uiCharTabSize - 1] == 0) {
-        uiNullCheck = 0;
+    
+    for(int i = 0; i < uiCharTabSize; i++) {
+        if((pcCharTab[i] == 0)) {
+            uiNullCheck += 1;
+        }
     }
-    else {
-        uiNullCheck = 1;
-    }
-    for(int i = 0; i < uiCharTabSize - 1; i++) {
+    for(int i = 0; pcCharTab[i] != 0; i++) {
         MyUart.putc(pcCharTab[i]);
     }
     MyUart.putc(13);
-    return uiNullCheck;
+    return uiNullCheck ? 0 : 1;
 }
 
-unsigned int gets (char *pcCharTab, unsigned int uiCharTabSize) {
-    int iTabIterator = 0;
-    for(iTabIterator = 0; char cRecChar = MyUart.getc() != 13; iTabIterator++) {
-        pcCharTab[iTabIterator] = cRecChar;
-        if(iTabIterator >= (uiCharTabSize - 1)) {
+unsigned int gets (char *pcRecCharTab, unsigned int uiRecCharTabSize) {
+    
+    unsigned int iTabIterator = 0;
+    char cRecChar;
+    
+    for(iTabIterator = 0; cRecChar != 13 ; iTabIterator++) {
+        cRecChar = MyUart.getc();
+        pcRecCharTab[iTabIterator] = cRecChar;
+        if(iTabIterator >= (uiRecCharTabSize - 1)) {
             return 1;
         }
     }
-    pcCharTab[iTabIterator] = 0;
+    pcRecCharTab[iTabIterator - 1] = 0;
     return 0;
 }
 
 int main()
 {
-    char cRecChar[5];
+    char cRecCharTab[50];
+    char cSendCharTab[50];
+    ucTokenNr = 0;
+    
     while(1) {
-        if(gets(cRecChar, 5)) {
-            led4 = 1;
+        gets(cRecCharTab, 50);
+        MyCommandDecoder.DecodeMsg(cRecCharTab);
+        if(ucTokenNr != 0) {
+            for(int iCurrentToken = 0; iCurrentToken <= ucTokenNr; iCurrentToken++) {
+                if(asToken[iCurrentToken].eType == KEYWORD) {
+                    switch(asToken[iCurrentToken].uValue.eKeyword) {
+                        case ID:
+                            puts("id anyidentifier", 50);
+                        break;
+                        default:
+                        break;
+                    }
+                }
+                else {
+                    puts("unknowncommand", 50);
+                }
+                
+            }
         }
-        else {
-            led4 = 0;
-        }
-        puts(cRecChar, 5);
+        MyUart.putc('\n');
     }
 }