feat(wifi): retain multiple network credentials

This commit is contained in:
chenjintao
2026-08-24 16:16:16 +08:00
parent 23f4969404
commit ae27d5bbaa
6 changed files with 67 additions and 29 deletions
@@ -39,7 +39,7 @@
#define CONTROL_PLANE_PTT_ACTIVE_POLL_INTERVAL_MS 80
#define CONTROL_PLANE_WIFI_DISCONNECTED_REFRESH_MS 5000
#define CONTROL_PLANE_WIFI_DISCONNECT_GRACE_MS 3000
#define CONTROL_PLANE_WIFI_RECONNECT_TIMEOUT_MS 10000
#define CONTROL_PLANE_WIFI_REASSOCIATION_TIMEOUT_MS 10000
#define CONTROL_PLANE_WIFI_RECONNECT_BASE_DELAY_MS 5000
#define CONTROL_PLANE_WIFI_RECONNECT_MAX_DELAY_MS 60000
#define CONTROL_PLANE_USER_WEB_RETRY_MS 5000
@@ -128,6 +128,10 @@
#define CONFIG_TQ_MINI_PROGRAM_PROVISIONING_RECONNECT_FAILURES 2
#endif
#ifndef CONFIG_TQ_WIFI_CONNECT_CYCLE_TIMEOUT_MS
#define CONFIG_TQ_WIFI_CONNECT_CYCLE_TIMEOUT_MS 20000
#endif
#ifndef CONFIG_TQ_MINI_PROGRAM_PROVISIONING_ENABLE
#define CONFIG_TQ_MINI_PROGRAM_PROVISIONING_ENABLE 0
#endif
@@ -1618,7 +1622,8 @@ static esp_err_t control_plane_attempt_wifi_reconnect(void)
ESP_LOGI(TAG, "Attempting Wi-Fi STA reconnect");
domain_runtime_behavior_set_keep_awake(true);
esp_err_t err = domain_runtime_wifi_portal_connect_sta(CONTROL_PLANE_WIFI_RECONNECT_TIMEOUT_MS);
esp_err_t err = domain_runtime_wifi_portal_connect_sta(
CONFIG_TQ_WIFI_CONNECT_CYCLE_TIMEOUT_MS);
domain_runtime_behavior_set_keep_awake(false);
if (err == ESP_OK) {
@@ -2195,7 +2200,7 @@ static void control_plane_wifi_state_task(void *arg)
(unsigned)CONTROL_PLANE_NETWORK_FAILURE_REASSOC_THRESHOLD);
domain_runtime_behavior_set_keep_awake(true);
esp_err_t reassoc_err = domain_runtime_wifi_portal_reconnect_sta(
CONTROL_PLANE_WIFI_RECONNECT_TIMEOUT_MS);
CONTROL_PLANE_WIFI_REASSOCIATION_TIMEOUT_MS);
domain_runtime_behavior_set_keep_awake(false);
connected = control_plane_is_sta_connected();
ESP_LOGW(TAG,