| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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"); |