Skip to content

Commit 85212de

Browse files
committed
tools: native_bt: improve handling of failed connections
Catch more exceptions and report the failed connections back to the initiating tools. Signed-off-by: Jordan Yates <jordan@embeint.com>
1 parent 52eb586 commit 85212de

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/infuse_iot/tools/native_bt.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from bleak.backends.characteristic import BleakGATTCharacteristic
1717
from bleak.backends.device import BLEDevice
1818
from bleak.backends.scanner import AdvertisementData
19+
from bleak.exc import BleakError
1920
from cryptography.exceptions import InvalidTag
2021

2122
import infuse_iot.definitions.rpc as defs
@@ -214,8 +215,12 @@ def security_state_done(pkt: PacketReceived, _rc: int, response: bytes, challeng
214215
async def create_connection(self, request: GatewayRequestConnectionRequest, dev: BLEDevice, queue: asyncio.Queue):
215216
try:
216217
await self.create_connection_internal(request, dev, queue)
218+
except BleakError as e:
219+
Console.log_info(f"Bleak Error: {str(e)}")
220+
self.wrapped_broadcast(ClientNotificationConnectionFailed(request.infuse_id))
217221
except TimeoutError as e:
218222
Console.log_info(f"Timeout: {str(e)}")
223+
self.wrapped_broadcast(ClientNotificationConnectionFailed(request.infuse_id))
219224

220225
def datagram_received(self, data: bytes, addr: tuple[str | Any, int]):
221226
loop = asyncio.get_event_loop()

0 commit comments

Comments
 (0)