mbed Sensor node for Instrumented Booth over ETH.

Dependencies:   EthernetInterface-1 MaxbotixDriver Presence HTU21D_TEMP_HUMID_SENSOR_SAMPLE Resources SHARPIR mbed-rtos mbed-src WDT_K64F nsdl_lib

Fork of Trenton_Switch_LPC1768_ETH by Demo Team

Revision:
27:6017a643f386
Parent:
26:4cac6b346e4f
Child:
29:9599a156f78b
--- a/main.cpp	Wed Dec 03 15:39:09 2014 +0000
+++ b/main.cpp	Wed Dec 03 17:33:34 2014 +0000
@@ -57,7 +57,7 @@
 
 
 /* The number of seconds between NSDL Ticks*/
-#define NSDL_TICK_PERIOD  1
+#define NSDL_TICK_PERIOD_MS  1000
 
 void main_event_loop() {    
     //For timing control
@@ -65,12 +65,24 @@
     Timer registrationTimer;
     
     //Sensor timers...
+    #if NODE_SENSOR_STATION
     Timer temperatureReportTimer;
     Timer microphoneSampleTimer;
     Timer microphoneReportTimer;
-    Timer doorTripReportTimer;
+    #if NODE_PIR_STATION
     Timer motionReportTimer;
+    #endif //NODE PIR STATION
+    #if NODE_KIOSK_STATION
+    Timer kioskReportTimer;
+    #endif //NODE KIOSK STATION
+    #if NODE_DOOR_TRIP_STATION
+    Timer doorTripReportTimer;
+    #endif //NODE TRIP STATION
+    #if NODE_HEIGHT_STATION
     
+    #endif //NODE HEIGHT STATION
+    #endif //NODE_SENSOR_STATION
+       
     //For recieving NSP messages
     sn_nsdl_addr_s received_packet_address;
     uint8_t received_address[4];
@@ -86,19 +98,32 @@
     int32_t time = 0;
     
     //Start Timers
+
     nsdlTickTimer.start();
     registrationTimer.start();
+    #if NODE_SENSOR_STATION
     temperatureReportTimer.start();
     microphoneSampleTimer.start();
     microphoneReportTimer.start();
+    #if NODE_PIR_STATION
+    motionReportTimer.start();
+    #endif //NODE PIR STATION
+    #if NODE_KIOSK_STATION
+    kioskReportTimer.start();
+    #endif //NODE KIOSK STATION
+    #if NODE_DOOR_TRIP_STATION
     doorTripReportTimer.start();
-    motionReportTimer.start();
+    #endif //NODE TRIP STATION
+    #if NODE_HEIGHT_STATION
+    
+    #endif //NODE HEIGHT STATION
+    #endif //NODE_SENSOR_STATION
+
     while(true) {
         //UDP Packet Receive...
         n = server.receiveFrom(from, buffer, sizeof(buffer));
-        if (n < 0) {
+        if (n <= 0) {
             //No Data
-            //printf("Socket error\n\r");
         } else { 
             //UDP
             //wait(0.25); //Waiting seems to increase reliability of comms...
@@ -109,52 +134,56 @@
         }
         
         //NSDL Tick
-        if(nsdlTickTimer.read() >= NSDL_TICK_PERIOD) {
+        if(nsdlTickTimer.read_ms() >= NSDL_TICK_PERIOD_MS) {
             sn_nsdl_exec(time);
             nsdlTickTimer.reset();
         }
                  
         //Registration Tick
-        if(registrationTimer.read() >= RD_UPDATE_PERIOD) {
+        if(registrationTimer.read_ms() >= RD_UPDATE_PERIOD_MS) {
             printf("Time to register...\r\n");                                    
             NSP_registration();
             registrationTimer.reset();
         }
         
         #if NODE_SENSOR_STATION
-        if (temperatureReportTimer.read() >= TEMPERATURE_REPORT_PERIOD){
+        if (temperatureReportTimer.read_ms() >= TEMPERATURE_REPORT_PERIOD_MS){
             //debug("Event: Temperature Report Timer\r\n");
             handle_temperature_report_timer();
             temperatureReportTimer.reset();
         }
-        if (microphoneSampleTimer.read() >= SOUND_SAMPLE_PERIOD){
+        if (microphoneSampleTimer.read_ms() >= SOUND_SAMPLE_PERIOD_MS){
             handle_microphone_sample_timer();
             microphoneSampleTimer.reset();
         }
-        if (microphoneReportTimer.read() >= SOUND_REPORT_PERIOD){
+        if (microphoneReportTimer.read_ms() >= SOUND_REPORT_PERIOD_MS){
             //debug("Event: Sound Report Timer\r\n");
             handle_microphone_report_timer();
             microphoneReportTimer.reset();
         }
         #if NODE_PIR_STATION
-        if (motionReportTimer.read() >= MOTION_REPORT_PERIOD){
+        if (motionReportTimer.read_ms() >= MOTION_REPORT_PERIOD_MS){
             //debug("Event: Motion Report Timer\r\n");
             handle_motion_report_timer();
             motionReportTimer.reset();
         }
         #endif //NODE PIR STATION
         #if NODE_KIOSK_STATION
-        
+        if (kioskReportTimer.read_ms() >= KIOSK_REPORT_PERIOD_MS){
+            //debug("Event: Motion Report Timer\r\n");
+            handle_kiosk_report_timer();
+            kioskReportTimer.reset();
+        }
         #endif //NODE KIOSK STATION
         #if NODE_DOOR_TRIP_STATION
-        if (doorTripReportTimer.read() >= DOOR_TRIP_REPORT_PERIOD){
+        if (doorTripReportTimer.read_ms() >= DOOR_TRIP_REPORT_PERIOD_MS){
             //debug("Event: Door Trip Report Timer\r\n");
             handle_door_trip_report_timer();
             doorTripReportTimer.reset();
         }
         #endif //NODE TRIP STATION
         #if NODE_HEIGHT_STATION
- //       if (temperatureReportTimer.read() >= TEMPERATURE_REPORT_PERIOD){
+ //       if (temperatureReportTimer.read_ms() >= TEMPERATURE_REPORT_PERIOD_MS){
 //            
 //            temperatureReportTimer.reset();
 //        }