From afc0dbd639916d94825ded3c0ffa35521929b256 Mon Sep 17 00:00:00 2001 From: Yufeng Wang Date: Tue, 20 Jul 2021 07:05:36 -0700 Subject: [PATCH] Add option 'version' to setup-payload generate command (#8478) --- src/controller/python/chip-device-ctrl.py | 12 +++++++----- .../python/chip/setup_payload/Generator.cpp | 5 +++-- .../python/chip/setup_payload/setup_payload.py | 6 +++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/controller/python/chip-device-ctrl.py b/src/controller/python/chip-device-ctrl.py index a31c7a56017f8e..b380f63a790635 100755 --- a/src/controller/python/chip-device-ctrl.py +++ b/src/controller/python/chip-device-ctrl.py @@ -327,8 +327,9 @@ def do_setuppayload(self, line): setup-payload generate [options] Options: - -v Vendor ID - -p Product ID + -vr Version + -vi Vendor ID + -pi Product ID -cf Custom Flow [Standard = 0, UserActionRequired = 1, Custom = 2] -dc Discovery Capabilities [SoftAP = 1 | BLE = 2 | OnNetwork = 4] -dv Discriminator Value @@ -345,15 +346,16 @@ def do_setuppayload(self, line): if arglist[0] == "generate": parser = argparse.ArgumentParser() - parser.add_argument("-v", type=int, default=0, dest='vendorId') - parser.add_argument("-p", type=int, default=0, dest='productId') + parser.add_argument("-vr", type=int, default=0, dest='version') + parser.add_argument("-pi", type=int, default=0, dest='productId') + parser.add_argument("-vi", type=int, default=0, dest='vendorId') parser.add_argument('-cf', type=int, default=0, dest='customFlow') parser.add_argument("-dc", type=int, default=0, dest='capabilities') parser.add_argument("-dv", type=int, default=0, dest='discriminator') parser.add_argument("-ps", type=int, dest='passcode') args = parser.parse_args(arglist[1:]) - SetupPayload().PrintOnboardingCodes(args.passcode, args.vendorId, args.productId, args.discriminator, args.customFlow, args.capabilities) + SetupPayload().PrintOnboardingCodes(args.passcode, args.vendorId, args.productId, args.discriminator, args.customFlow, args.capabilities, args.version) if arglist[0] == "parse-manual": SetupPayload().ParseManualPairingCode(arglist[1]).Print() diff --git a/src/controller/python/chip/setup_payload/Generator.cpp b/src/controller/python/chip/setup_payload/Generator.cpp index fa3d05d219897b..5015fd2e52d8c1 100644 --- a/src/controller/python/chip/setup_payload/Generator.cpp +++ b/src/controller/python/chip/setup_payload/Generator.cpp @@ -24,14 +24,15 @@ using namespace chip; extern "C" CHIP_ERROR pychip_SetupPayload_PrintOnboardingCodes(uint32_t passcode, uint16_t vendorId, uint16_t productId, - uint16_t discriminator, uint8_t customFlow, uint8_t capabilities) + uint16_t discriminator, uint8_t customFlow, uint8_t capabilities, + uint8_t version) { std::string QRCode; std::string manualPairingCode; SetupPayload payload; RendezvousInformationFlags rendezvousFlags = RendezvousInformationFlag::kNone; - payload.version = 0; + payload.version = version; payload.setUpPINCode = passcode; payload.vendorID = vendorId; payload.productID = productId; diff --git a/src/controller/python/chip/setup_payload/setup_payload.py b/src/controller/python/chip/setup_payload/setup_payload.py index fc66e5323badf3..107ab1f23f6f8c 100644 --- a/src/controller/python/chip/setup_payload/setup_payload.py +++ b/src/controller/python/chip/setup_payload/setup_payload.py @@ -62,9 +62,9 @@ def ParseManualPairingCode(self, manualPairingCode: str): return self - def PrintOnboardingCodes(self, passcode, vendorId, productId, discriminator, customFlow, capabilities): + def PrintOnboardingCodes(self, passcode, vendorId, productId, discriminator, customFlow, capabilities, version): self.Clear() - err = self.chipLib.pychip_SetupPayload_PrintOnboardingCodes(passcode, vendorId, productId, discriminator, customFlow, capabilities) + err = self.chipLib.pychip_SetupPayload_PrintOnboardingCodes(passcode, vendorId, productId, discriminator, customFlow, capabilities, version) if err != 0: raise ChipStackError(err) @@ -104,4 +104,4 @@ def __InitNativeFunctions(self, chipLib): [c_char_p, SetupPayload.AttributeVisitor, SetupPayload.VendorAttributeVisitor]) setter.Set("pychip_SetupPayload_PrintOnboardingCodes", c_int32, - [c_uint32, c_uint16, c_uint16, c_uint16, uint8_t, uint8_t]) \ No newline at end of file + [c_uint32, c_uint16, c_uint16, c_uint16, uint8_t, uint8_t, uint8_t]) \ No newline at end of file