Scott Vincent / GUI
Committer:
khaiminhvn
Date:
Thu Mar 25 02:29:16 2021 +0000
Revision:
5:8a9cb632e91b
Parent:
4:4643a545bcf9
Minor changes

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jump_man 0:3fb966466a8d 1 #include "GUI.h"
jump_man 1:1912637769a0 2 //#include "Defs_Sett.h"
jump_man 0:3fb966466a8d 3
jump_man 0:3fb966466a8d 4 //Constructor
khaiminhvn 4:4643a545bcf9 5 GUI::GUI(char *GUI_URL, EthernetInterface* ethIn, bool* flag)
jump_man 0:3fb966466a8d 6 {
khaiminhvn 4:4643a545bcf9 7 eth = ethIn;
khaiminhvn 4:4643a545bcf9 8 ws = new Websocket(GUI_URL,eth);
khaiminhvn 4:4643a545bcf9 9 if(ws->connect()) {
jump_man 0:3fb966466a8d 10 printf("WS connected\r\n");
jump_man 1:1912637769a0 11 *flag = true;
jump_man 0:3fb966466a8d 12 } else {
jump_man 0:3fb966466a8d 13 printf("WS failed\r\n");
jump_man 1:1912637769a0 14 *flag = false;
jump_man 0:3fb966466a8d 15 }
jump_man 0:3fb966466a8d 16
khaiminhvn 4:4643a545bcf9 17 ws->send("{\"topic\":\"FRDM\"}");
khaiminhvn 4:4643a545bcf9 18 ws->send("{\"topic\":\"update\"}");
jump_man 0:3fb966466a8d 19
jump_man 0:3fb966466a8d 20 }
jump_man 0:3fb966466a8d 21
khaiminhvn 4:4643a545bcf9 22 void GUI::refreshConnection(char *GUI_URL, bool* flag)
jump_man 0:3fb966466a8d 23 {
khaiminhvn 4:4643a545bcf9 24 delete ws;
khaiminhvn 4:4643a545bcf9 25 ws = new Websocket(GUI_URL, eth);
khaiminhvn 4:4643a545bcf9 26 if(ws->connect()) {
khaiminhvn 3:ff63deac3f4a 27 printf("WS connected\r\n");
khaiminhvn 3:ff63deac3f4a 28 *flag = true;
khaiminhvn 3:ff63deac3f4a 29 } else {
khaiminhvn 3:ff63deac3f4a 30 printf("WS failed\r\n");
khaiminhvn 3:ff63deac3f4a 31 *flag = false;
khaiminhvn 3:ff63deac3f4a 32 }
jump_man 0:3fb966466a8d 33 }
jump_man 0:3fb966466a8d 34
khaiminhvn 5:8a9cb632e91b 35 bool GUI::isConnected(bool *flag){
khaiminhvn 5:8a9cb632e91b 36 nsapi_connection_status_t ind = eth->get_connection_status();
khaiminhvn 5:8a9cb632e91b 37 *flag = (ind == NSAPI_STATUS_DISCONNECTED) ? false : true;
khaiminhvn 5:8a9cb632e91b 38 return *flag;
khaiminhvn 5:8a9cb632e91b 39 }
khaiminhvn 5:8a9cb632e91b 40
jump_man 2:3232132ce1ea 41 bool GUI::receives(int *survivalSpeed, bool *activeTracking, bool *powerOn, float *sunAngle)
jump_man 0:3fb966466a8d 42 {
jump_man 0:3fb966466a8d 43 char recvSer[500];
jump_man 0:3fb966466a8d 44 bool msgReceived = false;
jump_man 0:3fb966466a8d 45
khaiminhvn 4:4643a545bcf9 46 while (ws->read(recvSer)) {
jump_man 0:3fb966466a8d 47 StaticJsonDocument<128> doc;
jump_man 0:3fb966466a8d 48 deserializeJson(doc, recvSer, 500);
jump_man 0:3fb966466a8d 49
jump_man 0:3fb966466a8d 50 if (doc.containsKey("survivalSpeed")) {
jump_man 0:3fb966466a8d 51 *survivalSpeed = doc["survivalSpeed"];
jump_man 0:3fb966466a8d 52 msgReceived = true;
jump_man 0:3fb966466a8d 53 }
jump_man 0:3fb966466a8d 54
jump_man 0:3fb966466a8d 55 if (doc.containsKey("activeTracking")) {
jump_man 0:3fb966466a8d 56 *activeTracking = doc["activeTracking"];
jump_man 0:3fb966466a8d 57 msgReceived = true;
jump_man 0:3fb966466a8d 58 }
jump_man 1:1912637769a0 59
jump_man 0:3fb966466a8d 60 if (doc.containsKey("powerOn")) {
jump_man 0:3fb966466a8d 61 *powerOn = doc["powerOn"];
jump_man 1:1912637769a0 62 //*mode = (*powerOn) ? 1 : *mode; // OP_POWER_OFF
jump_man 1:1912637769a0 63 //*mode = (*mode == 1 && *powerOn) ? 1 : *mode; // OP_POWER_OFF, OP_NORMAL
jump_man 0:3fb966466a8d 64 msgReceived = true;
jump_man 0:3fb966466a8d 65 }
jump_man 1:1912637769a0 66
jump_man 2:3232132ce1ea 67 // Only update sunAngle if in AUTO tracking
jump_man 2:3232132ce1ea 68 if (!(*activeTracking)) {
jump_man 2:3232132ce1ea 69 if (doc.containsKey("angle")) {
jump_man 2:3232132ce1ea 70 *sunAngle = doc["angle"];
jump_man 2:3232132ce1ea 71 msgReceived = true;
jump_man 2:3232132ce1ea 72 }
jump_man 2:3232132ce1ea 73 }
jump_man 2:3232132ce1ea 74
jump_man 0:3fb966466a8d 75 }
jump_man 0:3fb966466a8d 76
jump_man 0:3fb966466a8d 77 return msgReceived;
jump_man 0:3fb966466a8d 78 }
jump_man 0:3fb966466a8d 79
jump_man 0:3fb966466a8d 80 void GUI::windSpeed(float windSpeed)
jump_man 0:3fb966466a8d 81 {
jump_man 0:3fb966466a8d 82 char output[32];
jump_man 0:3fb966466a8d 83 sprintf(output, "{\"windSpeed\":%d}", (int)windSpeed);
khaiminhvn 4:4643a545bcf9 84 ws->send((char*)output);
jump_man 0:3fb966466a8d 85 }
jump_man 0:3fb966466a8d 86
jump_man 0:3fb966466a8d 87 void GUI::state(int state)
jump_man 0:3fb966466a8d 88 {
jump_man 0:3fb966466a8d 89 char output[32];
jump_man 0:3fb966466a8d 90 sprintf(output, "{\"state\":%d}", state);
khaiminhvn 4:4643a545bcf9 91 ws->send((char*)output);
jump_man 0:3fb966466a8d 92 }
jump_man 0:3fb966466a8d 93
jump_man 0:3fb966466a8d 94 void GUI::survivalSpeed(int survivalSpeed)
jump_man 0:3fb966466a8d 95 {
jump_man 0:3fb966466a8d 96 char output[32];
jump_man 0:3fb966466a8d 97 sprintf(output, "{\"survivalSpeed\":%d}", survivalSpeed);
khaiminhvn 4:4643a545bcf9 98 ws->send((char*)output);
jump_man 0:3fb966466a8d 99 }
jump_man 0:3fb966466a8d 100
jump_man 0:3fb966466a8d 101 void GUI::activeTracking(bool activeTracking)
jump_man 0:3fb966466a8d 102 {
jump_man 0:3fb966466a8d 103 char output[32];
jump_man 0:3fb966466a8d 104 sprintf(output, "{\"activeTracking\":%s}", activeTracking ? "true" : "false");
khaiminhvn 4:4643a545bcf9 105 ws->send((char*)output);
jump_man 0:3fb966466a8d 106 }
jump_man 0:3fb966466a8d 107
jump_man 0:3fb966466a8d 108 void GUI::inverterPower(int power)
jump_man 0:3fb966466a8d 109 {
jump_man 0:3fb966466a8d 110 char output[32];
jump_man 0:3fb966466a8d 111 sprintf(output, "{\"inverterPower\":%d}", power);
khaiminhvn 4:4643a545bcf9 112 ws->send((char*)output);
jump_man 0:3fb966466a8d 113 }
jump_man 0:3fb966466a8d 114
jump_man 2:3232132ce1ea 115 void GUI::getSunAngle()
jump_man 2:3232132ce1ea 116 {
khaiminhvn 4:4643a545bcf9 117 ws->send("{\"topic\":\"getSunPosition\"}");
jump_man 2:3232132ce1ea 118 }
jump_man 2:3232132ce1ea 119
jump_man 2:3232132ce1ea 120