test recieve

Dependencies:   libxDot-mbed5 ISL29011

Fork of Dot-Examples by MultiTech

Files at this revision

API Documentation at this revision

Comitter:
Mike Fiore
Date:
Tue Oct 11 16:33:45 2016 -0500
Parent:
14:19fae4509473
Child:
16:a3832552dfe1
Commit message:
disable ACKs and enable network link checks for OTA and AUTO_OTA examples

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/dot_util.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
--- a/examples/inc/dot_util.h	Tue Oct 11 13:53:32 2016 -0500
+++ b/examples/inc/dot_util.h	Tue Oct 11 16:33:45 2016 -0500
@@ -20,6 +20,8 @@
 
 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 update_network_link_check_config(uint8_t link_check_count, uint8_t link_check_threshold);
+
 void join_network();
 
 void sleep_wake_rtc_only(bool deepsleep);
--- a/examples/src/auto_ota_example.cpp	Tue Oct 11 13:53:32 2016 -0500
+++ b/examples/src/auto_ota_example.cpp	Tue Oct 11 16:33:45 2016 -0500
@@ -16,7 +16,7 @@
 static uint8_t network_key[] = { 0x1F, 0x33, 0xA1, 0x70, 0xA5, 0xF1, 0xFD, 0xA0, 0xAB, 0x69, 0x7A, 0xAE, 0x2B, 0x95, 0x91, 0x6B };
 static uint8_t frequency_sub_band = 0;
 static bool public_network = false;
-static uint8_t ack = 1;
+static uint8_t ack = 0;
 
 // deepsleep consumes slightly less current than sleep
 // in sleep mode, IO state is maintained, RAM is retained, and application will resume after waking up
@@ -72,6 +72,13 @@
         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);
     
+        // configure network link checks
+        // network link checks are a good alternative to requiring the gateway to ACK every packet and should allow a single gateway to handle more Dots
+        // check the link every count packets
+        // declare the Dot disconnected after threshold failed link checks
+        // for count = 3 and threshold = 5, the Dot will be considered disconnected after 15 missed packets in a row
+        update_network_link_check_config(3, 5);
+
         // save changes to configuration
         logInfo("saving configuration");
         if (!dot->saveConfig()) {
--- a/examples/src/dot_util.cpp	Tue Oct 11 13:53:32 2016 -0500
+++ b/examples/src/dot_util.cpp	Tue Oct 11 16:33:45 2016 -0500
@@ -251,6 +251,25 @@
     }
 }
 
+void update_network_link_check_config(uint8_t link_check_count, uint8_t link_check_threshold) {
+    uint8_t current_link_check_count = dot->getLinkCheckCount();
+    uint8_t current_link_check_threshold = dot->getLinkCheckThreshold();
+
+    if (current_link_check_count != link_check_count) {
+	logInfo("changing link check count from %u to %u", current_link_check_count, link_check_count);
+	if (dot->setLinkCheckCount(link_check_count) != mDot::MDOT_OK) {
+	    logError("failed to set link check count to %u", link_check_count);
+	}
+    }
+
+    if (current_link_check_threshold != link_check_threshold) {
+	logInfo("changing link check threshold from %u to %u", current_link_check_threshold, link_check_threshold);
+	if (dot->setLinkCheckThreshold(link_check_threshold) != mDot::MDOT_OK) {
+	    logError("failed to set link check threshold to %u", link_check_threshold);
+	}
+    }
+}
+
 void join_network() {
     int32_t j_attempts = 0;
     int32_t ret = mDot::MDOT_ERROR;
--- a/examples/src/ota_example.cpp	Tue Oct 11 13:53:32 2016 -0500
+++ b/examples/src/ota_example.cpp	Tue Oct 11 16:33:45 2016 -0500
@@ -16,7 +16,7 @@
 static uint8_t network_key[] = { 0x1F, 0x33, 0xA1, 0x70, 0xA5, 0xF1, 0xFD, 0xA0, 0xAB, 0x69, 0x7A, 0xAE, 0x2B, 0x95, 0x91, 0x6B };
 static uint8_t frequency_sub_band = 0;
 static bool public_network = false;
-static uint8_t ack = 1;
+static uint8_t ack = 0;
 
 // deepsleep consumes slightly less current than sleep
 // in sleep mode, IO state is maintained, RAM is retained, and application will resume after waking up
@@ -70,6 +70,13 @@
         // 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);
+
+        // configure network link checks
+        // network link checks are a good alternative to requiring the gateway to ACK every packet and should allow a single gateway to handle more Dots
+        // check the link every count packets
+        // declare the Dot disconnected after threshold failed link checks
+        // for count = 3 and threshold = 5, the Dot will be considered disconnected after 15 missed packets in a row
+        update_network_link_check_config(3, 5);
     
         // save changes to configuration
         logInfo("saving configuration");