Skeleton program for Federico's 4YP project.

Dependencies:   WebSocketClient WiflyInterface mbed messages

Fork of IoT_Ex by Damien Frost

Revision:
2:7abdaa5a9209
Parent:
1:4403f2ed1c1f
Child:
3:f20e114eb2ee
--- a/source/globals.cpp	Tue Oct 04 13:19:19 2016 +0000
+++ b/source/globals.cpp	Tue Oct 04 13:59:13 2016 +0000
@@ -21,6 +21,7 @@
 Serial          pc(USBTX, USBRX);
 InterruptIn     UIBut1(USER_BUTTON);
 Timer           DisplayTimer;
+DigitalOut      Led(LED1);
 
 WiflyInterface eth(D8, D2, D6, LED1, wifissid, wifipassword, WPA2);
 
@@ -131,22 +132,29 @@
 void ReceiveNetworkData(unsigned int * wifi_cmd, unsigned int * var, float * value){
     char msg_buffer[CHARMSGBUFF];
     char msg_buffer2[CHARMSGBUFF];
-    // Check for data on the websocket:
-    if(ws.readmsg(msg_buffer)){
-        INFO("Received: %s", msg_buffer);
-        sscanf(msg_buffer, "%d,%s", wifi_cmd, msg_buffer2);
-        if(*wifi_cmd == CHANGEVAR_WIFI_CMD){
-            // Get two more values:
-            sscanf(msg_buffer2, "%d,%f", var, value);
+    int resp;
+    if(IotStatus.CheckFlag(SF_SERVERCONNECTED)){
+        // Check for data on the websocket:
+        resp = ws.readmsg(msg_buffer);
+        if(resp == 1){
+            INFO("Received: %s", msg_buffer);
+            sscanf(msg_buffer, "%d,%s", wifi_cmd, msg_buffer2);
+            if(*wifi_cmd == CHANGEVAR_WIFI_CMD){
+                // Get two more values:
+                sscanf(msg_buffer2, "%d,%f", var, value);
+            }else{
+                // Get one:
+                sscanf(msg_buffer2, "%f", value);
+            }
+        }else if(resp == -1){
+            // Connection to the server is lost:
+            IotStatus.ClearFlag(SF_SERVERCONNECTED);
         }else{
-            // Get one:
-            sscanf(msg_buffer2, "%f", value);
+            //DBG("Did not receive anything :(\n\r");
+            *wifi_cmd = NO_WIFI_CMD;
+            *var = 0;
+            *value = 0.0f;
         }
-    }else{
-        //DBG("Did not receive anything :(\n\r");
-        *wifi_cmd = NO_WIFI_CMD;
-        *var = 0;
-        *value = 0.0f;
     }
     return;
 }