PIR still blocked by the XBee reading. Audio sensor not configured yet.

Dependencies:   BME280 SI1145 mbed

Revision:
4:7335cd74f3bc
Parent:
3:07fd499e96b4
Child:
5:0e4d19f6ba45
--- a/main.cpp	Tue Jul 18 22:26:52 2017 +0000
+++ b/main.cpp	Tue Jul 18 23:23:52 2017 +0000
@@ -23,8 +23,11 @@
 Timer t;
 
 const char nodeID = '1';
+
+// RX declarations
 uint8_t rx_buffer[64];
 bool rx_flag = false;
+int rx_index = 0;
 
 
 // I/O Delarations
@@ -81,8 +84,23 @@
 }
 
 void rx_read_callback(){
-    rx_flag = true;
-    pc.printf("%c", xb.getc());
+    char c = xb.getc();
+    
+    if(c == '\n'){
+        rx_index++;
+        rx_flag = true;
+        rx_index = 0;
+        pc.printf(" EOM \r\n");
+    } else {
+        pc.printf("%c", c);        
+        rx_buffer[rx_index] = c;
+        rx_index++;
+    } 
+    
+    if(rx_index > 63){
+        rx_index = 0;
+    }
+    
 }
 
 int main() {
@@ -108,11 +126,7 @@
     int noise = 8;
     t.reset();
     
-    int wait_times[32];
-    
     bool send_enable = false;
-    
-    char read_char;
             
     while(true){
         //pc.printf("top of loop \r\n");
@@ -124,15 +138,34 @@
             if(xb.writeable()){xb.printf("%c", pc_data);}
         }
         
+        /* Handle the received data
+         * Execute only when the full message has been received.
+         * 
+         * 
+         * 
+         */
         if(rx_flag){
-            pc.printf("hello");
+            pc.printf("IND:  0123456789ABCDEF\r\n"); // Show indices
+            pc.printf("RECV: %s\r\n", rx_buffer); // Show received message
+            rx_flag = false;
             
-            if(xb.readable()){
-                pc.printf("%c",xb.getc());
+            if(rx_buffer[3] == nodeID){
+                send_enable = true;
+            } else {
+                pc.printf("Target: NODE %c\r\n", rx_buffer[3]);
             }
             
-            pc.printf("goodbye");
-            rx_flag = false;
+            if(rx_buffer[5] == 'm' && rx_buffer[6] == 's'){
+                send_enable = false;
+                if(rx_buffer[8] == '1'){
+                    pir_enable = true;
+                    pc.printf("PIR enabled\r\n");
+                } else {
+                    pir_enable = false;
+                    pc.printf("PIR disabled\r\n");
+                }
+            }
+            memset(rx_buffer, '\0', sizeof(rx_buffer));
         }