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

Committer:
andcor02
Date:
Thu Jul 16 13:28:49 2015 +0000
Revision:
46:807e9cf63f4c
Parent:
38:9066ab490386
Added Serial VCOM debug over USB.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
erigow01 26:4cac6b346e4f 1 #include "mbed.h"
erigow01 26:4cac6b346e4f 2 #include "nsdl_support.h"
erigow01 26:4cac6b346e4f 3 #include "nsdl_dbg.h"
erigow01 26:4cac6b346e4f 4
erigow01 26:4cac6b346e4f 5 #include "node_cfg.h"
erigow01 26:4cac6b346e4f 6
erigow01 26:4cac6b346e4f 7 #include "door_trip.h"
erigow01 26:4cac6b346e4f 8 #include "height.h"
erigow01 27:6017a643f386 9 #include "presence_resource.h"
erigow01 26:4cac6b346e4f 10 #include "temperature.h"
erigow01 26:4cac6b346e4f 11 #include "sound_level.h"
erigow01 26:4cac6b346e4f 12
erigow01 26:4cac6b346e4f 13
erigow01 26:4cac6b346e4f 14 // ****************************************************************************
erigow01 26:4cac6b346e4f 15 // Configuration section
erigow01 26:4cac6b346e4f 16
erigow01 26:4cac6b346e4f 17 // NSP configuration
erigow01 26:4cac6b346e4f 18 /* Change this IP address to that of your NanoService Platform installation */
erigow01 26:4cac6b346e4f 19 uint8_t NSP_address_bytes[] = NSP_IP_ADDRESS_BYTES;
erigow01 26:4cac6b346e4f 20
erigow01 32:c957a1948ac1 21 uint8_t endpoint_name[30] = NODE_NAME;
erigow01 26:4cac6b346e4f 22 uint8_t ep_type[] = ENDPOINT_TYPE;
erigow01 26:4cac6b346e4f 23 uint8_t lifetime_ptr[] = LIFE_TIME;
erigow01 26:4cac6b346e4f 24
erigow01 26:4cac6b346e4f 25 // ****************************************************************************
erigow01 26:4cac6b346e4f 26 // Resource creation
erigow01 26:4cac6b346e4f 27
erigow01 26:4cac6b346e4f 28 static int create_resources()
erigow01 26:4cac6b346e4f 29 {
erigow01 26:4cac6b346e4f 30 sn_nsdl_resource_info_s *resource_ptr = NULL;
erigow01 26:4cac6b346e4f 31 sn_nsdl_ep_parameters_s *endpoint_ptr = NULL;
erigow01 26:4cac6b346e4f 32
erigow01 26:4cac6b346e4f 33 NSDL_DEBUG("Creating resources");
erigow01 26:4cac6b346e4f 34
erigow01 26:4cac6b346e4f 35 /* Create resources */
erigow01 26:4cac6b346e4f 36 resource_ptr = (sn_nsdl_resource_info_s*)nsdl_alloc(sizeof(sn_nsdl_resource_info_s));
erigow01 26:4cac6b346e4f 37 if(!resource_ptr)
erigow01 26:4cac6b346e4f 38 return 0;
erigow01 26:4cac6b346e4f 39 memset(resource_ptr, 0, sizeof(sn_nsdl_resource_info_s));
erigow01 26:4cac6b346e4f 40
erigow01 26:4cac6b346e4f 41 resource_ptr->resource_parameters_ptr = (sn_nsdl_resource_parameters_s*)nsdl_alloc(sizeof(sn_nsdl_resource_parameters_s));
erigow01 26:4cac6b346e4f 42 if(!resource_ptr->resource_parameters_ptr)
erigow01 26:4cac6b346e4f 43 {
erigow01 26:4cac6b346e4f 44 nsdl_free(resource_ptr);
erigow01 26:4cac6b346e4f 45 return 0;
erigow01 26:4cac6b346e4f 46 }
erigow01 26:4cac6b346e4f 47 memset(resource_ptr->resource_parameters_ptr, 0, sizeof(sn_nsdl_resource_parameters_s));
erigow01 26:4cac6b346e4f 48
erigow01 26:4cac6b346e4f 49 // Static resources
erigow01 26:4cac6b346e4f 50 nsdl_create_static_resource(resource_ptr, sizeof("dev/mfg")-1, (uint8_t*) "dev/mfg", 0, 0, (uint8_t*) "ARM mbed", sizeof("ARM mbed")-1);
erigow01 26:4cac6b346e4f 51 nsdl_create_static_resource(resource_ptr, sizeof("dev/mdl")-1, (uint8_t*) "dev/mdl", 0, 0, (uint8_t*) "Ethernet node", sizeof("Ethernet node")-1);
erigow01 26:4cac6b346e4f 52
erigow01 26:4cac6b346e4f 53 // Dynamic resources
erigow01 26:4cac6b346e4f 54 #if NODE_SENSOR_STATION
erigow01 26:4cac6b346e4f 55 create_temperature_resource(resource_ptr);
erigow01 26:4cac6b346e4f 56 create_sound_level_resource(resource_ptr);
erigow01 26:4cac6b346e4f 57 #if NODE_KIOSK_STATION
erigow01 27:6017a643f386 58 create_presence_resource(resource_ptr);
erigow01 26:4cac6b346e4f 59 #elif NODE_HEIGHT_STATION
erigow01 26:4cac6b346e4f 60 create_height_resource(resource_ptr);
erigow01 26:4cac6b346e4f 61 #endif
erigow01 26:4cac6b346e4f 62 #if NODE_DOOR_TRIP_STATION
erigow01 26:4cac6b346e4f 63 create_door_trip_resource(resource_ptr);
erigow01 26:4cac6b346e4f 64 #endif
erigow01 26:4cac6b346e4f 65 #if NODE_PIR_STATION
erigow01 27:6017a643f386 66 create_presence_resource(resource_ptr);
erigow01 26:4cac6b346e4f 67 #endif
erigow01 26:4cac6b346e4f 68 #endif
erigow01 26:4cac6b346e4f 69
erigow01 26:4cac6b346e4f 70 /* Register with NSP */
erigow01 38:9066ab490386 71 // endpoint_ptr = nsdl_init_register_endpoint(endpoint_ptr, (uint8_t*)endpoint_name, ep_type, lifetime_ptr);
erigow01 38:9066ab490386 72 // if(sn_nsdl_register_endpoint(endpoint_ptr) != 0)
erigow01 38:9066ab490386 73 // printf("NSP registering failed\r\n");
erigow01 38:9066ab490386 74 // else
erigow01 38:9066ab490386 75 // printf("NSP registering OK\r\n");
erigow01 38:9066ab490386 76 // nsdl_clean_register_endpoint(&endpoint_ptr);
erigow01 26:4cac6b346e4f 77
erigow01 26:4cac6b346e4f 78 nsdl_free(resource_ptr->resource_parameters_ptr);
erigow01 26:4cac6b346e4f 79 nsdl_free(resource_ptr);
erigow01 26:4cac6b346e4f 80 return 1;
erigow01 26:4cac6b346e4f 81 }
erigow01 26:4cac6b346e4f 82
erigow01 26:4cac6b346e4f 83 // ****************************************************************************
erigow01 26:4cac6b346e4f 84 // Program entry point
erigow01 26:4cac6b346e4f 85 // this modified to startup as an option in the Wi-Go demo
erigow01 26:4cac6b346e4f 86
erigow01 26:4cac6b346e4f 87 void nsdl_run()
erigow01 26:4cac6b346e4f 88 {
erigow01 26:4cac6b346e4f 89
erigow01 26:4cac6b346e4f 90 NSDL_DEBUG("ARM NSP Init\r\n");
erigow01 26:4cac6b346e4f 91
erigow01 26:4cac6b346e4f 92 // Initialize NSDL stack
erigow01 26:4cac6b346e4f 93 nsdl_init();
erigow01 26:4cac6b346e4f 94
erigow01 26:4cac6b346e4f 95 // Create NSDL resources
erigow01 26:4cac6b346e4f 96 create_resources();
erigow01 26:4cac6b346e4f 97
erigow01 26:4cac6b346e4f 98 }