@@ -1878,12 +1878,6 @@ void DeviceCommissioner::OnBasicSuccess(void * context, const chip::app::DataMod
1878
1878
commissioner->CommissioningStageComplete (CHIP_NO_ERROR);
1879
1879
}
1880
1880
1881
- void DeviceCommissioner::OnInterfaceEnableWriteSuccessResponse (void * context)
1882
- {
1883
- DeviceCommissioner * commissioner = static_cast <DeviceCommissioner *>(context);
1884
- commissioner->CommissioningStageComplete (CHIP_NO_ERROR);
1885
- }
1886
-
1887
1881
void DeviceCommissioner::OnBasicFailure (void * context, CHIP_ERROR error)
1888
1882
{
1889
1883
ChipLogProgress (Controller, " Received failure response %s\n " , chip::ErrorStr (error));
@@ -3536,19 +3530,43 @@ void DeviceCommissioner::PerformCommissioningStep(DeviceProxy * proxy, Commissio
3536
3530
}
3537
3531
break ;
3538
3532
case CommissioningStage::kPrimaryOperationalNetworkFailed : {
3539
- // nothing to do. This stage indicates that the primary operational network failed and the network interface should be
3540
- // disabled later.
3533
+ // nothing to do. This stage indicates that the primary operational network failed and the network config should be
3534
+ // removed later.
3541
3535
break ;
3542
3536
}
3543
- case CommissioningStage::kDisablePrimaryNetworkInterface : {
3544
- NetworkCommissioning::Attributes::InterfaceEnabled::TypeInfo::Type request = false ;
3545
- CHIP_ERROR err = SendCommissioningWriteRequest (proxy, endpoint, NetworkCommissioning::Id,
3546
- NetworkCommissioning::Attributes::InterfaceEnabled::Id, request,
3547
- OnInterfaceEnableWriteSuccessResponse, OnBasicFailure);
3537
+ case CommissioningStage::kRemoveWiFiNetworkConfig : {
3538
+ NetworkCommissioning::Commands::RemoveNetwork::Type request;
3539
+ request.networkID = params.GetWiFiCredentials ().Value ().ssid ;
3540
+ request.breadcrumb .Emplace (breadcrumb);
3541
+ CHIP_ERROR err = SendCommissioningCommand (proxy, request, OnNetworkConfigResponse, OnBasicFailure, endpoint, timeout);
3542
+ if (err != CHIP_NO_ERROR)
3543
+ {
3544
+ // We won't get any async callbacks here, so just complete our stage.
3545
+ ChipLogError (Controller, " Failed to send RemoveNetwork command: %" CHIP_ERROR_FORMAT, err.Format ());
3546
+ CommissioningStageComplete (err);
3547
+ return ;
3548
+ }
3549
+ break ;
3550
+ }
3551
+ case CommissioningStage::kRemoveThreadNetworkConfig : {
3552
+ ByteSpan extendedPanId;
3553
+ chip::Thread::OperationalDataset operationalDataset;
3554
+ if (!params.GetThreadOperationalDataset ().HasValue () ||
3555
+ operationalDataset.Init (params.GetThreadOperationalDataset ().Value ()) != CHIP_NO_ERROR ||
3556
+ operationalDataset.GetExtendedPanIdAsByteSpan (extendedPanId) != CHIP_NO_ERROR)
3557
+ {
3558
+ ChipLogError (Controller, " Unable to get extended pan ID for thread operational dataset\n " );
3559
+ CommissioningStageComplete (CHIP_ERROR_INVALID_ARGUMENT);
3560
+ return ;
3561
+ }
3562
+ NetworkCommissioning::Commands::RemoveNetwork::Type request;
3563
+ request.networkID = extendedPanId;
3564
+ request.breadcrumb .Emplace (breadcrumb);
3565
+ CHIP_ERROR err = SendCommissioningCommand (proxy, request, OnNetworkConfigResponse, OnBasicFailure, endpoint, timeout);
3548
3566
if (err != CHIP_NO_ERROR)
3549
3567
{
3550
3568
// We won't get any async callbacks here, so just complete our stage.
3551
- ChipLogError (Controller, " Failed to send InterfaceEnabled write request : %" CHIP_ERROR_FORMAT, err.Format ());
3569
+ ChipLogError (Controller, " Failed to send RemoveNetwork command : %" CHIP_ERROR_FORMAT, err.Format ());
3552
3570
CommissioningStageComplete (err);
3553
3571
return ;
3554
3572
}
0 commit comments