![](/media/cache/profiles/b67245cccae7128e11b41880910d4fd0.jpg.50x50_q85.png)
BLE GATT Button on Board Example Nucleo IDB0XA1
Dependencies: BLE_API X_NUCLEO_IDB0XA1 mbed
Fork of BLE_GAP_Example by
Diff: main.cpp
- Revision:
- 8:5442739198ec
- Parent:
- 7:f9a2fa5b1d43
- Child:
- 11:c9c0c4586c5f
--- a/main.cpp Tue Mar 10 22:42:14 2015 +0000 +++ b/main.cpp Tue Mar 17 19:45:19 2015 +0000 @@ -6,21 +6,28 @@ // BLE object BLEDevice ble; -//const static char DEVICE_NAME[] = "ChangeMe!!"; // change this +// Optional name, add for human read-ability +//const static char DEVICE_NAME[] = "ChangeMe!!"; // Optional: device name /** - You have up to 26 bytes of advertising data to use. - Make up your own encoding for these 26bytes, send it across - and decode it using the evothings app. + * You have up to 26 bytes of advertising data to use. + * Make up your own encoding for these 26bytes, send it across + * and decode it using the evothings app. */ -//const static uint8_t AdvData[] = {"ChangeThisData"}; // example of character data +//const static uint8_t AdvData[] = {"ChangeThisData"}; // example of character data const static uint8_t AdvData[] = {0x01,0x02,0x03,0x04,0x05}; // example of hex data +// Restart advertising when phone app disconnects +void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason){ + ble.startAdvertising(); +} + // main program int main(void) { // Initialize BLE baselayer, always do this first! ble.init(); + // ble.onDisconnection(disconnectionCallback); // Optional: add callback for disconnection // Sacrifice 3B of 31B to Advertising Flags ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE ); @@ -29,7 +36,7 @@ // Sacrifice 2B of 31B to AdvType overhead, rest goes to AdvData array you define ble.accumulateAdvertisingPayload(GapAdvertisingData::MANUFACTURER_SPECIFIC_DATA, AdvData, sizeof(AdvData)); - // Add name to device + // Optional: Add name to device //ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); // Set advertising interval. Longer interval = longer battery life @@ -38,6 +45,6 @@ // Infinite loop waiting for BLE events for (;;) { - ble.waitForEvent(); // this saves battery + ble.waitForEvent(); // this saves battery while waiting for callback events } }