]> granicus.if.org Git - esp-idf/commitdiff
mesh: update mesh libs
authorqiyueixa <qiyuexia@espressif.com>
Sat, 14 Apr 2018 16:53:08 +0000 (00:53 +0800)
committerbot <bot@espressif.com>
Tue, 17 Apr 2018 11:49:54 +0000 (11:49 +0000)
1. fix issues on sending beacon caused by too much tx retries on other packets.
2. modify not to scan if rc exists when connect.
3. modify scan dwell time to default 120ms fo root.

components/esp32/lib
examples/mesh/internal_transceiver/main/mesh_main.c

index 5fc06965e5eaa420dc69cbafd35235f508d6acea..04299f48a7a76609e86c72eb28c9bf53fce9e4fc 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 5fc06965e5eaa420dc69cbafd35235f508d6acea
+Subproject commit 04299f48a7a76609e86c72eb28c9bf53fce9e4fc
index 936a87da488e1c3082c5aed55545a4e0f0ddf20a..ceffbdd3c4c9b987b90e03fa5235a3e4e366fdbd 100644 (file)
@@ -32,7 +32,7 @@
  *                Variable Definitions
  *******************************************************/
 static const char *MESH_TAG = "mesh_main";
-static const uint8_t MESH_ID[6] = { 0x77, 0x77, 0x77, 0x77, 0x77, 0x77 };
+static const uint8_t MESH_ID[6] = { 0x77, 0x77, 0x77, 0x77, 0x77, 0x77};
 static uint8_t tx_buf[TX_SIZE] = { 0, };
 static uint8_t rx_buf[RX_SIZE] = { 0, };
 static bool is_running = true;
@@ -101,10 +101,10 @@ void esp_mesh_p2p_tx_main(void *arg)
     while (is_running) {
         /* normal nodes rather than root do nothing but print */
         if (!esp_mesh_is_root()) {
-            ESP_LOGI(MESH_TAG, "[layer:%d]%s%s[rtableSize:%d]", mesh_layer,
+            ESP_LOGI(MESH_TAG, "layer:%d, rtableSize:%d, %s%s", mesh_layer,
+                     esp_mesh_get_routing_table_size(),
                      is_mesh_connected ? "CONNECT" : "DISCONNECT",
-                     esp_mesh_is_root() ? "<ROOT>" : "[NODE]",
-                     esp_mesh_get_routing_table_size())
+                     esp_mesh_is_root() ? "<ROOT>" : "[NODE]")
             vTaskDelay(10 * 1000 / portTICK_RATE_MS);
             continue;
         }
@@ -149,7 +149,9 @@ void esp_mesh_p2p_tx_main(void *arg)
                          err, data.proto, data.tos)
             }
         }
-        vTaskDelay(1 * 1000 / portTICK_RATE_MS);
+        if (route_table_size < 10) {
+            vTaskDelay(1 * 1000 / portTICK_RATE_MS);
+        }
     }
     vTaskDelete(NULL);
 }
@@ -394,6 +396,11 @@ void app_main(void)
     memcpy((uint8_t *) &cfg.mesh_ap.password, CONFIG_MESH_AP_PASSWD,
            strlen(CONFIG_MESH_AP_PASSWD));
     ESP_ERROR_CHECK(esp_mesh_set_config(&cfg));
+    /* set RSSI threshold for connecting to the root */
+    mesh_switch_parent_t switch_paras ;
+    ESP_ERROR_CHECK(esp_mesh_get_switch_parent_paras(&switch_paras));
+    switch_paras.backoff_rssi = -45;
+    ESP_ERROR_CHECK(esp_mesh_set_switch_parent_paras(&switch_paras));
     /* mesh start */
     ESP_ERROR_CHECK(esp_mesh_start());
     ESP_LOGI(MESH_TAG, "mesh starts successfully, heap:%d\n",  esp_get_free_heap_size())