Skip to content

Commit 17ef524

Browse files
committed
[Python] Convert UnpairDevice/OpenCommissioningWindow to asyncio
1 parent 03accc1 commit 17ef524

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/controller/python/chip/ChipDeviceCtrl.py

+11-9
Original file line numberDiff line numberDiff line change
@@ -588,15 +588,16 @@ async def ConnectBLE(self, discriminator: int, setupPinCode: int, nodeid: int, i
588588

589589
return await asyncio.futures.wrap_future(ctx.future)
590590

591-
def UnpairDevice(self, nodeid: int) -> None:
591+
async def UnpairDevice(self, nodeid: int) -> None:
592592
self.CheckIsActive()
593593

594594
with self._unpair_device_context as ctx:
595-
self._ChipStack.Call(
595+
res = await self._ChipStack.CallAsync(
596596
lambda: self._dmLib.pychip_DeviceController_UnpairDevice(
597597
self.devCtrl, nodeid, self.cbHandleDeviceUnpairCompleteFunct)
598-
).raise_on_error()
599-
ctx.future.result()
598+
)
599+
res.raise_on_error()
600+
return await asyncio.futures.wrap_future(ctx.future)
600601

601602
def CloseBLEConnection(self):
602603
self.CheckIsActive()
@@ -776,8 +777,8 @@ class CommissioningWindowPasscode(enum.IntEnum):
776777
kOriginalSetupCode = 0,
777778
kTokenWithRandomPin = 1,
778779

779-
def OpenCommissioningWindow(self, nodeid: int, timeout: int, iteration: int,
780-
discriminator: int, option: CommissioningWindowPasscode) -> CommissioningParameters:
780+
async def OpenCommissioningWindow(self, nodeid: int, timeout: int, iteration: int,
781+
discriminator: int, option: CommissioningWindowPasscode) -> CommissioningParameters:
781782
''' Opens a commissioning window on the device with the given nodeid.
782783
nodeid: Node id of the device
783784
timeout: Command timeout
@@ -794,12 +795,13 @@ def OpenCommissioningWindow(self, nodeid: int, timeout: int, iteration: int,
794795
self.CheckIsActive()
795796

796797
with self._open_window_context as ctx:
797-
self._ChipStack.Call(
798+
res = await self._ChipStack.CallAsync(
798799
lambda: self._dmLib.pychip_DeviceController_OpenCommissioningWindow(
799800
self.devCtrl, self.pairingDelegate, nodeid, timeout, iteration, discriminator, option)
800-
).raise_on_error()
801+
)
802+
res.raise_on_error()
801803

802-
return ctx.future.result()
804+
return await asyncio.futures.wrap_future(ctx.future)
803805

804806
def GetCompressedFabricId(self):
805807
self.CheckIsActive()

0 commit comments

Comments
 (0)