Skip to content

Commit 5b8846f

Browse files
committed
tools: native_bt: catch connection exception
Catch the timeout exception for connections timing out. Signed-off-by: Jordan Yates <jordan@embeint.com>
1 parent dd60171 commit 5b8846f

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/infuse_iot/tools/native_bt.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,9 @@ def notification_handler(self, _characteristic: BleakGATTCharacteristic, data: b
9191
Console.log_rx(pkt.ptype, len(data))
9292
self._server.broadcast(ClientNotificationEpacketReceived(pkt))
9393

94-
async def create_connection(self, request: GatewayRequestConnectionRequest, dev: BLEDevice, queue: asyncio.Queue):
94+
async def create_connection_internal(
95+
self, request: GatewayRequestConnectionRequest, dev: BLEDevice, queue: asyncio.Queue
96+
):
9597
Console.log_info(f"{dev}: Initiating connection")
9698
async with BleakClient(dev, timeout=request.timeout_ms / 1000) as client:
9799
# Modified from bleak example code
@@ -147,6 +149,12 @@ async def create_connection(self, request: GatewayRequestConnectionRequest, dev:
147149
self._tasks.pop(request.infuse_id)
148150
Console.log_info(f"{dev}: Terminating connection")
149151

152+
async def create_connection(self, request: GatewayRequestConnectionRequest, dev: BLEDevice, queue: asyncio.Queue):
153+
try:
154+
await self.create_connection_internal(request, dev, queue)
155+
except TimeoutError as e:
156+
Console.log_info(f"Timeout: {str(e)}")
157+
150158
def datagram_received(self, data: bytes, addr: tuple[str | Any, int]):
151159
loop = asyncio.get_event_loop()
152160
request = GatewayRequest.from_json(json.loads(data.decode("utf-8")))

0 commit comments

Comments
 (0)