e
Dependencies: BLE_API mbed nRF51822
Fork of UART_TEMPLATE by
main.cpp@1:b4a5d773230e, 2016-03-07 (annotated)
- Committer:
- tucanae47
- Date:
- Mon Mar 07 22:01:43 2016 +0000
- Revision:
- 1:b4a5d773230e
- Parent:
- 0:442c7a6f1978
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tucanae47 | 1:b4a5d773230e | 1 | |
Daniel Veilleux |
0:442c7a6f1978 | 2 | |
Daniel Veilleux |
0:442c7a6f1978 | 3 | #include "mbed.h" |
Daniel Veilleux |
0:442c7a6f1978 | 4 | #include "BLEDevice.h" |
Daniel Veilleux |
0:442c7a6f1978 | 5 | |
Daniel Veilleux |
0:442c7a6f1978 | 6 | |
tucanae47 | 1:b4a5d773230e | 7 | #define SENSOR_READ_INTERVAL_S (0.5F) |
tucanae47 | 1:b4a5d773230e | 8 | #define ADV_INTERVAL_MS (1000UL) |
tucanae47 | 1:b4a5d773230e | 9 | #define DEVICE_NAME ("SOYNORDIC") // This can be read AFTER connecting to the device. |
tucanae47 | 1:b4a5d773230e | 10 | #define SHORT_NAME ("HACKDEMO") // Keep this short: max 8 chars if a 128bit UUID is also advertised. |
Daniel Veilleux |
0:442c7a6f1978 | 11 | |
Daniel Veilleux |
0:442c7a6f1978 | 12 | |
tucanae47 | 1:b4a5d773230e | 13 | DigitalOut led1(LED1); |
tucanae47 | 1:b4a5d773230e | 14 | DigitalOut led2(LED2); |
tucanae47 | 1:b4a5d773230e | 15 | BLEDevice m_ble; |
Daniel Veilleux |
0:442c7a6f1978 | 16 | |
Daniel Veilleux |
0:442c7a6f1978 | 17 | |
tucanae47 | 1:b4a5d773230e | 18 | |
tucanae47 | 1:b4a5d773230e | 19 | |
tucanae47 | 1:b4a5d773230e | 20 | |
Daniel Veilleux |
0:442c7a6f1978 | 21 | |
Daniel Veilleux |
0:442c7a6f1978 | 22 | |
Daniel Veilleux |
0:442c7a6f1978 | 23 | /** |
Daniel Veilleux |
0:442c7a6f1978 | 24 | * This callback is scheduled to be called periodically via a low-priority interrupt. |
Daniel Veilleux |
0:442c7a6f1978 | 25 | */ |
Daniel Veilleux |
0:442c7a6f1978 | 26 | void periodicCallback(void) |
Daniel Veilleux |
0:442c7a6f1978 | 27 | { |
tucanae47 | 1:b4a5d773230e | 28 | led1 = !led1; /* Do blinky on LED1 while we're waiting for BLE events */ |
tucanae47 | 1:b4a5d773230e | 29 | led2 = !led2; |
Daniel Veilleux |
0:442c7a6f1978 | 30 | } |
Daniel Veilleux |
0:442c7a6f1978 | 31 | |
Daniel Veilleux |
0:442c7a6f1978 | 32 | |
Daniel Veilleux |
0:442c7a6f1978 | 33 | |
Daniel Veilleux |
0:442c7a6f1978 | 34 | |
Daniel Veilleux |
0:442c7a6f1978 | 35 | int main(void) |
Daniel Veilleux |
0:442c7a6f1978 | 36 | { |
Daniel Veilleux |
0:442c7a6f1978 | 37 | Ticker ticker; |
Daniel Veilleux |
0:442c7a6f1978 | 38 | |
Daniel Veilleux |
0:442c7a6f1978 | 39 | |
tucanae47 | 1:b4a5d773230e | 40 | |
Daniel Veilleux |
0:442c7a6f1978 | 41 | ticker.attach(periodicCallback, SENSOR_READ_INTERVAL_S); |
Daniel Veilleux |
0:442c7a6f1978 | 42 | |
Daniel Veilleux |
0:442c7a6f1978 | 43 | m_ble.init(); |
tucanae47 | 1:b4a5d773230e | 44 | |
Daniel Veilleux |
0:442c7a6f1978 | 45 | // Set the TX power in dBm units. |
Daniel Veilleux |
0:442c7a6f1978 | 46 | // Possible values (in decreasing order): 4, 0, -4, -8, -12, -16, -20. |
tucanae47 | 1:b4a5d773230e | 47 | m_ble.setTxPower(4); |
tucanae47 | 1:b4a5d773230e | 48 | |
Daniel Veilleux |
0:442c7a6f1978 | 49 | |
Daniel Veilleux |
0:442c7a6f1978 | 50 | // Setup advertising (GAP stuff). |
tucanae47 | 1:b4a5d773230e | 51 | m_ble.setDeviceName(DEVICE_NAME); |
tucanae47 | 1:b4a5d773230e | 52 | m_ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED); |
tucanae47 | 1:b4a5d773230e | 53 | |
Daniel Veilleux |
0:442c7a6f1978 | 54 | m_ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); |
Daniel Veilleux |
0:442c7a6f1978 | 55 | |
tucanae47 | 1:b4a5d773230e | 56 | m_ble.accumulateAdvertisingPayload(GapAdvertisingData::SHORTENED_LOCAL_NAME, |
Daniel Veilleux |
0:442c7a6f1978 | 57 | (const uint8_t *)SHORT_NAME, |
Daniel Veilleux |
0:442c7a6f1978 | 58 | (sizeof(SHORT_NAME) - 1)); |
tucanae47 | 1:b4a5d773230e | 59 | |
Daniel Veilleux |
0:442c7a6f1978 | 60 | |
tucanae47 | 1:b4a5d773230e | 61 | |
Daniel Veilleux |
0:442c7a6f1978 | 62 | m_ble.setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(ADV_INTERVAL_MS)); |
Daniel Veilleux |
0:442c7a6f1978 | 63 | m_ble.startAdvertising(); |
Daniel Veilleux |
0:442c7a6f1978 | 64 | |
tucanae47 | 1:b4a5d773230e | 65 | |
Daniel Veilleux |
0:442c7a6f1978 | 66 | while (true) { |
Daniel Veilleux |
0:442c7a6f1978 | 67 | m_ble.waitForEvent(); |
Daniel Veilleux |
0:442c7a6f1978 | 68 | } |
Daniel Veilleux |
0:442c7a6f1978 | 69 | } |