From a0af9d4b393f50dd9631938f29e45419e9439fb6 Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Tue, 16 Nov 2021 23:17:12 +0100 Subject: [PATCH] ecg: handle error when writing to BLE fails --- preload/apps/ecg/__init__.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/preload/apps/ecg/__init__.py b/preload/apps/ecg/__init__.py index 43eed2d6..b9bad34d 100644 --- a/preload/apps/ecg/__init__.py +++ b/preload/apps/ecg/__init__.py @@ -177,13 +177,18 @@ class ECG: def callback_ecg(self, datasets): if self.ble_streaming: + try: + self.b.gatts_notify( + 1, + self.ecg_data_handle, + struct.pack(">h", self.ble_sample_count & 0xFFFF) + + struct.pack(">" + ("h" * len(datasets)), *datasets), + ) + except OSError: + pass + + # We count all samples, even if we failed to send them self.ble_sample_count += len(datasets) - self.b.gatts_notify( - 1, - self.ecg_data_handle, - struct.pack(">h", self.ble_sample_count & 0xFFFF) - + struct.pack(">" + ("h" * len(datasets)), *datasets), - ) # Don't update the screen if it should be off during a connection if not config.get_option("BLE Disp"): -- GitLab