diff --git a/epicardium/ble/epic_ble_api.c b/epicardium/ble/epic_ble_api.c index c1fa3e11ec5efdb4c8fe303115481d19650fb891..68ad55a3bd3ddede3d845ac51b8f60017ea0b129 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 61d244ca563e24533ea9d7951b29bb69a94bea62..995a0c1c216d4081ef74e60583dfa4901c330159 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.