![](/media/cache/profiles/ndu.jpg.50x50_q85.jpg)
condens
Dependencies: mbed MbedJSONValue
Diff: main.cpp
- 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