25
25
#include "gen/CHIPClientCallbacks.h"
26
26
#include "gen/CHIPClusters.h"
27
27
#include <lib/core/CHIPSafeCasts.h>
28
+ #include <lib/support/CHIPArgParser.hpp>
29
+ #include <lib/support/ThreadOperationalDataset.h>
28
30
29
31
static void OnDefaultSuccessResponse(void * context)
30
32
{
@@ -9829,7 +9831,7 @@ class NetworkCommissioningAddThreadNetwork : public ModelCommand
9829
9831
public:
9830
9832
NetworkCommissioningAddThreadNetwork() : ModelCommand("add-thread-network")
9831
9833
{
9832
- AddArgument("operationalDataset", &mOperationalDataset );
9834
+ AddArgument("operationalDataset", &mThreadOpDatasetArg );
9833
9835
AddArgument("breadcrumb", 0, UINT64_MAX, &mBreadcrumb);
9834
9836
AddArgument("timeoutMs", 0, UINT32_MAX, &mTimeoutMs);
9835
9837
ModelCommand::AddArguments();
@@ -9842,13 +9844,18 @@ class NetworkCommissioningAddThreadNetwork : public ModelCommand
9842
9844
9843
9845
CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
9844
9846
{
9847
+ uint8_t opDataset[chip::Thread::kSizeOperationalDataset];
9848
+ uint32_t opDatasetLen;
9849
+
9845
9850
ChipLogProgress(chipTool, "Sending cluster (0x0031) command (0x06) on endpoint %" PRIu16, endpointId);
9846
9851
9852
+ chip::ArgParser::ParseHexString(mThreadOpDatasetArg, static_cast<uint32_t>(strlen(mThreadOpDatasetArg)), opDataset,
9853
+ static_cast<uint32_t>(sizeof(opDataset)), opDatasetLen);
9854
+
9847
9855
chip::Controller::NetworkCommissioningCluster cluster;
9848
9856
cluster.Associate(device, endpointId);
9849
9857
return cluster.AddThreadNetwork(onSuccessCallback->Cancel(), onFailureCallback->Cancel(),
9850
- chip::ByteSpan(chip::Uint8::from_char(mOperationalDataset), strlen(mOperationalDataset)),
9851
- mBreadcrumb, mTimeoutMs);
9858
+ chip::ByteSpan(opDataset, opDatasetLen), mBreadcrumb, mTimeoutMs);
9852
9859
}
9853
9860
9854
9861
private:
@@ -9857,7 +9864,7 @@ class NetworkCommissioningAddThreadNetwork : public ModelCommand
9857
9864
OnNetworkCommissioningClusterAddThreadNetworkResponse, this);
9858
9865
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
9859
9866
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
9860
- char * mOperationalDataset ;
9867
+ char * mThreadOpDatasetArg ;
9861
9868
uint64_t mBreadcrumb;
9862
9869
uint32_t mTimeoutMs;
9863
9870
};
@@ -10110,7 +10117,7 @@ class NetworkCommissioningUpdateThreadNetwork : public ModelCommand
10110
10117
public:
10111
10118
NetworkCommissioningUpdateThreadNetwork() : ModelCommand("update-thread-network")
10112
10119
{
10113
- AddArgument("operationalDataset", &mOperationalDataset );
10120
+ AddArgument("operationalDataset", &mThreadOpDatasetArg );
10114
10121
AddArgument("breadcrumb", 0, UINT64_MAX, &mBreadcrumb);
10115
10122
AddArgument("timeoutMs", 0, UINT32_MAX, &mTimeoutMs);
10116
10123
ModelCommand::AddArguments();
@@ -10123,13 +10130,17 @@ class NetworkCommissioningUpdateThreadNetwork : public ModelCommand
10123
10130
10124
10131
CHIP_ERROR SendCommand(ChipDevice * device, uint8_t endpointId) override
10125
10132
{
10133
+ uint8_t opDataset[chip::Thread::kSizeOperationalDataset];
10134
+ uint32_t opDatasetLen;
10135
+
10126
10136
ChipLogProgress(chipTool, "Sending cluster (0x0031) command (0x08) on endpoint %" PRIu16, endpointId);
10127
10137
10128
10138
chip::Controller::NetworkCommissioningCluster cluster;
10129
10139
cluster.Associate(device, endpointId);
10140
+ chip::ArgParser::ParseHexString(mThreadOpDatasetArg, static_cast<uint32_t>(strlen(mThreadOpDatasetArg)), opDataset,
10141
+ static_cast<uint32_t>(sizeof(opDataset)), opDatasetLen);
10130
10142
return cluster.UpdateThreadNetwork(onSuccessCallback->Cancel(), onFailureCallback->Cancel(),
10131
- chip::ByteSpan(chip::Uint8::from_char(mOperationalDataset), strlen(mOperationalDataset)),
10132
- mBreadcrumb, mTimeoutMs);
10143
+ chip::ByteSpan(opDataset, opDatasetLen), mBreadcrumb, mTimeoutMs);
10133
10144
}
10134
10145
10135
10146
private:
@@ -10138,7 +10149,7 @@ class NetworkCommissioningUpdateThreadNetwork : public ModelCommand
10138
10149
OnNetworkCommissioningClusterUpdateThreadNetworkResponse, this);
10139
10150
chip::Callback::Callback<DefaultFailureCallback> * onFailureCallback =
10140
10151
new chip::Callback::Callback<DefaultFailureCallback>(OnDefaultFailureResponse, this);
10141
- char * mOperationalDataset ;
10152
+ char * mThreadOpDatasetArg ;
10142
10153
uint64_t mBreadcrumb;
10143
10154
uint32_t mTimeoutMs;
10144
10155
};
0 commit comments