From b9f35c4259afb81abdf2c9aba5aa21956fe7dc19 Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Sun, 14 Nov 2021 01:04:23 +0100 Subject: [PATCH] ecg: handle ble inactive exception --- preload/apps/ecg/__init__.py | 52 ++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/preload/apps/ecg/__init__.py b/preload/apps/ecg/__init__.py index e9b1599a..3b9b5fa7 100644 --- a/preload/apps/ecg/__init__.py +++ b/preload/apps/ecg/__init__.py @@ -8,9 +8,9 @@ import math import struct import itertools import bluetooth -from ecg.settings import * +import ecg.settings -config = ecg_settings() +config = ecg.settings.ecg_settings() WIDTH = 160 HEIGHT = 80 @@ -89,23 +89,27 @@ class ECG: self.disp.backlight(0) def __init__(self): - self.b = bluetooth.BLE() - self.b.active(True) - self.b.irq(self.ble_irq) - - _ECG_UUID = bluetooth.UUID("42230300-2342-2342-2342-234223422342") - _ECG_DATA = ( - bluetooth.UUID("42230301-2342-2342-2342-234223422342"), - bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY, - ) + try: + self.b = bluetooth.BLE() + self.b.active(True) + self.b.irq(self.ble_irq) + + _ECG_UUID = bluetooth.UUID("42230300-2342-2342-2342-234223422342") + _ECG_DATA = ( + bluetooth.UUID("42230301-2342-2342-2342-234223422342"), + bluetooth.FLAG_READ | bluetooth.FLAG_NOTIFY, + ) - _ECG_SERVICE = (_ECG_UUID, (_ECG_DATA,)) - ((self.ecg_data_handle,),) = self.b.gatts_register_services((_ECG_SERVICE,)) - self.ecg_cccd_handle = self.ecg_data_handle + 1 + _ECG_SERVICE = (_ECG_UUID, (_ECG_DATA,)) + ((self.ecg_data_handle,),) = self.b.gatts_register_services((_ECG_SERVICE,)) + self.ecg_cccd_handle = self.ecg_data_handle + 1 - # Disable streaming by default - self.ble_streaming = False - self.b.gatts_write(self.ecg_cccd_handle, "\x00\x00") + # Disable streaming by default + self.ble_streaming = False + self.b.gatts_write(self.ecg_cccd_handle, "\x00\x00") + except OSError: + self.ble_streaming = False + pass leds.dim_top(1) @@ -169,15 +173,11 @@ class ECG: def callback_ecg(self, datasets): if self.ble_streaming: - # try: - if 1: - self.b.gatts_notify( - 1, - self.ecg_data_handle, - struct.pack(">" + ("h" * len(datasets)), *datasets), - ) - # except: - pass + self.b.gatts_notify( + 1, + self.ecg_data_handle, + 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