Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822
Fork of BLE_GATT_Example by
Diff: main.cpp
- Revision:
- 2:e84c13abc479
- Parent:
- 1:94152e7d8b5c
- Child:
- 3:0fb60f81f693
--- a/main.cpp Sat Feb 14 06:49:01 2015 +0000
+++ b/main.cpp Sat Feb 14 14:48:29 2015 +0000
@@ -12,6 +12,21 @@
const static char DEVICE_NAME[] = "MyDeviceName"; // change this
static const uint16_t uuid16_list[] = {0xFF}; //Custom UUID, FF is reserved for development
+// Set Up Characteristics
+static uint8_t readValue[1] = {0x00};
+GattCharacteristic readChar(0xAAAA /* read char UUID*/, readValue, sizeof(readValue), sizeof(readValue),
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+
+static uint8_t writeValue[1] = {0x00};
+GattCharacteristic writeChar(0xBBBB /*write char UUID*/, writeValue, sizeof(writeValue), sizeof(writeValue),
+ GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY);
+
+GattCharacteristic *characteristics[] = {&readChar, &writeChar};
+
+// Set up custom service
+GattService customService(0x221D /*Service UUID*/, characteristics, sizeof(characteristics) / sizeof(GattCharacteristic *));
+
+
// Restart advertising when phone app disconnects
void disconnectionCallback(Gap::Handle_t handle, Gap::DisconnectionReason_t reason)
{
@@ -23,7 +38,21 @@
main(void)
{
led = 0; // turn LED off
- ble.init(); // initialize BLE
+ ble.init();
+ ble.onDisconnection(disconnectionCallback);
+
+ /* setup advertising */
+ ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
+ ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
+ ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
+ ble.startAdvertising(); // start advertising
+
+ ble.addService(customService); // Add our custom service to device
+
+ while (true) {
+ ble.waitForEvent(); //Save power
+ }
+
// TODO: impliment the rest of triggering for LED based on Write of characteristic.
// TODO: impliment a read characteristic that sends text back to app
