@@ -286,27 +286,66 @@ void Instance::HandleScanNetworks(HandlerContext & ctx, const Commands::ScanNetw
286
286
}
287
287
}
288
288
289
+ namespace {
290
+
291
+ void FillDebugTextAndNetworkIndex (Commands::NetworkConfigResponse::Type & response, MutableCharSpan debugText, uint8_t networkIndex)
292
+ {
293
+ if (debugText.size () > 0 )
294
+ {
295
+ response.debugText .SetValue (CharSpan (debugText.data (), debugText.size ()));
296
+ }
297
+ if (response.networkingStatus == NetworkCommissioningStatus::kSuccess )
298
+ {
299
+ response.networkIndex .SetValue (networkIndex);
300
+ }
301
+ }
302
+
303
+ } // namespace
304
+
289
305
void Instance::HandleAddOrUpdateWiFiNetwork (HandlerContext & ctx, const Commands::AddOrUpdateWiFiNetwork::DecodableType & req)
290
306
{
291
307
MATTER_TRACE_EVENT_SCOPE (" HandleAddOrUpdateWiFiNetwork" , " NetworkCommissioning" );
292
308
Commands::NetworkConfigResponse::Type response;
293
- response.networkingStatus = ToClusterObjectEnum (mpDriver.Get <WiFiDriver *>()->AddOrUpdateNetwork (req.ssid , req.credentials ));
309
+ MutableCharSpan debugText;
310
+ #if CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE
311
+ char debugTextBuffer[CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE];
312
+ debugText = MutableCharSpan (debugTextBuffer);
313
+ #endif
314
+ uint8_t outNetworkIndex = 0 ;
315
+ response.networkingStatus = ToClusterObjectEnum (
316
+ mpDriver.Get <WiFiDriver *>()->AddOrUpdateNetwork (req.ssid , req.credentials , debugText, outNetworkIndex));
317
+ FillDebugTextAndNetworkIndex (response, debugText, outNetworkIndex);
294
318
ctx.mCommandHandler .AddResponse (ctx.mRequestPath , response);
295
319
}
296
320
297
321
void Instance::HandleAddOrUpdateThreadNetwork (HandlerContext & ctx, const Commands::AddOrUpdateThreadNetwork::DecodableType & req)
298
322
{
299
323
MATTER_TRACE_EVENT_SCOPE (" HandleAddOrUpdateThreadNetwork" , " NetworkCommissioning" );
300
324
Commands::NetworkConfigResponse::Type response;
301
- response.networkingStatus = ToClusterObjectEnum (mpDriver.Get <ThreadDriver *>()->AddOrUpdateNetwork (req.operationalDataset ));
325
+ MutableCharSpan debugText;
326
+ #if CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE
327
+ char debugTextBuffer[CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE];
328
+ debugText = MutableCharSpan (debugTextBuffer);
329
+ #endif
330
+ uint8_t outNetworkIndex = 0 ;
331
+ response.networkingStatus =
332
+ ToClusterObjectEnum (mpDriver.Get <ThreadDriver *>()->AddOrUpdateNetwork (req.operationalDataset , debugText, outNetworkIndex));
333
+ FillDebugTextAndNetworkIndex (response, debugText, outNetworkIndex);
302
334
ctx.mCommandHandler .AddResponse (ctx.mRequestPath , response);
303
335
}
304
336
305
337
void Instance::HandleRemoveNetwork (HandlerContext & ctx, const Commands::RemoveNetwork::DecodableType & req)
306
338
{
307
339
MATTER_TRACE_EVENT_SCOPE (" HandleRemoveNetwork" , " NetworkCommissioning" );
308
340
Commands::NetworkConfigResponse::Type response;
309
- response.networkingStatus = ToClusterObjectEnum (mpWirelessDriver->RemoveNetwork (req.networkID ));
341
+ MutableCharSpan debugText;
342
+ #if CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE
343
+ char debugTextBuffer[CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE];
344
+ debugText = MutableCharSpan (debugTextBuffer);
345
+ #endif
346
+ uint8_t outNetworkIndex = 0 ;
347
+ response.networkingStatus = ToClusterObjectEnum (mpWirelessDriver->RemoveNetwork (req.networkID , debugText, outNetworkIndex));
348
+ FillDebugTextAndNetworkIndex (response, debugText, outNetworkIndex);
310
349
ctx.mCommandHandler .AddResponse (ctx.mRequestPath , response);
311
350
}
312
351
@@ -330,7 +369,13 @@ void Instance::HandleReorderNetwork(HandlerContext & ctx, const Commands::Reorde
330
369
{
331
370
MATTER_TRACE_EVENT_SCOPE (" HandleReorderNetwork" , " NetworkCommissioning" );
332
371
Commands::NetworkConfigResponse::Type response;
333
- response.networkingStatus = ToClusterObjectEnum (mpWirelessDriver->ReorderNetwork (req.networkID , req.networkIndex ));
372
+ MutableCharSpan debugText;
373
+ #if CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE
374
+ char debugTextBuffer[CHIP_CONFIG_NETWORK_COMMISSIONING_DEBUG_TEXT_BUFFER_SIZE];
375
+ debugText = MutableCharSpan (debugTextBuffer);
376
+ #endif
377
+ response.networkingStatus = ToClusterObjectEnum (mpWirelessDriver->ReorderNetwork (req.networkID , req.networkIndex , debugText));
378
+ FillDebugTextAndNetworkIndex (response, debugText, req.networkIndex );
334
379
ctx.mCommandHandler .AddResponse (ctx.mRequestPath , response);
335
380
}
336
381
0 commit comments