Esta es la prueba con LoRa y el sensor de luz integrado en la placa.

Dependencies:   libxDot-mbed5 ISL29011

Files at this revision

API Documentation at this revision

Comitter:
Mike Fiore
Date:
Tue Oct 11 13:17:42 2016 -0500
Parent:
11:d2e31743433a
Child:
13:f1d1ef71b3c4
Commit message:
default configuration and session in each example when starting for the first time

Changed in this revision

examples/inc/dot_util.h Show annotated file Show diff for this revision Revisions of this file
examples/src/auto_ota_example.cpp Show annotated file Show diff for this revision Revisions of this file
examples/src/class_c_example.cpp Show annotated file Show diff for this revision Revisions of this file
examples/src/manual_example.cpp Show annotated file Show diff for this revision Revisions of this file
examples/src/ota_example.cpp Show annotated file Show diff for this revision Revisions of this file
examples/src/peer_to_peer_example.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/examples/inc/dot_util.h	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/inc/dot_util.h	Tue Oct 11 13:17:42 2016 -0500
@@ -18,6 +18,8 @@
 
 void update_manual_config(uint8_t *network_address, uint8_t *network_session_key, uint8_t *data_session_key, uint8_t frequency_sub_band, bool public_network, uint8_t ack);
 
+void update_peer_to_peer_config(uint8_t *network_address, uint8_t *network_session_key, uint8_t *data_session_key, uint32_t tx_frequency, uint8_t tx_datarate, uint8_t tx_power);
+
 void join_network();
 
 void sleep_wake_rtc_only(bool deepsleep);
--- a/examples/src/auto_ota_example.cpp	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/src/auto_ota_example.cpp	Tue Oct 11 13:17:42 2016 -0500
@@ -41,32 +41,39 @@
     
     dot = mDot::getInstance();
 
