PIR still blocked by the XBee reading. Audio sensor not configured yet.
Dependencies: BME280 SI1145 mbed
Diff: main.cpp
- Revision:
- 2:dd4d53687372
- Parent:
- 1:d0db255b07a8
- Child:
- 3:07fd499e96b4
diff -r d0db255b07a8 -r dd4d53687372 main.cpp --- 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"); } }