A nice BLE demo program which allows remote switch of an LED via GATT interface.
Dependencies: BLE_API mbed nRF51822
Fork of BLE_Button by
bricks/blink.h@13:0563f1aa6a75, 2017-10-21 (annotated)
- Committer:
- hux
- Date:
- Sat Oct 21 19:56:15 2017 +0000
- Revision:
- 13:0563f1aa6a75
Switch LED via BLE GATT
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hux | 13:0563f1aa6a75 | 1 | // blink.h - blinking sequences for LED1 |
hux | 13:0563f1aa6a75 | 2 | #ifndef _BLINK_H_ |
hux | 13:0563f1aa6a75 | 3 | #define _BLINK_H_ |
hux | 13:0563f1aa6a75 | 4 | |
hux | 13:0563f1aa6a75 | 5 | #include <mbed.h> |
hux | 13:0563f1aa6a75 | 6 | #include "bricks/o.h" |
hux | 13:0563f1aa6a75 | 7 | |
hux | 13:0563f1aa6a75 | 8 | # define BLINK_SEQUENCE_IDLE "x " |
hux | 13:0563f1aa6a75 | 9 | # define BLINK_SEQUENCE_ADVERTISE "x xxx " |
hux | 13:0563f1aa6a75 | 10 | # define BLINK_SEQUENCE_CONNECTED " xxx " |
hux | 13:0563f1aa6a75 | 11 | # define BLINK_SEQUENCE_ACTION "x x x x x " |
hux | 13:0563f1aa6a75 | 12 | # define BLINK_SEQUENCE_ERROR "x x x x xxx " |
hux | 13:0563f1aa6a75 | 13 | # define BLINK_SEQUENCE_TRANSITION "x x x " |
hux | 13:0563f1aa6a75 | 14 | |
hux | 13:0563f1aa6a75 | 15 | void morse(O&o,const char *pattern, double periode = 0.2); |
hux | 13:0563f1aa6a75 | 16 | void blink(O&o,const char *pattern, const char* next, double interval = 0.2); |
hux | 13:0563f1aa6a75 | 17 | void blink(O&o,const char *pattern, double periode = 0.2); |
hux | 13:0563f1aa6a75 | 18 | |
hux | 13:0563f1aa6a75 | 19 | inline void blinkIdle(O&o, const char *action = BLINK_SEQUENCE_IDLE) |
hux | 13:0563f1aa6a75 | 20 | { |
hux | 13:0563f1aa6a75 | 21 | blink(o,action,BLINK_SEQUENCE_IDLE); |
hux | 13:0563f1aa6a75 | 22 | } |
hux | 13:0563f1aa6a75 | 23 | |
hux | 13:0563f1aa6a75 | 24 | inline void blinkAdvertise(O&o,const char *action = BLINK_SEQUENCE_ADVERTISE) |
hux | 13:0563f1aa6a75 | 25 | { |
hux | 13:0563f1aa6a75 | 26 | blink(o,action,BLINK_SEQUENCE_ADVERTISE); |
hux | 13:0563f1aa6a75 | 27 | } |
hux | 13:0563f1aa6a75 | 28 | |
hux | 13:0563f1aa6a75 | 29 | inline void blinkConnected(O&o, const char *action = BLINK_SEQUENCE_ACTION) |
hux | 13:0563f1aa6a75 | 30 | { |
hux | 13:0563f1aa6a75 | 31 | blink(o,action, BLINK_SEQUENCE_CONNECTED); |
hux | 13:0563f1aa6a75 | 32 | } |
hux | 13:0563f1aa6a75 | 33 | |
hux | 13:0563f1aa6a75 | 34 | inline void blinkAction(O&o) // 'action' blink sequence |
hux | 13:0563f1aa6a75 | 35 | { |
hux | 13:0563f1aa6a75 | 36 | blink(o,BLINK_SEQUENCE_ACTION, BLINK_SEQUENCE_IDLE); |
hux | 13:0563f1aa6a75 | 37 | } |
hux | 13:0563f1aa6a75 | 38 | |
hux | 13:0563f1aa6a75 | 39 | inline void blinkError(O&o, const char *action = BLINK_SEQUENCE_ERROR) |
hux | 13:0563f1aa6a75 | 40 | { |
hux | 13:0563f1aa6a75 | 41 | blink(o,action,BLINK_SEQUENCE_ERROR); |
hux | 13:0563f1aa6a75 | 42 | } |
hux | 13:0563f1aa6a75 | 43 | |
hux | 13:0563f1aa6a75 | 44 | inline void blink(O&o) // stop blinking |
hux | 13:0563f1aa6a75 | 45 | { |
hux | 13:0563f1aa6a75 | 46 | blink(o,""); // empty blinking pattern |
hux | 13:0563f1aa6a75 | 47 | } |
hux | 13:0563f1aa6a75 | 48 | |
hux | 13:0563f1aa6a75 | 49 | #endif // _BLINK_H_ |