@@ -103,7 +103,9 @@ CHIP_ERROR NrfWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChange
103
103
104
104
if (mStagingNetwork .IsConfigured ())
105
105
{
106
- WiFiManager::ConnectionHandling handling{ [](int connStatus) { Instance ().OnNetworkStatusChanged (connStatus); },
106
+ WiFiManager::ConnectionHandling handling{ [](const wifi_conn_status & connStatus) {
107
+ Instance ().OnNetworkConnStatusChanged (connStatus);
108
+ },
107
109
System::Clock::Seconds32{ kWiFiConnectNetworkTimeoutSeconds } };
108
110
ReturnErrorOnFailure (
109
111
WiFiManager::Instance ().Connect (mStagingNetwork .GetSsidSpan (), mStagingNetwork .GetPassSpan (), handling));
@@ -112,8 +114,9 @@ CHIP_ERROR NrfWiFiDriver::Init(NetworkStatusChangeCallback * networkStatusChange
112
114
return CHIP_NO_ERROR;
113
115
}
114
116
115
- void NrfWiFiDriver::OnNetworkStatusChanged ( int connStatus)
117
+ void NrfWiFiDriver::OnNetworkConnStatusChanged ( const wifi_conn_status & connStatus)
116
118
{
119
+ // TODO: check if we can report more accurate errors
117
120
Status status = connStatus ? Status::kUnknownError : Status::kSuccess ;
118
121
119
122
if (status == Status::kSuccess )
@@ -123,14 +126,23 @@ void NrfWiFiDriver::OnNetworkStatusChanged(int connStatus)
123
126
124
127
if (mpNetworkStatusChangeCallback)
125
128
{
129
+ uint8_t * ssid{};
130
+ size_t ssidLen{};
126
131
WiFiManager::WiFiInfo wifiInfo;
127
132
128
133
if (CHIP_NO_ERROR == WiFiManager::Instance ().GetWiFiInfo (wifiInfo))
129
134
{
130
- mpNetworkStatusChangeCallback->OnNetworkingStatusChange (status,
131
- MakeOptional (ByteSpan (wifiInfo.mSsid , wifiInfo.mSsidLen )),
132
- connStatus ? MakeOptional (connStatus) : NullOptional);
135
+ ssid = wifiInfo.mSsid ;
136
+ ssidLen = wifiInfo.mSsidLen ;
133
137
}
138
+ else
139
+ {
140
+ ssid = WiFiManager::Instance ().GetWantedNetwork ().ssid ;
141
+ ssidLen = WiFiManager::Instance ().GetWantedNetwork ().ssidLen ;
142
+ }
143
+ mpNetworkStatusChangeCallback->OnNetworkingStatusChange (status, MakeOptional (ByteSpan (wifiInfo.mSsid , wifiInfo.mSsidLen )),
144
+ connStatus ? MakeOptional (static_cast <int32_t >(connStatus))
145
+ : NullOptional);
134
146
}
135
147
136
148
if (mpConnectCallback)
@@ -172,7 +184,9 @@ CHIP_ERROR NrfWiFiDriver::RevertConfiguration()
172
184
173
185
if (mStagingNetwork .IsConfigured ())
174
186
{
175
- WiFiManager::ConnectionHandling handling{ [](int connStatus) { Instance ().OnNetworkStatusChanged (connStatus); },
187
+ WiFiManager::ConnectionHandling handling{ [](const wifi_conn_status & connStatus) {
188
+ Instance ().OnNetworkConnStatusChanged (connStatus);
189
+ },
176
190
System::Clock::Seconds32{ kWiFiConnectNetworkTimeoutSeconds } };
177
191
ReturnErrorOnFailure (
178
192
WiFiManager::Instance ().Connect (mStagingNetwork .GetSsidSpan (), mStagingNetwork .GetPassSpan (), handling));
@@ -225,7 +239,9 @@ Status NrfWiFiDriver::ReorderNetwork(ByteSpan networkId, uint8_t index, MutableC
225
239
void NrfWiFiDriver::ConnectNetwork (ByteSpan networkId, ConnectCallback * callback)
226
240
{
227
241
Status status = Status::kSuccess ;
228
- WiFiManager::ConnectionHandling handling{ [](int connStatus) { Instance ().OnNetworkStatusChanged (connStatus); },
242
+ WiFiManager::ConnectionHandling handling{ [](const wifi_conn_status & connStatus) {
243
+ Instance ().OnNetworkConnStatusChanged (connStatus);
244
+ },
229
245
System::Clock::Seconds32{ kWiFiConnectNetworkTimeoutSeconds } };
230
246
231
247
VerifyOrExit (mpConnectCallback == nullptr , status = Status::kUnknownError );
@@ -255,11 +271,10 @@ void NrfWiFiDriver::LoadFromStorage()
255
271
mStagingNetwork = network;
256
272
}
257
273
258
- void NrfWiFiDriver::OnScanWiFiNetworkDone (const wifi_status & status)
274
+ void NrfWiFiDriver::OnScanWiFiNetworkDone (const WiFiManager::ScanDoneStatus & status)
259
275
{
260
276
VerifyOrReturn (mScanCallback != nullptr );
261
- mScanCallback ->OnFinished (status.status ? Status::kUnknownError : Status::kSuccess ,
262
- CharSpan (), &mScanResponseIterator );
277
+ mScanCallback ->OnFinished (status ? Status::kUnknownError : Status::kSuccess , CharSpan (), &mScanResponseIterator );
263
278
mScanCallback = nullptr ;
264
279
}
265
280
@@ -273,7 +288,7 @@ void NrfWiFiDriver::ScanNetworks(ByteSpan ssid, WiFiDriver::ScanCallback * callb
273
288
mScanCallback = callback;
274
289
CHIP_ERROR error = WiFiManager::Instance ().Scan (
275
290
ssid, [](const WiFiScanResponse & response) { Instance ().OnScanWiFiNetworkResult (response); },
276
- [](const wifi_status & status) { Instance ().OnScanWiFiNetworkDone (status); });
291
+ [](const WiFiManager::ScanDoneStatus & status) { Instance ().OnScanWiFiNetworkDone (status); });
277
292
278
293
if (error != CHIP_NO_ERROR)
279
294
{
0 commit comments