From f85e66dfd98272a0ea1ce1fbb74a8e50ad10d6d2 Mon Sep 17 00:00:00 2001 From: Patryk Lipinski Date: Wed, 13 Mar 2024 09:05:57 +0100 Subject: [PATCH] [nrf noup] followup to wifi issues fix This commit implement minors from previous wifi fix signed PR number 404. Signed-off-by: Patryk Lipinski --- src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp | 14 +++++++++++--- src/platform/nrfconnect/wifi/WiFiManager.cpp | 7 +++---- src/platform/nrfconnect/wifi/WiFiManager.h | 1 + 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp b/src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp index f6a9b9f3ae..f3e65279c9 100644 --- a/src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp +++ b/src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp @@ -128,7 +128,16 @@ void NrfWiFiDriver::OnNetworkStatusChanged(int connStatus) if (CHIP_NO_ERROR == WiFiManager::Instance().GetWiFiInfo(wifiInfo)) { mpNetworkStatusChangeCallback->OnNetworkingStatusChange(status, - MakeOptional(ByteSpan(wifiInfo.mSsid, wifiInfo.mSsidLen)), + MakeOptional(ByteSpan(wifiInfo.mSsid, wifiInfo.mSsidLen)), + connStatus ? MakeOptional(connStatus) : NullOptional); + } + else + { + WiFiManager::WiFiNetwork wantedWifiInfo; + WiFiManager::Instance().GetWantedNetwork(wantedWifiInfo); + + mpNetworkStatusChangeCallback->OnNetworkingStatusChange( + status, MakeOptional(ByteSpan(wantedWifiInfo.ssid, wantedWifiInfo.ssidLen)), connStatus ? MakeOptional(connStatus) : NullOptional); } } @@ -258,8 +267,7 @@ void NrfWiFiDriver::LoadFromStorage() void NrfWiFiDriver::OnScanWiFiNetworkDone(const wifi_status & status) { VerifyOrReturn(mScanCallback != nullptr); - mScanCallback->OnFinished(status.status ? Status::kUnknownError : Status::kSuccess, - CharSpan(), &mScanResponseIterator); + mScanCallback->OnFinished(status.status ? Status::kUnknownError : Status::kSuccess, CharSpan(), &mScanResponseIterator); mScanCallback = nullptr; } diff --git a/src/platform/nrfconnect/wifi/WiFiManager.cpp b/src/platform/nrfconnect/wifi/WiFiManager.cpp index ce17308bf4..f41a32d451 100644 --- a/src/platform/nrfconnect/wifi/WiFiManager.cpp +++ b/src/platform/nrfconnect/wifi/WiFiManager.cpp @@ -210,8 +210,7 @@ CHIP_ERROR WiFiManager::Connect(const ByteSpan & ssid, const ByteSpan & credenti { ChipLogDetail(DeviceLayer, "Connecting to WiFi network: %*s", ssid.size(), ssid.data()); - mHandling.mOnConnectionDone = handling.mOnConnectionDone; - mHandling.mConnectionTimeout = handling.mConnectionTimeout; + mHandling = handling; mWiFiState = WIFI_STATE_ASSOCIATING; @@ -420,8 +419,8 @@ void WiFiManager::ConnectHandler(Platform::UniquePtr data) { CHIP_ERROR err = SystemLayer().ScheduleLambda([capturedData = data.get()] { Platform::UniquePtr safePtr(capturedData); - uint8_t * rawData = safePtr.get(); - const wifi_status * status = reinterpret_cast(rawData); + uint8_t * rawData = safePtr.get(); + const wifi_status * status = reinterpret_cast(rawData); if (status->status) { diff --git a/src/platform/nrfconnect/wifi/WiFiManager.h b/src/platform/nrfconnect/wifi/WiFiManager.h index 9ddb5dea27..c5434bc442 100644 --- a/src/platform/nrfconnect/wifi/WiFiManager.h +++ b/src/platform/nrfconnect/wifi/WiFiManager.h @@ -174,6 +174,7 @@ class WiFiManager CHIP_ERROR ClearStationProvisioningData(); CHIP_ERROR Disconnect(); CHIP_ERROR GetWiFiInfo(WiFiInfo & info) const; + const WiFiNetwork & GetWantedNetwork(WiFiNetwork & info) const { return mWantedNetwork; } CHIP_ERROR GetNetworkStatistics(NetworkStatistics & stats) const; void AbortConnectionRecovery(); CHIP_ERROR SetLowPowerMode(bool onoff);