@@ -59,7 +59,7 @@ async def request_pin(self, device: BLEDevice) -> str:
59
59
return response
60
60
61
61
62
- async def main (addr : str , unpair : bool ) -> None :
62
+ async def main (addr : str , unpair : bool , auto : bool ) -> None :
63
63
if unpair :
64
64
print ("unpairing..." )
65
65
try :
@@ -76,16 +76,26 @@ async def main(addr: str, unpair: bool) -> None:
76
76
print ("device was not found" )
77
77
return
78
78
79
- print ("pairing..." )
79
+ if auto :
80
+ print ("connecting and pairing..." )
80
81
81
- async with BleakClient (device ) as client , AgentCallbacks () as callbacks :
82
- try :
83
- await client .pair (callbacks )
84
- print ("pairing successful" )
85
- except BleakPairingCancelledError :
86
- print ("paring was canceled" )
87
- except BleakPairingFailedError :
88
- print ("pairing failed (bad pin?)" )
82
+ async with AgentCallbacks () as callbacks , BleakClient (
83
+ device , pairing_callbacks = callbacks
84
+ ) as client :
85
+ print (f"connection and pairing to { client .address } successful" )
86
+
87
+ else :
88
+ print ("connecting..." )
89
+
90
+ async with BleakClient (device ) as client , AgentCallbacks () as callbacks :
91
+ try :
92
+ print ("pairing..." )
93
+ await client .pair (callbacks )
94
+ print ("pairing successful" )
95
+ except BleakPairingCancelledError :
96
+ print ("paring was canceled" )
97
+ except BleakPairingFailedError :
98
+ print ("pairing failed (bad pin?)" )
89
99
90
100
91
101
if __name__ == "__main__" :
@@ -94,6 +104,9 @@ async def main(addr: str, unpair: bool) -> None:
94
104
parser .add_argument (
95
105
"--unpair" , action = "store_true" , help = "unpair first before pairing"
96
106
)
107
+ parser .add_argument (
108
+ "--auto" , action = "store_true" , help = "automatically pair during connect"
109
+ )
97
110
args = parser .parse_args ()
98
111
99
- asyncio .run (main (args .address , args .unpair ))
112
+ asyncio .run (main (args .address , args .unpair , args . auto ))
0 commit comments