|
33 | 33 | #include <lib/support/CHIPMem.h>
|
34 | 34 | #include <lib/support/CodeUtils.h>
|
35 | 35 | #include <platform/CHIPDeviceLayer.h>
|
| 36 | +#include <CommissionableInit.h> |
| 37 | + |
| 38 | +using namespace chip; |
| 39 | +using namespace chip::DeviceLayer; |
| 40 | + |
| 41 | +namespace { |
| 42 | + LinuxCommissionableDataProvider gCommissionableDataProvider; |
| 43 | +} |
| 44 | + |
| 45 | +// To hold SPAKE2+ verifier, discriminator, passcode |
| 46 | +// LinuxCommissionableDataProvider gCommissionableDataProvider; |
36 | 47 |
|
37 | 48 | namespace chip {
|
38 | 49 | namespace Shell {
|
@@ -202,6 +213,33 @@ static CHIP_ERROR CastingHandler(int argc, char ** argv)
|
202 | 213 | return Server::GetInstance().SendUserDirectedCommissioningRequest(chip::Transport::PeerAddress::UDP(commissioner, port),
|
203 | 214 | id);
|
204 | 215 | }
|
| 216 | + |
| 217 | + if (strcmp(argv[0], "setpasscode") == 0) |
| 218 | + { |
| 219 | + |
| 220 | + char * eptr; |
| 221 | + chip::Inet::IPAddress commissioner; |
| 222 | + chip::Inet::IPAddress::FromString(argv[1], commissioner); |
| 223 | + uint16_t port = (uint16_t) strtol(argv[2], &eptr, 10); |
| 224 | + |
| 225 | + Protocols::UserDirectedCommissioning::IdentificationDeclaration id; |
| 226 | + id.SetCommissionerPasscodeReady(true); |
| 227 | + |
| 228 | + if (argc > 3) |
| 229 | + { |
| 230 | + uint32_t passcode = (uint32_t) strtol(argv[3], &eptr, 10); |
| 231 | + LinuxDeviceOptions::GetInstance().payload.setUpPINCode = passcode; |
| 232 | + } |
| 233 | + |
| 234 | + VerifyOrDie(chip::examples::InitCommissionableDataProvider(gCommissionableDataProvider, |
| 235 | + LinuxDeviceOptions::GetInstance()) == CHIP_NO_ERROR); |
| 236 | + |
| 237 | + DeviceLayer::SetCommissionableDataProvider(&gCommissionableDataProvider); |
| 238 | + |
| 239 | + Server::GetInstance().SendUserDirectedCommissioningRequest(chip::Transport::PeerAddress::UDP(commissioner, port), |
| 240 | + id); |
| 241 | + } |
| 242 | + |
205 | 243 | if (strcmp(argv[0], "testudc") == 0)
|
206 | 244 | {
|
207 | 245 | char * eptr;
|
|
0 commit comments