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
NSDL/nsdl_run.cpp@46:807e9cf63f4c, 2015-07-16 (annotated)
- 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?
User | Revision | Line number | New 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 | } |