Skip to content

Commit 190abd9

Browse files
[nrf noup] followup to wifi issues fix
This commit implement minors from previos wifi fix signed PR number 404. Signed-off-by: Patryk Lipinski <patryk.lipinski@nordicsemi.no>
1 parent 7653e6c commit 190abd9

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed

src/platform/nrfconnect/wifi/NrfWiFiDriver.cpp

+9-4
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,18 @@ void NrfWiFiDriver::OnNetworkStatusChanged(int connStatus)
124124
if (mpNetworkStatusChangeCallback)
125125
{
126126
WiFiManager::WiFiInfo wifiInfo;
127+
WiFiManager::WiFiNetwork wantedWifiInfo;
127128

128129
if (CHIP_NO_ERROR == WiFiManager::Instance().GetWiFiInfo(wifiInfo))
129130
{
130131
mpNetworkStatusChangeCallback->OnNetworkingStatusChange(status,
131-
MakeOptional(ByteSpan(wifiInfo.mSsid, wifiInfo.mSsidLen)),
132-
connStatus ? MakeOptional(connStatus) : NullOptional);
132+
MakeOptional(ByteSpan(wifiInfo.mSsid, wifiInfo.mSsidLen)),
133+
connStatus ? MakeOptional(connStatus) : NullOptional);
134+
}
135+
else if (CHIP_NO_ERROR == WiFiManager::Instance().GetWantedNetwork(wantedWifiInfo))
136+
{
137+
mpNetworkStatusChangeCallback->OnNetworkingStatusChange(status, MakeOptional(wantedWifiInfo.GetSsidSpan()),
138+
connStatus ? MakeOptional(connStatus) : NullOptional);
133139
}
134140
}
135141

@@ -258,8 +264,7 @@ void NrfWiFiDriver::LoadFromStorage()
258264
void NrfWiFiDriver::OnScanWiFiNetworkDone(const wifi_status & status)
259265
{
260266
VerifyOrReturn(mScanCallback != nullptr);
261-
mScanCallback->OnFinished(status.status ? Status::kUnknownError : Status::kSuccess,
262-
CharSpan(), &mScanResponseIterator);
267+
mScanCallback->OnFinished(status.status ? Status::kUnknownError : Status::kSuccess, CharSpan(), &mScanResponseIterator);
263268
mScanCallback = nullptr;
264269
}
265270

src/platform/nrfconnect/wifi/WiFiManager.cpp

+19-4
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,7 @@ CHIP_ERROR WiFiManager::Connect(const ByteSpan & ssid, const ByteSpan & credenti
210210
{
211211
ChipLogDetail(DeviceLayer, "Connecting to WiFi network: %*s", ssid.size(), ssid.data());
212212

213-
mHandling.mOnConnectionDone = handling.mOnConnectionDone;
214-
mHandling.mConnectionTimeout = handling.mConnectionTimeout;
213+
mHandling = handling;
215214

216215
mWiFiState = WIFI_STATE_ASSOCIATING;
217216

@@ -278,6 +277,22 @@ CHIP_ERROR WiFiManager::GetWiFiInfo(WiFiInfo & info) const
278277
return CHIP_ERROR_INTERNAL;
279278
}
280279

280+
CHIP_ERROR WiFiManager::GetWantedNetwork(WiFiNetwork & info) const
281+
{
282+
283+
if (mWantedNetwork.IsConfigured())
284+
{
285+
info.ssidLen = mWantedNetwork.ssidLen;
286+
info.passLen = mWantedNetwork.passLen;
287+
memcpy(info.ssid, mWantedNetwork.ssid, mWantedNetwork.ssidLen);
288+
memcpy(info.pass, mWantedNetwork.pass, mWantedNetwork.passLen);
289+
290+
return CHIP_NO_ERROR;
291+
}
292+
293+
return CHIP_ERROR_INTERNAL;
294+
}
295+
281296
CHIP_ERROR WiFiManager::GetNetworkStatistics(NetworkStatistics & stats) const
282297
{
283298
net_stats_wifi data{};
@@ -420,8 +435,8 @@ void WiFiManager::ConnectHandler(Platform::UniquePtr<uint8_t> data)
420435
{
421436
CHIP_ERROR err = SystemLayer().ScheduleLambda([capturedData = data.get()] {
422437
Platform::UniquePtr<uint8_t> safePtr(capturedData);
423-
uint8_t * rawData = safePtr.get();
424-
const wifi_status * status = reinterpret_cast<const wifi_status *>(rawData);
438+
uint8_t * rawData = safePtr.get();
439+
const wifi_status * status = reinterpret_cast<const wifi_status *>(rawData);
425440

426441
if (status->status)
427442
{

src/platform/nrfconnect/wifi/WiFiManager.h

+1
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ class WiFiManager
174174
CHIP_ERROR ClearStationProvisioningData();
175175
CHIP_ERROR Disconnect();
176176
CHIP_ERROR GetWiFiInfo(WiFiInfo & info) const;
177+
CHIP_ERROR GetWantedNetwork(WiFiNetwork & info) const;
177178
CHIP_ERROR GetNetworkStatistics(NetworkStatistics & stats) const;
178179
void AbortConnectionRecovery();
179180
CHIP_ERROR SetLowPowerMode(bool onoff);

0 commit comments

Comments
 (0)