Minimum proof of concept

Dependencies:   mbed BME280 SI1145

Files at this revision

API Documentation at this revision

Comitter:
jonathanyost
Date:
Thu Jul 06 22:49:39 2017 +0000
Parent:
10:1296cc169c60
Commit message:
asdf;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 1296cc169c60 -r 0c66b84f8553 main.cpp
--- a/main.cpp	Thu Jul 06 16:32:54 2017 +0000
+++ b/main.cpp	Thu Jul 06 22:49:39 2017 +0000
@@ -16,7 +16,6 @@
 #include "mbed.h"
 #include "BME280.h"
 #include "SI1145.h"
-//#include "MODSERIAL.h"
 
 // Define Constants / Macros
 #define node_id (0x01)
@@ -33,36 +32,39 @@
 // Declare the PIR interface
 InterruptIn MotionDetect(PA_0);
 bool pir_enable = true;
+bool pir_trigger = false;
 
 // Declare Serial Interfaces
-//Serial xb(tx, rx);
-//Serial pc(D1, D0);
-
 Serial xb(tx, rx);
 Serial pc(D1, D0);
 
 // send_sensor_data(temp, pressure, humidity, motion, uv, ir, vis, noise);
 // "id:2,te:2,pr:3,mo:4,uv:5,ir:6,vi:7,no:8"
 void SendSensorData(int t, int p, int h, int u, int ir, int v, int n){
-    //"        id:2, te:%2,pr:%3,uv:%5,ir:%6,vi:%7,no:%8"
+    //"               ni:XX, te:XX,pr:XX,hu:XX,uv:XX,ir:XX,vi:XX,no:XX"
     xb.printf(      ",ni:%d,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",1,t,p,h,u,ir,v,n);
-    pc.printf("send: id:%d,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",1,t,p,h,u,ir,v,n);
+    pc.printf("send:  ni:%d,te:%d,pr:%d,hu:%d,uv:%d,ir:%d,vi:%d,no:%d\n\r",1,t,p,h,u,ir,v,n);
 }
 
 void SendPirFlag(){
-    xb.printf("ni:%c,mo:1\r\n",nodeID);
+    if(xb.writeable() && pir_enable){
+        pir_trigger = false;
+        xb.printf("ni:%c,mo:1\r\n",nodeID);
+        pc.printf("ni:%c,mo:1\r\n",nodeID);
+    }
 }
 
 // PIR interrupt. Set the pir_trigger to true when interrupted.
 void PIR(void){
-    if(xb.writeable() && pir_enable){
+    pir_trigger = true;
+    if(pir_enable){
         SendPirFlag();
         pc.printf("PIR FLAG ISR\r\n");
     }
 }
 
 void initialize_serial_connections(){
-    xb.baud(57600); 
+    xb.baud(57600);
     pc.baud(115200);   
 }
 
@@ -91,22 +93,37 @@
         // Debug Controls Input
         if(pc.readable()){
             pc_data = pc.getc();
-            pc.printf("PC: %c", pc_data);
+            pc.printf("%c", pc_data);
             if(xb.writeable()){xb.printf("%c", pc_data);}
         }
         
-        // testing out using getc() instead of gets()
+        if(pir_enable && pir_trigger){
+            SendPirFlag();
+        }
         
         if(xb.readable()){
             wait(0.01);
             for(int i = 0; i < sizeof(buffer); i++){
                 buffer[i] = xb.getc();
-                pc.printf("%c", buffer[i]);
             }
-             
-            pc.printf("\r\n");
+            pc.printf("=========================================\r\n");
+            // Print out received message in char and int format 
             if(buffer[4] == nodeID){
                 send_enable = true;
+                pc.printf("RECV: ");
+                // Print out message (CHAR)
+                for(int i = 1; i < sizeof(buffer); i++){
+                    pc.printf("%c", buffer[i]);
+                }
+                pc.printf("\r\nRECV: ");
+                // Print out message (INT)
+                for(int i = 0; i < sizeof(buffer); i++){
+                    pc.printf("%i,", buffer[i]);
+                }
+                pc.printf("\r\n");
+            } else {
+                pc.printf("Ignore, Target Node: #%c\r\n", buffer[4]);
+                pc.printf("%s\r\n",buffer);
             }
             
             if(buffer[9] == '1'){
@@ -116,12 +133,6 @@
                 pir_enable = false;
                 pc.printf("pir_enable = false\r\n");
             }
-            pc.printf("RECV: ");
-            for(int i = 0; i < sizeof(buffer); i++){
-                pc.printf("%i,", buffer[i]);
-            }
-            
-            pc.printf("\r\n");
             memset(buffer, '\0', sizeof(buffer));
         }