From fa9565064a0cfe4b9d1ec89d21ededc69a00e650 Mon Sep 17 00:00:00 2001 From: Mathieu Kardous Date: Fri, 8 Mar 2024 19:19:31 +0000 Subject: [PATCH] Merge pull request #1628 in WMN_TOOLS/matter from cherry-pick/device-argument to RC_2.3.0-1.3-alpha.3 Auto-Merge: Pull request #1628: [AUTO] Cherry-Pick Pull request #1592: Provision: Added 'device' argument. Merge in WMN_TOOLS/matter from cherry-pick/device-argument to RC_2.3.0-1.3-alpha.3 Squashed commit of the following: commit e65b44b0bdc456b7db4554580bdf7aebedab0b3d Author: Ricardo Casallas Date: Wed Feb 28 19:17:42 2024 +0000 Pull request #1592: Provision: Added 'device' argument. Merge in WMN_TOOLS/matter from feature/provision_device_argument to RC_2.3.0-1.3 Squashed commit of the following: commit 9f713da2c653c0400954ec14a40b45631a64cf3b Author: Ricardo Casallas <77841255+rcasallas-silabs@users.noreply.github.com> Date: Tue Feb 27 11:56:04 2024 -0500 Provision: Added 'device' argument. --- provision/modules/arguments.py | 5 +++++ provision/modules/commander.py | 8 ++++++-- provision/provision.py | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/provision/modules/arguments.py b/provision/modules/arguments.py index e4ba1bcfb55188..b75c129305b96e 100644 --- a/provision/modules/arguments.py +++ b/provision/modules/arguments.py @@ -114,6 +114,7 @@ def __init__(self): self.discriminator = None self.spake2p = None self.rendezvous_flags = None + self.device = None def configure(self, parser): super().configure(parser) @@ -141,6 +142,7 @@ def configure(self, parser): parser.add_argument('-cf', '--commissioning_flow', type=parseInt, help='[int] Commissioning Flow: 0=Standard, 1=kUserActionRequired, 2=Custom (Default:Standard)') parser.add_argument('-rf', '--rendezvous_flags', type=parseInt, help='[int] Rendez-vous flag: 1=SoftAP, 2=BLE 4=OnNetwork (Default=BLE Only)') parser.add_argument('-d', '--discriminator', type=parseInt, help='[int] BLE pairing discriminator.') + parser.add_argument('-D', '--device', type=str, help='Target device.') # Attestation parser.add_argument('-ct', '--cert_tool', type=str, help='[boolean] Path to the `chip-cert` tool.') parser.add_argument('-ki', '--key_id', type=parseInt, help='[int] Key ID') @@ -186,6 +188,7 @@ def decode(self, d, args): c.commissioning_flow = decode(d, 'commissioning_flow', args.commissioning_flow, Arguments.kDefaultCommissioningFlow) c.rendezvous_flags = decode(d, 'rendezvous_flags', args.rendezvous_flags, Arguments.kDefaultRendezvousFlags) c.discriminator = decode(d, 'discriminator', args.discriminator) + c.device = decode(d, 'device', args.device) # Attestation attest = decode(d, 'attestation', None, {}) c.cert_tool = decode(attest, 'cert_tool', args.cert_tool) @@ -234,6 +237,7 @@ def encode(self): encode(d, 'commissioning_flow', self.commissioning_flow) encode(d, 'rendezvous_flags', self.rendezvous_flags) encode(d, 'discriminator', self.discriminator) + encode(d, 'device', self.device) # Attestation attest = {} encode(attest, 'cert_tool', self.attest.cert_tool) @@ -264,6 +268,7 @@ def process(self, args): # Connection self.conn = ConnectionArguments() self.conn.decode(args) + self.device = args.device self.temp = args.temp self.binary = args.binary diff --git a/provision/modules/commander.py b/provision/modules/commander.py index f88b05cbcec666..a445a5a62203bb 100644 --- a/provision/modules/commander.py +++ b/provision/modules/commander.py @@ -56,8 +56,9 @@ def __str__(self): class Commander: - def __init__(self, conn): - self.conn = conn + def __init__(self, args): + self.conn = args.conn + self.device = args.device def execute(self, args, output = True, check = False): args.insert(0, 'commander') @@ -68,6 +69,9 @@ def execute(self, args, output = True, check = False): args.extend(["--ip", "{}:{}".format(self.conn.ip_addr, self.conn.port)]) else: args.extend(["--ip", self.conn.ip_addr]) + if self.device: + args.extend(["--device", self.device]) + cmd = ' '.join(args) return execute(args, output, check) diff --git a/provision/provision.py b/provision/provision.py index dc8c0f54d59517..caccefe36b25fc 100644 --- a/provision/provision.py +++ b/provision/provision.py @@ -267,7 +267,7 @@ def main(argv): args.load() # Gather device info - cmmd = Commander(args.conn) + cmmd = Commander(args) info = cmmd.info() paths = Paths(info, args) if args.part_number is None: