Code APP3

Dependencies:   mbed EthernetInterface WebSocketClient mbed-rtos BufferedSerial

Fork of APP3_Lab by Jean-Philippe Fournier

Revision:
13:5f21dd134bd2
Parent:
12:1286b80c68f7
Child:
14:cd488eba8bba
--- a/main.cpp	Sun Oct 01 01:34:37 2017 +0000
+++ b/main.cpp	Sun Oct 01 16:34:11 2017 +0000
@@ -4,51 +4,61 @@
 #include "parser.h"
 #include "sensors.h"
 
-#define IS_COORDINATOR 1
+#define IS_COORDINATOR 0
 
 #define PAN_ID 0xC0FFEE
 
 #define BUFFER_SIZE 2048
 
-Serial pc(USBTX, USBRX); // tx, rx
+char recv_buff[BUFFER_SIZE] = {0};
+
+void set_remote_xbee_dio4(bool set);
 
-char recv_buff[BUFFER_SIZE] = {0};
+#if IS_COORDINATOR   
+void coordinator();
+#else
+void routeur();
+#endif
 
 int main() {
 
-    ReadFile();
     xbee_init();
 
-    char sensor_buffer[64] = {};
+#if IS_COORDINATOR    
+    coordinator();
+#else
+    routeur();
+#endif
+}
 
+void set_remote_xbee_dio4(bool set)
+{
+    if (set)
+    {
+        remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
+            AT_COMMAND_DIO_OUT_LOW, 0x02);
+    }
+    else
+    {
+        remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
+            AT_COMMAND_DIO_OUT_HIGH, 0x02);
+    }
+}
 
 #if IS_COORDINATOR
+void coordinator()
+{
+    
+    Serial pc(USBTX, USBRX); // tx, rx
+    coordinator_config_t config = read_coordinator_config();
+
     frame_t current_frame;
     bool toggle_led = false;
-    /*printf("Websocket Example v1.0.0\r\n");
-    EthernetInterface eth;
-    eth.init(); //[URL]//Use[/URL] DHCP
-    eth.connect();
-    printf("IP Address is %s\n\r", eth.getIPAddress());
 
-    Websocket ws("ws://sockets.mbed.org:443/ws/demo/rw");
-    ws.connect();
-
-    while (1) {
-        int res = ws.send("WebSocket Hello World!");    
-        wait(0.1);
-    }*/
-
-#else
-    initialize_sensors();
-    DECLARE_ADDR64_COORD
-    DECLARE_ADDR16_UNKNOWN_OR_BCAST
-#endif
-    while(1) {
-
-#if IS_COORDINATOR
+    while(1)
+    {
         bool finished_packet = receive(&current_frame, BUFFER_SIZE);
-    
+        
         if (finished_packet)
         {
             pc.printf("Data count = %u\r\n", current_frame.length);
@@ -58,27 +68,33 @@
                 pc.putc(current_frame.buffer[i]);            
             }
             pc.printf(" :::end\n\r");
-            
-            if (toggle_led)
-            {
-                remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
-                    AT_COMMAND_DIO_OUT_LOW, 0x02);
-            }
-            else
-            {
-                remote_at_command_set(AT_COMMAND_DIO4_MSB, AT_COMMAND_DIO4_LSB,
-                    AT_COMMAND_DIO_OUT_HIGH, 0x02);
-            }
-            toggle_led = !toggle_led;
         }
         
+        set_remote_xbee_dio4(toggle_led);
+        toggle_led = !toggle_led;
+
+        wait(1);
+    }
+}
 #else
+void routeur()
+{    
+    Serial pc(USBTX, USBRX); // tx, rx
+    router_config_t config = read_router_config();
+
+    char sensor_buffer[64] = {};
+    initialize_sensors();
+    DECLARE_ADDR64_COORD
+    DECLARE_ADDR16_UNKNOWN_OR_BCAST
+
+    while(1)
+    {
         SENSOR accel = (*p[0])();
         
         sprintf(sensor_buffer, "%3.2f%3.2f%3.2f", accel.Accelerometre.x, accel.Accelerometre.y, accel.Accelerometre.z);
 
         transmit_request(sensor_buffer, 15, 0, USE_ADDR64_COORD, USE_ADDR16_UNKNOWN_OR_BCAST);
-        wait(2);
-#endif        
+        wait(config.refresh_freq);
     }
 }
+#endif
\ No newline at end of file