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

Files at this revision

API Documentation at this revision

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

EthernetInterface.lib Show annotated file Show diff for this revision Revisions of this file
NSDL/nsdl_run.cpp Show annotated file Show diff for this revision Revisions of this file
NSDL/nsdl_support.cpp Show annotated file Show diff for this revision Revisions of this file
WDT_K64F.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
node_cfg.h Show annotated file Show diff for this revision Revisions of this file
--- 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"