A blue button is always a nice toy ...
Dependencies: BLE_API X_NUCLEO_IDB0XA1 mbed
Fork of BLE_HeartRate_IDB0XA1 by
main.cpp
- Committer:
- hux
- Date:
- 2017-01-06
- Revision:
- 24:0f08f68579bd
- Parent:
- 23:677689000369
- Child:
- 25:231d3f382583
File content as of revision 24:0f08f68579bd:
// T07N_Easy_GATT - Easy GATT setup using bricks #include "bricks.h" //============================================================================== // Custom Service Setup //============================================================================== // Detection Service Service detection(0xA010,"Detection"); // Detection Service Characteristic<Digital> chrPresence(detection,0xA011, "rn", "Presence"); Characteristic<DateTime> chrTimestamp(detection,0xA012, "r", "Timestamp"); // Address Service Service address(0xA020,"Adress"); // Address Service Characteristic<Digital> chrId(address, 0xA021, "ran", "ID"); Characteristic<Digital> chrName(address, 0xA022, "ran", "Name"); Characteristic<Digital> chrLayout(address, 0xA023, "ran", "Layout"); // Debug Service Service debug(0xA030,"Debug"); // Debug Service Characteristic<Digital> chrTest (debug,0xA031, "w", "Test"); // Configure all supported services void services(Blob &o) // configure all supported services { address.config(o); // configure Address Service detection.config(o); // configure Detection Service debug.config(o); // configure Debug Service } //============================================================================== // Callbacks //============================================================================== void onError(Blob &o) // Error Reporting Callback { (void) o; // Avoid compiler warnings blink(FAULT); // indicate advertising } void onConnect(Blob &blue) // Connection Callback { blink("x x x ",CONNECTED); // indicate advertising } void onDisconnect(Blob &blue) // Disconnection Callback { blue.start(); // start advertising on client disconnect blink(ADVERTISE); // indicate advertising } void onWritten(Blob &o) // Handle writes to writeCharacteristic { if (updated(o,chrTest)) // has chrTest been updated? { Digital value; get(o,chrTest,value); // get value of chrTest set(o,chrPresence,value); // and store this value to chrPresence print(o,chrTest,"test"); blink("x x x xxx xxx xxx x ",CONNECTED); } } void onSetup(Blob &o) // Immediately After Initializing BLE { services(o); // config all services o.onConnect(onConnect); // setup connection callback o.onDisconnect(onDisconnect); // setup disconnection callback o.onWritten(onWritten); // setup data written callback device(o,"nRF51-DK"); // setup device name data(o,"ABCDEF"); // setup advertising data name(o,"T07N#1.0 Easy GATT"); // setup advertising name peripheral(o,"C:ng",100); // start advertising @ 100 msec interval blink(ADVERTISE); // show that board is advertising } //============================================================================== // Main Program //============================================================================== int main(void) { verbose(10); // print all verbose messages blink(IDLE); // idle blinking - just started! Blob blue; // declare a blob (BLE OBject) blue.init(onSetup,onError); // init BLE base layer, always do first while (true) // Infinite loop waiting for BLE events blue.sleep(); // low power waiting for BLE events }