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
Diff: main.cpp
- 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(); // }