From c7be3eec16654b75b6dd8165e50ff4b70bdee27d Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Sun, 14 Nov 2021 00:41:03 +0100 Subject: [PATCH] ble: Don't panic when initializing BLE from mpy if ble is off --- epicardium/ble/epic_ble_api.c | 8 ++++++++ pycardium/modules/modbluetooth_card10.c | 11 ++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/epicardium/ble/epic_ble_api.c b/epicardium/ble/epic_ble_api.c index c1fa3e11..68ad55a3 100644 --- a/epicardium/ble/epic_ble_api.c +++ b/epicardium/ble/epic_ble_api.c @@ -97,6 +97,10 @@ void ble_epic_ble_api_trigger_event(enum epic_ble_event_type type, void *data) int epic_ble_get_event(struct epic_ble_event *e) { + if (!ble_is_enabled()) { + return -EIO; + } + if (xQueueReceive(ble_event_queue, e, 0) != pdTRUE) { return -ENOENT; } @@ -162,6 +166,10 @@ void vDmTimerCallback() int epic_ble_init(void) { + if (!ble_is_enabled()) { + return -EIO; + } + if (dm_timer == NULL) { dm_timer = xTimerCreateStatic( "dmtimer", diff --git a/pycardium/modules/modbluetooth_card10.c b/pycardium/modules/modbluetooth_card10.c index 61d244ca..995a0c1c 100644 --- a/pycardium/modules/modbluetooth_card10.c +++ b/pycardium/modules/modbluetooth_card10.c @@ -474,9 +474,14 @@ int mp_bluetooth_init(void) MP_ROM_INT(EPIC_INT_BLE), (mp_obj_t *)&ble_event_obj ); clear_events(); - epic_ble_init(); - active = true; - return 0; + int ret = epic_ble_init(); + + if (ret == 0) { + active = true; + } else { + active = false; + } + return ret; } // Disables the Bluetooth stack. Is a no-op when not enabled. -- GitLab