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
Revision 38:9066ab490386, committed 2014-12-18
- Comitter:
- erigow01
- Date:
- Thu Dec 18 08:55:33 2014 +0000
- Parent:
- 37:99422e2b1056
- Child:
- 39:9c1b17345678
- Commit message:
- Heartbeat ticks and some tweaks for reliability.
Changed in this revision
--- a/EthernetInterface.lib Tue Dec 16 12:26:35 2014 +0000 +++ b/EthernetInterface.lib Thu Dec 18 08:55:33 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/EthernetInterface/#de796e2a5e98 +http://mbed.org/users/mbed_official/code/EthernetInterface/#d1ccbed7687a
--- a/NSDL/nsdl_run.cpp Tue Dec 16 12:26:35 2014 +0000 +++ b/NSDL/nsdl_run.cpp Thu Dec 18 08:55:33 2014 +0000 @@ -68,12 +68,12 @@ #endif /* Register with NSP */ - endpoint_ptr = nsdl_init_register_endpoint(endpoint_ptr, (uint8_t*)endpoint_name, ep_type, lifetime_ptr); - if(sn_nsdl_register_endpoint(endpoint_ptr) != 0) - printf("NSP registering failed\r\n"); - else - printf("NSP registering OK\r\n"); - nsdl_clean_register_endpoint(&endpoint_ptr); +// endpoint_ptr = nsdl_init_register_endpoint(endpoint_ptr, (uint8_t*)endpoint_name, ep_type, lifetime_ptr); +// if(sn_nsdl_register_endpoint(endpoint_ptr) != 0) +// printf("NSP registering failed\r\n"); +// else +// printf("NSP registering OK\r\n"); +// nsdl_clean_register_endpoint(&endpoint_ptr); nsdl_free(resource_ptr->resource_parameters_ptr); nsdl_free(resource_ptr);
--- a/NSDL/nsdl_support.cpp Tue Dec 16 12:26:35 2014 +0000 +++ b/NSDL/nsdl_support.cpp Thu Dec 18 08:55:33 2014 +0000 @@ -136,10 +136,12 @@ sn_nsdl_ep_parameters_s *endpoint_ptr = NULL; endpoint_ptr = nsdl_init_register_endpoint(endpoint_ptr, (uint8_t*)endpoint_name, ep_type, lifetime_ptr); - if(sn_nsdl_register_endpoint(endpoint_ptr) != 0) + if(sn_nsdl_register_endpoint(endpoint_ptr) != 0) { printf("NSP re-registering failed\r\n"); - else + } else { printf("NSP re-registering OK\r\n"); + sn_nsdl_update_registration(endpoint_ptr); + } nsdl_clean_register_endpoint(&endpoint_ptr); }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WDT_K64F.lib Thu Dec 18 08:55:33 2014 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/loopsva/code/WDT_K64F/#70e99b5845fd
--- a/main.cpp Tue Dec 16 12:26:35 2014 +0000 +++ b/main.cpp Thu Dec 18 08:55:33 2014 +0000 @@ -18,16 +18,16 @@ #include "nsdl_support.h" #include "node_cfg.h" #include "sensor_ctl.h" +#include "rtos.h" - +#include "Watchdog.h" //Serial pc(USBTX, USBRX); - +#define WATCHDOG_TIMEOUT_SEC 30 //30 seconds +#define HEARTBEAT_PERIOD_MS 1000 //1 second... // Ethernet initialization - EthernetInterface eth; - static void ethernet_init() { /* Initialize network */ @@ -55,7 +55,6 @@ Endpoint nsp; - /* The number of seconds between NSDL Ticks*/ #define NSDL_TICK_PERIOD_MS 1000 @@ -63,6 +62,9 @@ //For timing control // Timer nsdlTickTimer; Timer registrationTimer; + #if HEART_BEAT + Timer heartBeatTimer; + #endif //Sensor timers... #if NODE_SENSOR_STATION @@ -101,6 +103,9 @@ // nsdlTickTimer.start(); registrationTimer.start(); + #if HEART_BEAT + heartBeatTimer.start(); + #endif //Heartbeat #if NODE_SENSOR_STATION temperatureReportTimer.start(); microphoneSampleTimer.start(); @@ -118,8 +123,13 @@ heightReportTimer.start(); #endif //NODE HEIGHT STATION #endif //NODE_SENSOR_STATION - + DigitalOut led2(LED2); + //Watchdog wdt; +// wdt.kick(WATCHDOG_TIMEOUT_SEC); + NSP_registration(); while(true) { + //Kick the watchdog... +// wdt.kick(); //UDP Packet Receive... n = server.receiveFrom(from, buffer, sizeof(buffer)); if (n <= 0) { @@ -145,7 +155,13 @@ NSP_registration(); registrationTimer.reset(); } - + #if HEART_BEAT + if (heartBeatTimer.read_ms() >= HEARTBEAT_PERIOD_MS){ + //Toggle heartbeat led... + led2 = !led2; + heartBeatTimer.reset(); + } + #endif //HEart Beat #if NODE_SENSOR_STATION if (temperatureReportTimer.read_ms() >= TEMPERATURE_REPORT_PERIOD_MS){ //debug("Event: Temperature Report Timer\r\n"); @@ -209,6 +225,7 @@ nsdl_run(); //Init Sensors init_sensors(); + // Run the event loop (never returns) main_event_loop();
--- a/node_cfg.h Tue Dec 16 12:26:35 2014 +0000 +++ b/node_cfg.h Thu Dec 18 08:55:33 2014 +0000 @@ -9,11 +9,12 @@ //Which Sensors #define NODE_SENSOR_STATION 1 // use K64F platform. Base sensor platform. Includes Microphone, temperature. -#define NODE_HEIGHT_STATION 1 // use K64F platform. This include door height sensor +#define NODE_HEIGHT_STATION 0 // use K64F platform. This include door height sensor #define NODE_KIOSK_STATION 0 // use K64F platform. This includes kiosk presence sensor -#define NODE_DOOR_TRIP_STATION 1 // use K64F platform. This includes door tripwire sensor +#define NODE_DOOR_TRIP_STATION 0 // use K64F platform. This includes door tripwire sensor #define NODE_PIR_STATION 0 // use K64F platform. This includes pir motion sensor +#define HEART_BEAT 1 // For debug... /*************** NODE PROFILE CONFIGURATION *****************/ @@ -45,8 +46,8 @@ //Ethernet Sensors... #define ENDPOINT_TYPE {"mbed-sensor-Ethernet"} -#define NODE_NAME "mbed-sensor-demo-door" -//#define NODE_NAME "mbed-sensor-demo-1" +//#define NODE_NAME "mbed-sensor-demo-door" +#define NODE_NAME "mbed-sensor-demo-1" //#define NODE_NAME "mbed-sensor-demo-2" //#define NODE_NAME "mbed-sensor-demo-3" //#define NODE_NAME "mbed-sensor-demo-4"