Skip to content

Commit 6668373

Browse files
committed
Fix code-wifi-thread command and reset trying secondary network flag
1 parent 908f57b commit 6668373

File tree

5 files changed

+27
-23
lines changed

5 files changed

+27
-23
lines changed

examples/chip-tool/commands/pairing/Commands.h

+9-9
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ class PairCodeThread : public PairingCommand
6969
{}
7070
};
7171

72+
class PairCodeWiFiThread : public PairingCommand
73+
{
74+
public:
75+
PairCodeWiFiThread(CredentialIssuerCommands * credsIssuerConfig) :
76+
PairingCommand("code-wifi-thread", PairingMode::Code, PairingNetworkType::WiFiOrThread, credsIssuerConfig)
77+
{}
78+
};
79+
7280
class PairOnNetwork : public PairingCommand
7381
{
7482
public:
@@ -165,14 +173,6 @@ class PairBleThread : public PairingCommand
165173
{}
166174
};
167175

168-
class PairBleWiFiOrThread : public PairingCommand
169-
{
170-
public:
171-
PairBleWiFiOrThread(CredentialIssuerCommands * credsIssuerConfig) :
172-
PairingCommand("ble-wifi-thread", PairingMode::Ble, PairingNetworkType::WiFiOrThread, credsIssuerConfig)
173-
{}
174-
};
175-
176176
class PairSoftAP : public PairingCommand
177177
{
178178
public:
@@ -239,9 +239,9 @@ void registerCommandsPairing(Commands & commands, CredentialIssuerCommands * cre
239239
make_unique<PairCodePase>(credsIssuerConfig),
240240
make_unique<PairCodeWifi>(credsIssuerConfig),
241241
make_unique<PairCodeThread>(credsIssuerConfig),
242+
make_unique<PairCodeWiFiThread>(credsIssuerConfig),
242243
make_unique<PairBleWiFi>(credsIssuerConfig),
243244
make_unique<PairBleThread>(credsIssuerConfig),
244-
make_unique<PairBleWiFiOrThread>(credsIssuerConfig),
245245
make_unique<PairSoftAP>(credsIssuerConfig),
246246
make_unique<PairAlreadyDiscovered>(credsIssuerConfig),
247247
make_unique<PairAlreadyDiscoveredByIndex>(credsIssuerConfig),

src/controller/AutoCommissioner.cpp

+7-3
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ CommissioningStage AutoCommissioner::GetNextCommissioningStageNetworkSetup(Commi
300300
{
301301
if (IsSecondaryNetworkSupported())
302302
{
303-
if (IsTriedSecondaryNetwork())
303+
if (TryingSecondaryNetwork())
304304
{
305305
// Try secondary network interface.
306306
return mDeviceCommissioningInfo.network.wifi.endpoint == kRootEndpointId ? CommissioningStage::kThreadNetworkSetup
@@ -729,12 +729,12 @@ CHIP_ERROR AutoCommissioner::CommissioningStepFinished(CHIP_ERROR err, Commissio
729729
}
730730
}
731731

732-
if (err != CHIP_NO_ERROR && IsSecondaryNetworkSupported() && !IsTriedSecondaryNetwork() &&
732+
if (err != CHIP_NO_ERROR && IsSecondaryNetworkSupported() && !TryingSecondaryNetwork() &&
733733
completionStatus.failedStage.HasValue() && completionStatus.failedStage.Value() >= kWiFiNetworkSetup &&
734734
completionStatus.failedStage.Value() <= kICDSendStayActive)
735735
{
736736
// Primary network failed, disable primary network interface and try secondary network interface.
737-
SetTrySecondaryNetwork();
737+
TrySecondaryNetwork();
738738
err = CHIP_NO_ERROR;
739739
report.stageCompleted = CommissioningStage::kPrimaryOperationalNetworkFailed;
740740
}
@@ -856,6 +856,10 @@ CHIP_ERROR AutoCommissioner::CommissioningStepFinished(CHIP_ERROR err, Commissio
856856
mOperationalDeviceProxy = report.Get<OperationalNodeFoundData>().operationalProxy;
857857
break;
858858
case CommissioningStage::kCleanup:
859+
if (IsSecondaryNetworkSupported() && TryingSecondaryNetwork())
860+
{
861+
ResetTryingSecondaryNetwork();
862+
}
859863
ReleasePAI();
860864
ReleaseDAC();
861865
mCommissioneeDeviceProxy = nullptr;

src/controller/AutoCommissioner.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,10 @@ class AutoCommissioner : public CommissioningDelegate
105105
mDeviceCommissioningInfo.network.thread.endpoint != kInvalidEndpointId);
106106
}
107107

108-
void SetTrySecondaryNetwork() { mAttemptedSecondaryNetwork = true; }
109-
bool IsTriedSecondaryNetwork() const { return mAttemptedSecondaryNetwork; }
110-
bool mAttemptedSecondaryNetwork = false;
108+
void TrySecondaryNetwork() { mTryingSecondaryNetwork = true; }
109+
bool TryingSecondaryNetwork() const { return mTryingSecondaryNetwork; }
110+
void ResetTryingSecondaryNetwork() { mTryingSecondaryNetwork = false; }
111+
bool mTryingSecondaryNetwork = false;
111112

112113
bool mStopCommissioning = false;
113114

src/controller/CHIPDeviceController.cpp

+5-6
Original file line numberDiff line numberDiff line change
@@ -2756,7 +2756,7 @@ CHIP_ERROR DeviceCommissioner::SendCommissioningWriteRequest(DeviceProxy * devic
27562756
auto onSuccessCb = [this, successCb](const app::ConcreteAttributePath & aPath) { successCb(this); };
27572757
auto onFailureCb = [this, failureCb](const app::ConcreteAttributePath * aPath, CHIP_ERROR aError) { failureCb(this, aError); };
27582758
return WriteAttribute(device->GetSecureSession().Value(), endpoint, cluster, attribute, requestData, onSuccessCb, onFailureCb,
2759-
NullOptional, nullptr, NullOptional);
2759+
/* aTimedWriteTimeoutMs = */ NullOptional, /* onDoneCb = */ nullptr, /* aDataVersion = */ NullOptional);
27602760
}
27612761

27622762
void DeviceCommissioner::SendCommissioningReadRequest(DeviceProxy * proxy, Optional<System::Clock::Timeout> timeout,
@@ -3444,16 +3444,15 @@ void DeviceCommissioner::PerformCommissioningStep(DeviceProxy * proxy, Commissio
34443444
}
34453445
break;
34463446
case CommissioningStage::kPrimaryOperationalNetworkFailed: {
3447-
// nothing to do. This stage indicates that the primary operation network failed and the network interface should be
3447+
// nothing to do. This stage indicates that the primary operational network failed and the network interface should be
34483448
// disabled later.
34493449
break;
34503450
}
34513451
case CommissioningStage::kDisablePrimaryNetworkInterface: {
34523452
NetworkCommissioning::Attributes::InterfaceEnabled::TypeInfo::Type request = false;
3453-
CHIP_ERROR err = SendCommissioningWriteRequest(
3454-
proxy, endpoint, NetworkCommissioning::Attributes::InterfaceEnabled::TypeInfo::GetClusterId(),
3455-
NetworkCommissioning::Attributes::InterfaceEnabled::TypeInfo::GetAttributeId(), request,
3456-
OnInterfaceEnableWriteSuccessResponse, OnBasicFailure);
3453+
CHIP_ERROR err = SendCommissioningWriteRequest(proxy, endpoint, NetworkCommissioning::Id,
3454+
NetworkCommissioning::Attributes::InterfaceEnabled::Id, request,
3455+
OnInterfaceEnableWriteSuccessResponse, OnBasicFailure);
34573456
if (err != CHIP_NO_ERROR)
34583457
{
34593458
// We won't get any async callbacks here, so just complete our stage.

src/controller/CommissioningDelegate.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ const char * StageToString(CommissioningStage stage)
137137
return "NeedsNetworkCreds";
138138

139139
case kPrimaryOperationalNetworkFailed:
140-
return "kPrimaryOperationalNetworkFailed";
140+
return "PrimaryOperationalNetworkFailed";
141141

142142
case kDisablePrimaryNetworkInterface:
143-
return "kDisablePrimaryNetworkInterface";
143+
return "DisablePrimaryNetworkInterface";
144144

145145
default:
146146
return "???";

0 commit comments

Comments
 (0)