A cute tiny piece of code implementing an IoT NAND device, demonstrating how to setup and advertise a cute GATT (NAND) service. The code has been tested on a Nordic nRF51822-DK.

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_HeartRate_IDB0XA1 by ST

Committer:
hux
Date:
Sun Jan 08 23:15:53 2017 +0000
Revision:
23:2e73c391bb12
A cute tiny piece of code implementing an Iot NAND device, demonstrating how to setup and advertise a cute GATT (NAND) service.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hux 23:2e73c391bb12 1 // init.h - initialize BLE system
hux 23:2e73c391bb12 2 //
hux 23:2e73c391bb12 3 // Synopsis:
hux 23:2e73c391bb12 4 //
hux 23:2e73c391bb12 5 // void init(Blob &o, void (*scb)(Blob&),void (*ecb)(Blob&)) // init BLE
hux 23:2e73c391bb12 6 // void init(Blob &o, void (*scb)(Blob&)) // init BLE
hux 23:2e73c391bb12 7 //
hux 23:2e73c391bb12 8 // Arguments:
hux 23:2e73c391bb12 9 //
hux 23:2e73c391bb12 10 // o: Blob object (to avoid name clashes)
hux 23:2e73c391bb12 11 // scb: setup callback
hux 23:2e73c391bb12 12 // ecb: error callback
hux 23:2e73c391bb12 13 //
hux 23:2e73c391bb12 14 // Description:
hux 23:2e73c391bb12 15 //
hux 23:2e73c391bb12 16 // Initialize BLE system, providing a setup callback and optionally an error
hux 23:2e73c391bb12 17 // callback. The actual initializing happens in the setup callback. If an
hux 23:2e73c391bb12 18 // error occurs during initializin, the error callback will be consulted. If
hux 23:2e73c391bb12 19 // no error callback is provided an implicit error callback will be called.
hux 23:2e73c391bb12 20 //
hux 23:2e73c391bb12 21 // Example 1: simple BLE system setup
hux 23:2e73c391bb12 22 //
hux 23:2e73c391bb12 23 // void cbSetup(Blob &o)
hux 23:2e73c391bb12 24 // {
hux 23:2e73c391bb12 25 // device(o,"IoT node"); // setup device name
hux 23:2e73c391bb12 26 // name(o,"Node #1"); // setup advertising name
hux 23:2e73c391bb12 27 // advertise("C:ng"); // start advertising
hux 23:2e73c391bb12 28 // }
hux 23:2e73c391bb12 29 //
hux 23:2e73c391bb12 30 // main(void)
hux 23:2e73c391bb12 31 // {
hux 23:2e73c391bb12 32 // Blob o; // our Blob object
hux 23:2e73c391bb12 33 // init(o,cbSetup); // init BLE base layer, always do first
hux 23:2e73c391bb12 34 // while (true) // Infinite loop waiting for BLE events
hux 23:2e73c391bb12 35 // sleep(o); // low energy waiting
hux 23:2e73c391bb12 36 // }
hux 23:2e73c391bb12 37 //
hux 23:2e73c391bb12 38 // Example 2: Provide also error handler
hux 23:2e73c391bb12 39 //
hux 23:2e73c391bb12 40 // void cbError(Blob &o)
hux 23:2e73c391bb12 41 // {
hux 23:2e73c391bb12 42 // trace(0,"init error!");
hux 23:2e73c391bb12 43 // }
hux 23:2e73c391bb12 44 //
hux 23:2e73c391bb12 45 // void cbSetup(Blob &o)
hux 23:2e73c391bb12 46 // {
hux 23:2e73c391bb12 47 // device(o,"IoT node"); // setup device name
hux 23:2e73c391bb12 48 // name(o,"Node #1"); // setup advertising name
hux 23:2e73c391bb12 49 // advertise("C:ng"); // start advertising
hux 23:2e73c391bb12 50 // }
hux 23:2e73c391bb12 51 //
hux 23:2e73c391bb12 52 // main(void)
hux 23:2e73c391bb12 53 // {
hux 23:2e73c391bb12 54 // Blob o; // our Blob object
hux 23:2e73c391bb12 55 // init(o,cbSetup,cbError); // init BLE base layer, always do first
hux 23:2e73c391bb12 56 // while (true) // Infinite loop waiting for BLE events
hux 23:2e73c391bb12 57 // sleep(o); // low energy waiting
hux 23:2e73c391bb12 58 // }
hux 23:2e73c391bb12 59 //
hux 23:2e73c391bb12 60 // See also: BLOB, INIT
hux 23:2e73c391bb12 61 //
hux 23:2e73c391bb12 62 #ifndef _INIT_H_
hux 23:2e73c391bb12 63 #define _INIT_H_
hux 23:2e73c391bb12 64
hux 23:2e73c391bb12 65 #include "bricks/o.h"
hux 23:2e73c391bb12 66
hux 23:2e73c391bb12 67 //==============================================================================
hux 23:2e73c391bb12 68 // Initializing
hux 23:2e73c391bb12 69 //==============================================================================
hux 23:2e73c391bb12 70
hux 23:2e73c391bb12 71 void init(O&o, void (*scb)(O&o),void (*ecb)(O&o)); // init BLE
hux 23:2e73c391bb12 72 void init(O&o, void (*scb)(O&o)); // init BLE system
hux 23:2e73c391bb12 73
hux 23:2e73c391bb12 74 #endif // _INIT_H_