@@ -357,6 +357,11 @@ def _finish_init(self):
357
357
358
358
ChipDeviceController .activeList .add (self )
359
359
360
+ def _enablePairingCompeleteCallback (self , value : bool ):
361
+ self ._ChipStack .Call (
362
+ lambda : self ._dmLib .pychip_ScriptDevicePairingDelegate_SetExpectingPairingComplete (self .pairingDelegate , value )
363
+ ).raise_on_error ()
364
+
360
365
@property
361
366
def fabricAdmin (self ) -> FabricAdmin .FabricAdmin :
362
367
return self ._fabricAdmin
@@ -440,6 +445,7 @@ def ConnectBLE(self, discriminator, setupPinCode, nodeid) -> PyChipError:
440
445
self ._ChipStack .commissioningCompleteEvent .clear ()
441
446
442
447
self .state = DCState .COMMISSIONING
448
+ self ._enablePairingCompeleteCallback (True )
443
449
self ._ChipStack .CallAsync (
444
450
lambda : self ._dmLib .pychip_DeviceController_ConnectBLE (
445
451
self .devCtrl , discriminator , setupPinCode , nodeid )
@@ -490,6 +496,7 @@ def EstablishPASESessionBLE(self, setupPinCode: int, discriminator: int, nodeid:
490
496
self .CheckIsActive ()
491
497
492
498
self .state = DCState .RENDEZVOUS_ONGOING
499
+ self ._enablePairingCompeleteCallback (True )
493
500
return self ._ChipStack .CallAsync (
494
501
lambda : self ._dmLib .pychip_DeviceController_EstablishPASESessionBLE (
495
502
self .devCtrl , setupPinCode , discriminator , nodeid )
@@ -499,6 +506,7 @@ def EstablishPASESessionIP(self, ipaddr: str, setupPinCode: int, nodeid: int, po
499
506
self .CheckIsActive ()
500
507
501
508
self .state = DCState .RENDEZVOUS_ONGOING
509
+ self ._enablePairingCompeleteCallback (True )
502
510
return self ._ChipStack .CallAsync (
503
511
lambda : self ._dmLib .pychip_DeviceController_EstablishPASESessionIP (
504
512
self .devCtrl , ipaddr .encode ("utf-8" ), setupPinCode , nodeid , port )
@@ -508,6 +516,7 @@ def EstablishPASESession(self, setUpCode: str, nodeid: int):
508
516
self .CheckIsActive ()
509
517
510
518
self .state = DCState .RENDEZVOUS_ONGOING
519
+ self ._enablePairingCompeleteCallback (True )
511
520
return self ._ChipStack .CallAsync (
512
521
lambda : self ._dmLib .pychip_DeviceController_EstablishPASESession (
513
522
self .devCtrl , setUpCode .encode ("utf-8" ), nodeid )
@@ -1659,6 +1668,10 @@ def _InitLib(self):
1659
1668
c_void_p , _DevicePairingDelegate_OnFabricCheckFunct ]
1660
1669
self ._dmLib .pychip_ScriptDevicePairingDelegate_SetFabricCheckCallback .restype = PyChipError
1661
1670
1671
+ self ._dmLib .pychip_ScriptDevicePairingDelegate_SetExpectingPairingComplete .argtypes = [
1672
+ c_void_p , c_bool ]
1673
+ self ._dmLib .pychip_ScriptDevicePairingDelegate_SetExpectingPairingComplete .restype = PyChipError
1674
+
1662
1675
self ._dmLib .pychip_GetConnectedDeviceByNodeId .argtypes = [
1663
1676
c_void_p , c_uint64 , py_object , _DeviceAvailableCallbackFunct ]
1664
1677
self ._dmLib .pychip_GetConnectedDeviceByNodeId .restype = PyChipError
@@ -1930,6 +1943,7 @@ def CommissionOnNetwork(self, nodeId: int, setupPinCode: int,
1930
1943
1931
1944
self ._ChipStack .commissioningCompleteEvent .clear ()
1932
1945
1946
+ self ._enablePairingCompeleteCallback (True )
1933
1947
self ._ChipStack .CallAsync (
1934
1948
lambda : self ._dmLib .pychip_DeviceController_OnNetworkCommission (
1935
1949
self .devCtrl , self .pairingDelegate , nodeId , setupPinCode , int (filterType ), str (filter ).encode ("utf-8" ) + b"\x00 " if filter is not None else None , discoveryTimeoutMsec )
@@ -1953,6 +1967,7 @@ def CommissionWithCode(self, setupPayload: str, nodeid: int, discoveryType: Disc
1953
1967
1954
1968
self ._ChipStack .commissioningCompleteEvent .clear ()
1955
1969
1970
+ self ._enablePairingCompeleteCallback (True )
1956
1971
self ._ChipStack .CallAsync (
1957
1972
lambda : self ._dmLib .pychip_DeviceController_ConnectWithCode (
1958
1973
self .devCtrl , setupPayload , nodeid , discoveryType .value )
@@ -1972,6 +1987,7 @@ def CommissionIP(self, ipaddr: str, setupPinCode: int, nodeid: int) -> PyChipErr
1972
1987
1973
1988
self ._ChipStack .commissioningCompleteEvent .clear ()
1974
1989
1990
+ self ._enablePairingCompeleteCallback (True )
1975
1991
self ._ChipStack .CallAsync (
1976
1992
lambda : self ._dmLib .pychip_DeviceController_ConnectIP (
1977
1993
self .devCtrl , ipaddr .encode ("utf-8" ), setupPinCode , nodeid )
0 commit comments