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

Dependencies:   BME280 SI1145 mbed

Revision:
2:dd4d53687372
Parent:
1:d0db255b07a8
Child:
3:07fd499e96b4
--- a/main.cpp	Tue Jul 18 15:08:42 2017 +0000
+++ b/main.cpp	Tue Jul 18 20:34:59 2017 +0000
@@ -17,17 +17,24 @@
 #define tx (PA_9)
 #define rx (PA_10)
 
+// Declare Noise Sensor Stuff
+#define noise_pin (PA_1)
+
+Timer t;
+
 const char nodeID = '1';
 
 // I/O Delarations
 I2C i2c(I2C_SDA, I2C_SCL); // D4, D5 
 BME280 *thp_sensor = new BME280(i2c);
 SI1145 *uiv_sensor = new SI1145(i2c);
+AnalogIn adc_noise(noise_pin);
+
 
 // Declare the PIR interface
 InterruptIn PIR_sensor(PA_5);
 Ticker pir_timer;
-bool pir_enable = true;
+bool pir_enable = false;
 bool pir_trigger = false;
 
 // Declare Serial Interfaces
@@ -43,7 +50,7 @@
 }
 
 void SendPirFlag(){
-    if(xb.writeable() && pir_enable){
+    if(xb.writeable() && pir_enable){  
         xb.printf("ni:%c,mo:1\r\n",nodeID);
         pc.printf("ni:%c,mo:1\r\n",nodeID);
         pir_trigger = false;
@@ -89,10 +96,15 @@
     int ir = 6;
     int vis = 7;
     int noise = 8;
+    t.reset();
+    
+    int wait_times[32];
     
     bool send_enable = false;
             
     while(true){
+        //pc.printf("top of loop \r\n");
+        
         // Debug Controls Input
         if(pc.readable()){
             pc_data = pc.getc();
@@ -100,29 +112,48 @@
             if(xb.writeable()){xb.printf("%c", pc_data);}
         }
         
-        if(xb.readable()){
+        // First Message: "id:1,____"
+        // char test_char;
+        // "123456789"
+        // "12345 78 "
+        /*
+        while(true){
+            //test_char = xb.getc();
             
-            wait(0.01);
-            pc.printf("before the read loop\r\n");
+            //pc.printf("%c,%d\r\n", test_char, test_char);
+            pc.printf("%c\r\n", xb.getc());
+            
+        }
+        */
+        
+        
+        
+        
+        if(xb.readable()){
+            pc.printf("=========================================\r\n");
             
             for(int i = 0; i < sizeof(buffer); i++){
+                t.start();
+                while(!xb.readable()){
+                // DO NOTHING
+                    //wait(0.01);
+                    //pc.printf("XBee no read\r\n");
+                }
                 buffer[i] = xb.getc();
+                t.stop();
+                wait_times[i] = t.read_ms();
+                t.reset();
             }
             
-            /*
-            // Try a while(readable()) loop to read stuff
-            int j = 0;
-            while(xb.readable() && j < 10){
-                wait(0.01);
-                buffer[j] = xb.getc();
-                
-                j = j+1;
-            }
-            */
             pc.printf("after the read loop\r\n");
             
+            for(int i = 0; i < sizeof(buffer); i++){
+                pc.printf("%c, t = %i\r\n",buffer[i],wait_times[i]);
+                
+            }
+            
             // Print out a bunch of stuff
-            pc.printf("=========================================\r\n");
+            
             // Print out received message in char and int format 
             pc.printf("RECV: ");
             for(int i = 1; i < sizeof(buffer); i++){
@@ -151,6 +182,8 @@
             }
             
             memset(buffer, '\0', sizeof(buffer));
+            
+            pc.printf("*****************************************\r\n");
         }
         
         // Take in new measurements
@@ -164,7 +197,7 @@
         ir = uiv_sensor->getIR(); // Reads from the SI1145
         vis = uiv_sensor->getVIS(); // Reads from the SI1145
         
-        noise = 404;
+        noise = adc_noise.read();
         
         // Transmit over the xbee if possible and necessary
         if(xb.writeable() && send_enable){
@@ -172,6 +205,7 @@
             send_enable = false;
         }
         
+        //pc.printf("bottom of loop \r\n");
     }
 }