#include "wifi_board.h" #include "display.h" #include "application.h" #include "system_info.h" #include "settings.h" #include "assets/lang_config.h" #include #include #include #include #include #include #include #include #include #include #include "afsk_demod.h" #ifdef CONFIG_USE_ESP_BLUFI_WIFI_PROVISIONING #include "blufi.h" #endif static const char *TAG = "WifiBoard"; // Connection timeout in seconds static constexpr int CONNECT_TIMEOUT_SEC = 60; WifiBoard::WifiBoard() { // Create connection timeout timer esp_timer_create_args_t timer_args = { .callback = OnWifiConnectTimeout, .arg = this, .dispatch_method = ESP_TIMER_TASK, .name = "wifi_connect_timer", .skip_unhandled_events = true }; esp_timer_create(&timer_args, &connect_timer_); } WifiBoard::~WifiBoard() { if (connect_timer_) { esp_timer_stop(connect_timer_); esp_timer_delete(connect_timer_); } } std::string WifiBoard::GetBoardType() { return "wifi"; } void WifiBoard::StartNetwork() { auto& wifi_manager = WifiManager::GetInstance(); // Initialize WiFi manager WifiManagerConfig config; config.ssid_prefix = "Xiaozhi"; // Captive portal languageMap keys use BCP-47 hyphens (zh-CN). Android/WeChat // often report zh_CN; passing the underscore form leaves the