From 70481429367ca00144b24f118cbfdfb28b02967d Mon Sep 17 00:00:00 2001
From: wangzhibo <wangzhibo@shsening.com>
Date: 星期三, 26 八月 2026 15:54:31 +0800
Subject: [PATCH] add sening functions
---
xiaozhi-esp32-2.2.6/main/boards/common/wifi_board.cc | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/xiaozhi-esp32-2.2.6/main/boards/common/wifi_board.cc b/xiaozhi-esp32-2.2.6/main/boards/common/wifi_board.cc
index 377685b..7a70d39 100644
--- a/xiaozhi-esp32-2.2.6/main/boards/common/wifi_board.cc
+++ b/xiaozhi-esp32-2.2.6/main/boards/common/wifi_board.cc
@@ -73,6 +73,21 @@
case WifiEvent::Disconnected:
OnNetworkEvent(NetworkEvent::Disconnected);
break;
+ case WifiEvent::ConnectionFailed:
+ OnNetworkEvent(NetworkEvent::ConnectionFailed);
+ if (suppress_config_mode_on_connection_failed_) {
+ ESP_LOGW(TAG, "All saved WiFi networks failed, staying offline");
+ break;
+ }
+ ESP_LOGW(TAG, "All saved WiFi networks failed, entering config mode");
+ esp_timer_stop(connect_timer_);
+ xTaskCreate([](void* arg) {
+ auto* board = static_cast<WifiBoard*>(arg);
+ WifiManager::GetInstance().StopStation();
+ board->StartWifiConfigMode();
+ vTaskDelete(NULL);
+ }, "wifi_conn_failed", 4096, this, 2, NULL);
+ break;
case WifiEvent::ConfigModeEnter:
OnNetworkEvent(NetworkEvent::WifiConfigModeEnter);
break;
@@ -124,6 +139,9 @@
case NetworkEvent::Disconnected:
ESP_LOGW(TAG, "WiFi disconnected");
break;
+ case NetworkEvent::ConnectionFailed:
+ ESP_LOGW(TAG, "WiFi connection failed");
+ break;
case NetworkEvent::WifiConfigModeEnter:
ESP_LOGI(TAG, "WiFi config mode entered");
in_config_mode_ = true;
@@ -148,6 +166,10 @@
network_event_callback_ = std::move(callback);
}
+void WifiBoard::SetSuppressConfigModeOnConnectionFailed(bool suppress) {
+ suppress_config_mode_on_connection_failed_ = suppress;
+}
+
void WifiBoard::OnWifiConnectTimeout(void* arg) {
auto* board = static_cast<WifiBoard*>(arg);
ESP_LOGW(TAG, "WiFi connection timeout, entering config mode");
--
Gitblit v1.9.1