condens

Dependencies:   mbed MbedJSONValue

Revision:
2:d5f4f429f3db
Parent:
1:5abef2328a97
--- a/main.cpp	Thu Aug 22 11:37:10 2019 +0000
+++ b/main.cpp	Thu Aug 22 22:27:16 2019 +0000
@@ -1,9 +1,13 @@
-#include "mbed.h"
-#include "MbedJSONValue.h"
+#include <mbed.h>
 #include <string>
+#include <cassert>
+
+#include "MbedJSONValue/MbedJSONValue.h"
+#include "communication.h"
 
 Ticker toggle_led_ticker;
 Ticker sendStuffTicker;
+Ticker readStuffTicker;
 
 DigitalOut led1(LED1);
 DigitalOut led2(LED2);
@@ -13,60 +17,67 @@
     led1 = !led1;
 }
 
-void sendStuff() {
-    static int counter=0;
-    pc.printf("some stuff %u\n", counter++);
-}
+Command mCommand;
+Type mType(3);
+Conf mConf(31);
+Status mStatus;
+HeartBeat mHeartBeat;
 
+void parseJson(char * json){
 
-void makeJson(){
-    MbedJSONValue demo;
-    std::string s;
+    MbedJSONValue receive;   
+    parse(receive, json);
  
-    //fill the object
-    demo["my_array"][0] = "demo_string";
-    demo["my_array"][1] = 10;
-    demo["my_boolean"] = false;
- 
-    //serialize it into a JSON string
-    s = demo.serialize();
-    pc.printf("json: %s\r\n", s.c_str());    
+    switch(mCommand.get(receive)){
+        case TYPE:{
+            mType.sendFrame();   
+            break;    
+        }  
+        case CONF:{
+            mConf.setConfig(receive) ? mConf.sendAck() : mConf.sendAck();
+            break;    
+        }  
+        case STATUS:{
+            mStatus.t1 = 12;
+            mStatus.sendFrame();    
+        }
+        default:{
+            assert(0);
+            break;
+        }
+    }
 }
 
-void parseJson(){
-     MbedJSONValue demo;
- 
-    const  char * json = "{\"my_array\": [\"demo_string\", 10], \"my_boolean\": true}";
- 
-    //parse the previous string and fill the object demo
-    parse(demo, json);
- 
-    std::string my_str;
-    int my_int;
-    bool my_bool;
- 
-    my_str = demo["my_array"][0].get<std::string>();
-    my_int = demo["my_array"][1].get<int>();
-    my_bool = demo["my_boolean"].get<bool>();
+void sendStuff() {
+    static float strom = 1.1;
+    static int durchfluss = 1;
+    static float temp = 22;
+    static int pumpStatus = 0;
     
-    pc.printf("my_str: %s\r\n", my_str.c_str());
-    pc.printf("my_int: %d\r\n", my_int);
-    pc.printf("my_bool: %s\r\n", my_bool ? "true" : "false");
+    mHeartBeat.sendFrame();
+    
+    strom += 1.3f;
+    durchfluss += 1;
+    temp += 1.34f;
+    pumpStatus = !pumpStatus;
+    
 }
 
 int main() {
-    pc.baud(115200);
-    pc.printf("start main()\n\r");    
+    pc.baud(115200);   
     
-    makeJson();
-    parseJson();
+    pc.printf("main start\n\r");
+    toggle_led_ticker.attach(&toggle_led, 0.05);
+    sendStuffTicker.attach(&sendStuff, 1);
     
-    toggle_led_ticker.attach(&toggle_led, 0.2);
-    sendStuffTicker.attach(&sendStuff, 2);
-    
+    char buffer[50];
     while (true) {
+
         // Do other things...
-
-        wait(1);
+        if(pc.readable()){
+            pc.scanf("%s", buffer);
+            pc.printf("received :%s\n", buffer);
+            parseJson(buffer);
+        }
     }
 }
\ No newline at end of file