Bluetooth Connected TOF Sensor

Dependencies:   BLE_API X_NUCLEO_6180XA1 X_NUCLEO_IDB0XA1 mbed

Fork of BLE_HeartRate_IDB0XA1 by ST

Committer:
hux
Date:
Wed Feb 01 22:35:28 2017 +0000
Revision:
29:cf61a5826426
Small modification to reduce display flickering

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hux 29:cf61a5826426 1 // init.cpp - initialize BLE system
hux 29:cf61a5826426 2
hux 29:cf61a5826426 3 #include "bricks/init.h"
hux 29:cf61a5826426 4 #include "bricks/blinker.h"
hux 29:cf61a5826426 5 #include "bricks/trace.h"
hux 29:cf61a5826426 6
hux 29:cf61a5826426 7 static void (*cbSetup)(O&o) = 0; // setup callback
hux 29:cf61a5826426 8 static void (*cbError)(O&o) = 0; // error callback
hux 29:cf61a5826426 9
hux 29:cf61a5826426 10 static void cbDefaultError(O&o) // default error handler
hux 29:cf61a5826426 11 {
hux 29:cf61a5826426 12 Blinker blink;
hux 29:cf61a5826426 13 blink.error(); // 'error' blink sequence
hux 29:cf61a5826426 14 }
hux 29:cf61a5826426 15
hux 29:cf61a5826426 16 static void cbDefaultComplete(O&o) // default error handler
hux 29:cf61a5826426 17 {
hux 29:cf61a5826426 18 // empty
hux 29:cf61a5826426 19 }
hux 29:cf61a5826426 20
hux 29:cf61a5826426 21 static void initComplete(BLE::InitializationCompleteCallbackContext *params)
hux 29:cf61a5826426 22 {
hux 29:cf61a5826426 23 Blob o; // setup a blob
hux 29:cf61a5826426 24 o.pComplete = params; // store to provide access
hux 29:cf61a5826426 25
hux 29:cf61a5826426 26 // params->error = (ble_error_t)((int)BLE_ERROR_NONE+1); // uncomment for debug
hux 29:cf61a5826426 27
hux 29:cf61a5826426 28 trace(o,2,"<initialized>\n");
hux 29:cf61a5826426 29
hux 29:cf61a5826426 30 if (params->error != BLE_ERROR_NONE)
hux 29:cf61a5826426 31 {
hux 29:cf61a5826426 32 trace(o,0,"error\n");
hux 29:cf61a5826426 33 if (cbError)
hux 29:cf61a5826426 34 (*cbError)(o); // handle error in follow-up
hux 29:cf61a5826426 35
hux 29:cf61a5826426 36 return;
hux 29:cf61a5826426 37 }
hux 29:cf61a5826426 38
hux 29:cf61a5826426 39 // Ensure that it is the default instance of BLE
hux 29:cf61a5826426 40
hux 29:cf61a5826426 41 if(o.getInstanceID() != BLE::DEFAULT_INSTANCE)
hux 29:cf61a5826426 42 {
hux 29:cf61a5826426 43 return;
hux 29:cf61a5826426 44 }
hux 29:cf61a5826426 45
hux 29:cf61a5826426 46 (*cbSetup)(o); // followup with setup
hux 29:cf61a5826426 47 }
hux 29:cf61a5826426 48
hux 29:cf61a5826426 49
hux 29:cf61a5826426 50 void init(O&o, void (*scb)(O&o),void (*ecb)(O&o)) // init BLE system
hux 29:cf61a5826426 51 {
hux 29:cf61a5826426 52 cbSetup = scb; // store setup callback
hux 29:cf61a5826426 53 cbError = ecb; // store error callback
hux 29:cf61a5826426 54 o.init(initComplete);
hux 29:cf61a5826426 55 }
hux 29:cf61a5826426 56
hux 29:cf61a5826426 57
hux 29:cf61a5826426 58 void init(O&o, void (*scb)(O&o)) // initialize BLE system
hux 29:cf61a5826426 59 {
hux 29:cf61a5826426 60 init(o,scb,cbDefaultError); // continue with default error callback
hux 29:cf61a5826426 61 }
hux 29:cf61a5826426 62
hux 29:cf61a5826426 63 void init(O&o) // initialize BLE system
hux 29:cf61a5826426 64 {
hux 29:cf61a5826426 65 init(o,cbDefaultComplete,cbDefaultError);
hux 29:cf61a5826426 66 while (!o.hasInitialized())
hux 29:cf61a5826426 67 {
hux 29:cf61a5826426 68 trace(o,1,"waiting for initialized BLE!\n");
hux 29:cf61a5826426 69 wait_ms(200);
hux 29:cf61a5826426 70 }
hux 29:cf61a5826426 71 }