From 4ebb928400bfa519447fa4ad69599c7620b7a1f9 Mon Sep 17 00:00:00 2001 From: Wolfgang Nagele Date: Wed, 13 Mar 2024 14:08:32 +0100 Subject: [PATCH] Make BLE connections a bit more resilient --- meshtastic/ble_interface.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/meshtastic/ble_interface.py b/meshtastic/ble_interface.py index 2cf2b1ad..dbe87cdd 100644 --- a/meshtastic/ble_interface.py +++ b/meshtastic/ble_interface.py @@ -60,7 +60,7 @@ def __init__(self, address, noProto = False, debugOut = None): MeshInterface.__init__(self, debugOut = debugOut, noProto = noProto) self._startConfig() if not self.noProto: - self._waitConnected() + self._waitConnected(timeout = 60.0) self.waitForConfig() self.state.MESH = True logging.debug("Mesh init finished") @@ -124,9 +124,14 @@ def _receiveFromRadioImpl(self): while self._receiveThread_started.is_set(): if self.should_read: self.should_read = False + retries = 0 while True: b = bytes(self.client.read_gatt_char(FROMRADIO_UUID)) if not b: + if retries < 5: + time.sleep(0.1) + retries += 1 + continue break logging.debug(f"FROMRADIO read: {b.hex()}") self._handleFromRadio(b)