-    // make sure library logging is turned on
-    dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
+    if (!dot->getStandbyFlag()) {
+        // start from a well-known state
+        logInfo("defaulting Dot configuration");
+        dot->resetConfig();
+        dot->resetNetworkSession();
+
+        // make sure library logging is turned on
+        dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
 
-    // update configuration if necessary
-    // in AUTO_OTA mode the session is automatically saved, so saveNetworkSession and restoreNetworkSession are not needed
-    if (dot->getJoinMode() != mDot::AUTO_OTA) {
-        logInfo("changing network join mode to AUTO_OTA");
-        if (dot->setJoinMode(mDot::AUTO_OTA) != mDot::MDOT_OK) {
-            logError("failed to set network join mode to AUTO_OTA");
+        // update configuration if necessary
+        // in AUTO_OTA mode the session is automatically saved, so saveNetworkSession and restoreNetworkSession are not needed
+        if (dot->getJoinMode() != mDot::AUTO_OTA) {
+            logInfo("changing network join mode to AUTO_OTA");
+            if (dot->setJoinMode(mDot::AUTO_OTA) != mDot::MDOT_OK) {
+                logError("failed to set network join mode to AUTO_OTA");
+            }
         }
+        // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an ID and KEY
+        // only one method or the other should be used!
+        // network ID = crc64(network name)
+        // network KEY = cmac(network passphrase)
+        update_ota_config_name_phrase(network_name, network_passphrase, frequency_sub_band, public_network, ack);
+        //update_ota_config_id_key(network_id, network_key, frequency_sub_band, public_network, ack);
+    
+        // save changes to configuration
+        logInfo("saving configuration");
+        if (!dot->saveConfig()) {
+            logError("failed to save configuration");
+        }
+    
+        // display configuration
+        display_config();
     }
-    // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an EUI and KEY
-    // only one method or the other should be used!
-    // network ID = crc64(network name)
-    // network KEY = cmac(network passphrase)
-    update_ota_config_name_phrase(network_name, network_passphrase, frequency_sub_band, public_network, ack);
-    //update_ota_config_id_key(network_id, network_key, frequency_sub_band, public_network, ack);
-    
-    // save changes to configuration
-    logInfo("saving configuration");
-    if (!dot->saveConfig()) {
-        logError("failed to save configuration");
-    }
-    
-    // display configuration
-    display_config();
 
     while (true) {
         uint16_t light;
--- a/examples/src/class_c_example.cpp	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/src/class_c_example.cpp	Tue Oct 11 13:17:42 2016 -0500
@@ -112,7 +112,12 @@
     
     dot = mDot::getInstance();
 
-    // make sure library logging is turned on
+    // start from a well-known state
+    logInfo("defaulting Dot configuration");
+    dot->resetConfig();
+    dot->resetNetworkSession();
+
+        // make sure library logging is turned on
     dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
 
     // attach the custom events handler
@@ -125,7 +130,7 @@
             logError("failed to set network join mode to OTA");
         }
     }
-    // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an EUI and KEY
+    // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an ID and KEY
     // only one method or the other should be used!
     // network ID = crc64(network name)
     // network KEY = cmac(network passphrase)
@@ -150,10 +155,12 @@
     // display configuration
     display_config();
 
+#if defined(TARGET_XDOT_L151CC)
     // configure the ISL29011 sensor on the xDot-DK for continuous ambient light sampling, 16 bit conversion, and maximum range
     lux.setMode(ISL29011::ALS_CONT);
     lux.setResolution(ISL29011::ADC_16BIT);
     lux.setRange(ISL29011::RNG_64000);
+#endif 
 
     while (true) {
         uint16_t light;
--- a/examples/src/manual_example.cpp	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/src/manual_example.cpp	Tue Oct 11 13:17:42 2016 -0500
@@ -38,44 +38,50 @@
     
     dot = mDot::getInstance();
 
-    // make sure library logging is turned on
-    dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
+    if (!dot->getStandbyFlag()) {
+        // start from a well-known state
+        logInfo("defaulting Dot configuration");
+        dot->resetConfig();
+        dot->resetNetworkSession();
 
-    // update configuration if necessary
-    if (dot->getJoinMode() != mDot::MANUAL) {
-        logInfo("changing network join mode to MANUAL");
-        if (dot->setJoinMode(mDot::MANUAL) != mDot::MDOT_OK) {
-            logError("failed to set network join mode to MANUAL");
+        // make sure library logging is turned on
+        dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
+
+        // update configuration if necessary
+        if (dot->getJoinMode() != mDot::MANUAL) {
+            logInfo("changing network join mode to MANUAL");
+            if (dot->setJoinMode(mDot::MANUAL) != mDot::MDOT_OK) {
+                logError("failed to set network join mode to MANUAL");
+            }
         }
-    }
-    // in MANUAL join mode there is no join request/response transaction
-    // as long as the Dot is configured correctly and provisioned correctly on the gateway, it should be able to communicate
-    // network address - 4 bytes (00000001 - FFFFFFFE)
-    // network session key - 16 bytes
-    // data session key - 16 bytes
-    // to provision your Dot with a Conduit gateway, follow the following steps
-    //   * ssh into the Conduit
-    //   * provision the Dot using the lora-query application: http://www.multitech.net/developer/software/lora/lora-network-server/
-    //      lora-query -a 01020304 A 0102030401020304 <your Dot's device ID> 01020304010203040102030401020304 01020304010203040102030401020304
-    //   * if you change the network address, network session key, or data session key, make sure you update them on the gateway
-    // to provision your Dot with a 3rd party gateway, see the gateway or network provider documentation
-    update_manual_config(network_address, network_session_key, data_session_key, frequency_sub_band, public_network, ack);
+        // in MANUAL join mode there is no join request/response transaction
+        // as long as the Dot is configured correctly and provisioned correctly on the gateway, it should be able to communicate
+        // network address - 4 bytes (00000001 - FFFFFFFE)
+        // network session key - 16 bytes
+        // data session key - 16 bytes
+        // to provision your Dot with a Conduit gateway, follow the following steps
+        //   * ssh into the Conduit
+        //   * provision the Dot using the lora-query application: http://www.multitech.net/developer/software/lora/lora-network-server/
+        //      lora-query -a 01020304 A 0102030401020304 <your Dot's device ID> 01020304010203040102030401020304 01020304010203040102030401020304
+        //   * if you change the network address, network session key, or data session key, make sure you update them on the gateway
+        // to provision your Dot with a 3rd party gateway, see the gateway or network provider documentation
+        update_manual_config(network_address, network_session_key, data_session_key, frequency_sub_band, public_network, ack);
 
-    // save changes to configuration
-    logInfo("saving configuration");
-    if (!dot->saveConfig()) {
-        logError("failed to save configuration");
-    }
+        // save changes to configuration
+        logInfo("saving configuration");
+        if (!dot->saveConfig()) {
+            logError("failed to save configuration");
+        }
 
-    // restore the saved session if the dot woke from deepsleep mode
-    // useful to use with deepsleep because session info is otherwise lost when the dot enters deepsleep
-    if (dot->getStandbyFlag()) {
+        // display configuration
+        display_config();
+    } else {
+        // restore the saved session if the dot woke from deepsleep mode
+        // useful to use with deepsleep because session info is otherwise lost when the dot enters deepsleep
         logInfo("restoring network session from NVM");
         dot->restoreNetworkSession();
     }
     
-    // display configuration
-    display_config();
 
     while (true) {
         uint16_t light;
--- a/examples/src/ota_example.cpp	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/src/ota_example.cpp	Tue Oct 11 13:17:42 2016 -0500
@@ -41,39 +41,44 @@
     
     dot = mDot::getInstance();
 
-    // make sure library logging is turned on
-    dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
+    if (!dot->getStandbyFlag()) {
+        // start from a well-known state
+        logInfo("defaulting Dot configuration");
+        dot->resetConfig();
+        dot->resetNetworkSession();
 
-    // update configuration if necessary
-    if (dot->getJoinMode() != mDot::OTA) {
-        logInfo("changing network join mode to OTA");
-        if (dot->setJoinMode(mDot::OTA) != mDot::MDOT_OK) {
-            logError("failed to set network join mode to OTA");
+        // make sure library logging is turned on
+        dot->setLogLevel(mts::MTSLog::INFO_LEVEL);
+
+        // update configuration if necessary
+        if (dot->getJoinMode() != mDot::OTA) {
+            logInfo("changing network join mode to OTA");
+            if (dot->setJoinMode(mDot::OTA) != mDot::MDOT_OK) {
+                logError("failed to set network join mode to OTA");
+            }
         }
-    }
-    // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an EUI and KEY
-    // only one method or the other should be used!
-    // network ID = crc64(network name)
-    // network KEY = cmac(network passphrase)
-    update_ota_config_name_phrase(network_name, network_passphrase, frequency_sub_band, public_network, ack);
-    //update_ota_config_id_key(network_id, network_key, frequency_sub_band, public_network, ack);
+        // in OTA and AUTO_OTA join modes, the credentials can be passed to the library as a name and passphrase or an ID and KEY
+        // only one method or the other should be used!
+        // network ID = crc64(network name)
+        // network KEY = cmac(network passphrase)
+        update_ota_config_name_phrase(network_name, network_passphrase, frequency_sub_band, public_network, ack);
+        //update_ota_config_id_key(network_id, network_key, frequency_sub_band, public_network, ack);
     
-    // save changes to configuration
-    logInfo("saving configuration");
-    if (!dot->saveConfig()) {
-        logError("failed to save configuration");
-    }
+        // save changes to configuration
+        logInfo("saving configuration");
+        if (!dot->saveConfig()) {
+            logError("failed to save configuration");
+        }
 
-    // restore the saved session if the dot woke from deepsleep mode
-    // useful to use with deepsleep because session info is otherwise lost when the dot enters deepsleep
-    if (dot->getStandbyFlag()) {
+        // display configuration
+        display_config();
+    } else {
+        // restore the saved session if the dot woke from deepsleep mode
+        // useful to use with deepsleep because session info is otherwise lost when the dot enters deepsleep
         logInfo("restoring network session from NVM");
         dot->restoreNetworkSession();
     }
 
-    // display configuration
-    display_config();
-
     while (true) {
         uint16_t light;
         std::vector<uint8_t> tx_data;
--- a/examples/src/peer_to_peer_example.cpp	Tue Oct 11 11:49:56 2016 -0500
+++ b/examples/src/peer_to_peer_example.cpp	Tue Oct 11 13:17:42 2016 -0500
@@ -111,6 +111,10 @@
     
     dot = mDot::getInstance();
 
+    // start from a well-known state
+    logInfo("defaulting Dot configuration");
+    dot->resetConfig();
+
     // make sure library logging is turned on
     dot->setLogLevel(mts::MTSLog::INFO_LEVEL);