Simple example to demonstrate custom made BLE service and characteristics.

Fork of BLE_GATT_Example by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
mbedAustin
Date:
Mon Mar 09 15:25:43 2015 +0000
Parent:
6:97b22b5bfbb8
Child:
8:60ede963dfe2
Commit message:
changed default name to match Evothings Example, added UUID's to braodcast in advertising packet

Changed in this revision

BLE_API.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
nRF51822.lib Show annotated file Show diff for this revision Revisions of this file
--- a/BLE_API.lib	Sat Feb 14 15:49:47 2015 +0000
+++ b/BLE_API.lib	Mon Mar 09 15:25:43 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/teams/Bluetooth-Low-Energy/code/BLE_API/#1956023d42fb
+http://mbed.org/teams/Bluetooth-Low-Energy/code/BLE_API/#ecbc3405c66e
--- a/main.cpp	Sat Feb 14 15:49:47 2015 +0000
+++ b/main.cpp	Mon Mar 09 15:25:43 2015 +0000
@@ -9,8 +9,8 @@
 // LED object
 DigitalOut led(LED1);
 
-const static char     DEVICE_NAME[]        = "MyDeviceName"; // change this
-static const uint16_t uuid16_list[]        = {0xFF}; //Custom UUID, FF is reserved for development
+const static char     DEVICE_NAME[]        = "ChangeMe!!"; // change this
+static const uint16_t uuid16_list[]        = {0xFFFF}; //Custom UUID, FF is reserved for development
 
 // Set Up Characteristics
 static uint8_t readValue[1] = {0x00};
@@ -33,30 +33,34 @@
     ble.startAdvertising(); // restart advertising
 }
 
-// This function is called whenever someone writes something to the writeCharacteristic
+// handle writes to writeCharacteristic
 void writeCharCallback(const GattCharacteristicWriteCBParams *params)
 {
     led = params->data[0];
     printf("LED Written To, value=%x",params->data[0]);
     // TODO: update the readChar value to match write char, or better yet give it an english value
+    // TODO: update with info from here : http://developer.mbed.org/forum/team-63-Bluetooth-Low-Energy-community/topic/5502/
 }
 
 int
 main(void)
 {
-    led = 0;    // turn LED off
+    led = 1;    // turn LED off
     ble.init();
     ble.onDisconnection(disconnectionCallback);
     ble.onDataWritten(writeCharCallback); //TODO: this is not correct, figure out correct syntax
 
     /* setup advertising */
-    ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED);
-    ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
+    ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE); // BLE only, no classic BT
+    ble.setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED); // advertising type
+    ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LOCAL_NAME, (uint8_t *)DEVICE_NAME, sizeof(DEVICE_NAME)); // add name
+    ble.accumulateAdvertisingPayload(GapAdvertisingData::COMPLETE_LIST_16BIT_SERVICE_IDS, (uint8_t *)uuid16_list, sizeof(uuid16_list)); // UUID's broadcast in advertising packet
     ble.setAdvertisingInterval(160); /* 100ms; in multiples of 0.625ms. */
-    ble.startAdvertising(); // start advertising
+    
 
     ble.addService(customService); // Add our custom service to device
 
+    ble.startAdvertising(); // start advertising
     while (true) {
         ble.waitForEvent(); //Save power
     }
--- a/mbed.bld	Sat Feb 14 15:49:47 2015 +0000
+++ b/mbed.bld	Mon Mar 09 15:25:43 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/mbed_official/code/mbed/builds/e188a91d3eaa
\ No newline at end of file
+http://mbed.org/users/mbed_official/code/mbed/builds/7e07b6fb45cf
\ No newline at end of file
--- a/nRF51822.lib	Sat Feb 14 15:49:47 2015 +0000
+++ b/nRF51822.lib	Mon Mar 09 15:25:43 2015 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/teams/Nordic-Semiconductor/code/nRF51822/#0e7a9efee6d7
+http://mbed.org/teams/Nordic-Semiconductor/code/nRF51822/#e95e35845e1c