wangzhibo
2026-08-26 70481429367ca00144b24f118cbfdfb28b02967d
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");