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

Dependencies:   BME280 SI1145 mbed

Revision:
6:002e8a4809eb
Parent:
5:0e4d19f6ba45
Child:
7:5d217e208d3f
--- a/main.cpp	Wed Jul 26 13:22:03 2017 +0000
+++ b/main.cpp	Wed Jul 26 22:24:14 2017 +0000
@@ -20,12 +20,10 @@
 // Declare Noise Sensor Stuff
 #define noise_pin (PA_1)
 
-Timer t;
-
-const char nodeID = '3';
+const char nodeID = '2';
 
 // RX declarations
-uint8_t rx_buffer[64];
+uint8_t rx_buffer[128];
 bool rx_flag = false;
 int rx_index = 0;
 
@@ -38,8 +36,9 @@
 
 
 // Declare the PIR interface
-InterruptIn PIR_sensor(PA_5);
+InterruptIn PIR_sensor(PB_5);
 Ticker pir_timer;
+Ticker pir_send_timer;
 bool pir_enable = false;
 bool pir_trigger = false;
 
@@ -51,28 +50,31 @@
 void SendSensorData(int t, int p, int h, int u, int ir, int v, int n){
     //"               ni:XX, te:XX,pr:XX,hu:XX,uv:XX,ir:XX,vi:XX,no:XX"
     xb.printf(      ",ni:%c,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",nodeID,t,p,h,u,ir,v,n);
-    pc.printf("SEND: ,ni:%c,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",nodeID,t,p,h,u,ir,v,n);
+    pc.printf("  >> ,ni:%c,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",nodeID,t,p,h,u,ir,v,n);
 }
 
 void SendPirFlag(){
     if(xb.writeable() && pir_enable){  
         xb.printf("ni:%c,mo:1\r\n",nodeID);
-        pc.printf("ni:%c,mo:1\r\n",nodeID);
+        pc.printf("  >> ni:%c,mo:1\r\n",nodeID);
         pir_trigger = false;
     }
 }
 
 // PIR interrupt. Set the pir_trigger to true when interrupted.
 void PIR(void){
-    //pc.printf(" !! ");
-    pir_trigger = true;
+    
+    //pc.printf(" %d \r\n", PIR_sensor.read());
+    if(PIR_sensor.read() && !pir_trigger){
+        pc.printf("# \r\n");
+        pir_trigger = true;
+    }
 }
 
 // This method is attached to a timer
 void PIR_timed_send(){
-    if(pir_enable && pir_trigger){
+    if(pir_trigger){
         SendPirFlag();
-        pir_trigger = false;
     }
 }
 
@@ -83,19 +85,19 @@
 
 void rx_read_callback(){
     char c = xb.getc();
-    pc.printf("%c", c);
+    //pc.printf("%c", c);
     
     if(c == '\n'){
         rx_index++;
         rx_flag = true;
         rx_index = 0;
-        pc.printf(" EOM \r\n");
+        //pc.printf("EOM \r\n");
     } else {    
         rx_buffer[rx_index] = c;
         rx_index++;
     }
     
-    if(rx_index > 63){
+    if(rx_index > 127){
         rx_index = 0;
     }
     
@@ -103,15 +105,15 @@
 
 int main() {
     initialize_serial_connections();
-    memset(rx_buffer, '\0', 64);
+    memset(rx_buffer, '\0', 128);
     pc.printf("\n\rMic test 1-2, 1-2\n\r");
     
     xb.attach(&rx_read_callback, Serial::RxIrq);
     
-    // Attach the PIR function to interrupt
-    //PIR_sensor.rise(&PIR);
-    pir_timer.attach(&PIR_timed_send,3);
-    
+    // Attach the PIR function to ticker thing
+    pir_timer.attach(&PIR, 0.1);
+    pir_send_timer.attach(&PIR_timed_send, 1.5);
+     
     char pc_data = 'e';
         
     int temp = 1;
@@ -121,7 +123,6 @@
     int ir = 6;
     int vis = 7;
     int noise = 8;
-    t.reset();
     
     bool send_enable = false;
             
@@ -148,24 +149,24 @@
         noise = adc_noise.read();
         
         if(rx_flag){
-            pc.printf("IND:  0123456789ABCDEF\r\n"); // Show indices
-            pc.printf("RECV: %s\r\n", rx_buffer); // Show received message
+            //pc.printf("IND:  0123456789ABCDEF\r\n"); // Show indices
+            pc.printf("<<   %s\r\n", rx_buffer); // Show received message
             rx_flag = false;
             
             if(rx_buffer[3] == nodeID){
                 send_enable = true;
             } else {
-                pc.printf("Target: NODE %c\r\n", rx_buffer[3]);
+                //pc.printf("Target: NODE %c\r\n", rx_buffer[3]);
             }
             
             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");
+                    pc.printf("PIR on\r\n");
                 } else {
                     pir_enable = false;
-                    pc.printf("PIR disabled\r\n");
+                    pc.printf("PIR off\r\n");
                 }
             }
             memset(rx_buffer, '\0', sizeof(rx_buffer));