mbed Connector Endpoint interface. This interface permits a mbed endpoint to easily setup MDS resources and emit those resources to an MDS server.

Dependents:   IoT_LED_demo ServoTest uWater_Project hackathon ... more

Revision:
3:11b2f4e58378
Parent:
2:853f9ecc12df
Child:
4:84159d67d32d
--- a/api/Utils.cpp	Tue Jan 27 23:41:34 2015 +0000
+++ b/api/Utils.cpp	Wed Jan 28 11:52:09 2015 +0000
@@ -28,20 +28,59 @@
 Connector::Options *configure_endpoint(Connector::OptionsBuilder &builder);
 extern Logger logger;
 
+// ************************* NSDL Linkage - MDS CONFIGURATION (defaulted) *********************************
+
+uint8_t NSP_address_bytes[NSP_IP_ADDRESS_LENGTH] = NSP_IP_ADDRESS;          // which MDS instance we want to bind to...
+uint8_t endpoint_name[24] = NODE_NAME;                                      // our NODE name
+uint8_t ep_type[] = NSP_ENDPOINT_TYPE;                                      // our NODE type
+uint8_t lifetime_ptr[] = { NSP_LIFE_TIME };                                 // MDS lifetime
+uint8_t app_MAC_address[NODE_MAC_ADDRESS_LENGTH] = NODE_MAC_ADDRESS;        // Node MAC address
+uint32_t channel_list = NODE_CHANNEL_LIST;                                  // Node RF Channel list
+
+// ************************* NSDL Linkage - MDS CONFIGURATION (defaulted)  *********************************
+
+
 // further simplifies the endpoint main() configuration by removing the final initialization details of the endpoint...
 void configure_endpoint()
-{
-    Connector::OptionsBuilder builder;
-    Connector::Options *options = configure_endpoint(builder);
+{    
+    // NSP/NSDL default configuration - see mbedConnectorInterface.h for definitions...
+    logger.log("configure_endpoint: setting defaults...");
+    Connector::OptionsBuilder config;
+    config.setNSPAddress(NSP_address_bytes);
+    config.setNSPPortNumber(NSP_COAP_UDP_PORT);
+    config.setDomain(NSP_DOMAIN);
+    config.setEndpointType(NSP_ENDPOINT_TYPE);
+    config.setLifetime(NSP_LIFE_TIME);
+    
+    // Node default configuration - see mbedConnectorInterface.h for definitions...
+    config.setRadioChannelList(NODE_CHANNEL_LIST);
+    config.setReadUpdatePeriod(NSP_RD_UPDATE_PERIOD);
+    config.setEndpointNodename(NODE_NAME); 
+    config.setMACAddress(app_MAC_address);   
+    
+    // main.cpp can override or change any of the above defaults...
+    logger.log("configure_endpoint: enabling default configuration overrides...");
+    Connector::Options *options = configure_endpoint(config);
+    
+    uint8_ t *tmp = options->getNSPAddress();
+    
+    // with options, lets set the underlying NSDL globals...
+    logger.log("configure_endpoint: updating external NSDL globals...");
+    NSP_address_bytes = options->getNSPAddress();
+    endpoint_name = options->getEndpointNodename();
+    ep_type = options->getEndpointType();
+    lifetime_ptr = options->getLifetime();
+    app_MAC_address = options->getMACAddress();
+    channel_list = options->getRadioChannelList();
 
-    // alloc Endpoint resource
-    logger.log("configure_endpoint: allocating endpoint...\r\n");
+    // alloc Endpoint
+    logger.log("configure_endpoint: allocating endpoint...");
     Connector::Endpoint endpoint(&logger,options);
 
-    // initialize Endpoint resource
-    logger.log("configure_endpoint: initializing endpoint...\r\n");
+    // initialize Endpoint resources
+    logger.log("configure_endpoint: binding endpoint resources...");
     endpoint.initialize();
 
     // DONE
-    logger.log("configure_endpoint: completed\r\n");
+    logger.log("configure_endpoint: endpoint setup complete.");
 }