condens

Dependencies:   mbed MbedJSONValue

Committer:
duchonic
Date:
Thu Aug 22 22:31:27 2019 +0000
Revision:
3:26d5a21bbc66
Parent:
2:d5f4f429f3db
docu

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duchonic 2:d5f4f429f3db 1 #include <mbed.h>
duchonic 1:5abef2328a97 2 #include <string>
duchonic 2:d5f4f429f3db 3 #include <cassert>
duchonic 2:d5f4f429f3db 4
duchonic 2:d5f4f429f3db 5 #include "MbedJSONValue/MbedJSONValue.h"
duchonic 2:d5f4f429f3db 6 #include "communication.h"
duchonic 0:8dd13dfd2e4e 7
duchonic 0:8dd13dfd2e4e 8 Ticker toggle_led_ticker;
duchonic 0:8dd13dfd2e4e 9 Ticker sendStuffTicker;
duchonic 2:d5f4f429f3db 10 Ticker readStuffTicker;
duchonic 0:8dd13dfd2e4e 11
duchonic 0:8dd13dfd2e4e 12 DigitalOut led1(LED1);
duchonic 0:8dd13dfd2e4e 13 DigitalOut led2(LED2);
duchonic 0:8dd13dfd2e4e 14 Serial pc(SERIAL_TX, SERIAL_RX);
duchonic 0:8dd13dfd2e4e 15
duchonic 0:8dd13dfd2e4e 16 void toggle_led() {
duchonic 0:8dd13dfd2e4e 17 led1 = !led1;
duchonic 0:8dd13dfd2e4e 18 }
duchonic 0:8dd13dfd2e4e 19
duchonic 2:d5f4f429f3db 20 Command mCommand;
duchonic 2:d5f4f429f3db 21 Type mType(3);
duchonic 2:d5f4f429f3db 22 Conf mConf(31);
duchonic 2:d5f4f429f3db 23 Status mStatus;
duchonic 2:d5f4f429f3db 24 HeartBeat mHeartBeat;
duchonic 0:8dd13dfd2e4e 25
duchonic 2:d5f4f429f3db 26 void parseJson(char * json){
duchonic 0:8dd13dfd2e4e 27
duchonic 2:d5f4f429f3db 28 MbedJSONValue receive;
duchonic 2:d5f4f429f3db 29 parse(receive, json);
duchonic 1:5abef2328a97 30
duchonic 2:d5f4f429f3db 31 switch(mCommand.get(receive)){
duchonic 2:d5f4f429f3db 32 case TYPE:{
duchonic 2:d5f4f429f3db 33 mType.sendFrame();
duchonic 2:d5f4f429f3db 34 break;
duchonic 2:d5f4f429f3db 35 }
duchonic 2:d5f4f429f3db 36 case CONF:{
duchonic 2:d5f4f429f3db 37 mConf.setConfig(receive) ? mConf.sendAck() : mConf.sendAck();
duchonic 2:d5f4f429f3db 38 break;
duchonic 2:d5f4f429f3db 39 }
duchonic 2:d5f4f429f3db 40 case STATUS:{
duchonic 2:d5f4f429f3db 41 mStatus.t1 = 12;
duchonic 2:d5f4f429f3db 42 mStatus.sendFrame();
duchonic 2:d5f4f429f3db 43 }
duchonic 2:d5f4f429f3db 44 default:{
duchonic 2:d5f4f429f3db 45 assert(0);
duchonic 2:d5f4f429f3db 46 break;
duchonic 2:d5f4f429f3db 47 }
duchonic 2:d5f4f429f3db 48 }
duchonic 1:5abef2328a97 49 }
duchonic 1:5abef2328a97 50
duchonic 2:d5f4f429f3db 51 void sendStuff() {
duchonic 2:d5f4f429f3db 52 static float strom = 1.1;
duchonic 2:d5f4f429f3db 53 static int durchfluss = 1;
duchonic 2:d5f4f429f3db 54 static float temp = 22;
duchonic 2:d5f4f429f3db 55 static int pumpStatus = 0;
duchonic 1:5abef2328a97 56
duchonic 2:d5f4f429f3db 57 mHeartBeat.sendFrame();
duchonic 2:d5f4f429f3db 58
duchonic 2:d5f4f429f3db 59 strom += 1.3f;
duchonic 2:d5f4f429f3db 60 durchfluss += 1;
duchonic 2:d5f4f429f3db 61 temp += 1.34f;
duchonic 2:d5f4f429f3db 62 pumpStatus = !pumpStatus;
duchonic 2:d5f4f429f3db 63
duchonic 1:5abef2328a97 64 }
duchonic 1:5abef2328a97 65
duchonic 0:8dd13dfd2e4e 66 int main() {
duchonic 2:d5f4f429f3db 67 pc.baud(115200);
duchonic 0:8dd13dfd2e4e 68
duchonic 2:d5f4f429f3db 69 pc.printf("main start\n\r");
duchonic 2:d5f4f429f3db 70 toggle_led_ticker.attach(&toggle_led, 0.05);
duchonic 2:d5f4f429f3db 71 sendStuffTicker.attach(&sendStuff, 1);
duchonic 1:5abef2328a97 72
duchonic 2:d5f4f429f3db 73 char buffer[50];
duchonic 0:8dd13dfd2e4e 74 while (true) {
duchonic 2:d5f4f429f3db 75
duchonic 0:8dd13dfd2e4e 76 // Do other things...
duchonic 2:d5f4f429f3db 77 if(pc.readable()){
duchonic 2:d5f4f429f3db 78 pc.scanf("%s", buffer);
duchonic 2:d5f4f429f3db 79 pc.printf("received :%s\n", buffer);
duchonic 2:d5f4f429f3db 80 parseJson(buffer);
duchonic 2:d5f4f429f3db 81 }
duchonic 0:8dd13dfd2e4e 82 }
duchonic 0:8dd13dfd2e4e 83 }