An example of creating and updating a simple GATT Service using the BLE_API
Dependencies: BLE_API mbed nRF51822 X_NUCLEO_IDB0XA1
This example creates and updates a standard Battery Level service, and a single GATT characteristic that contains the battery level.
Diff: main.cpp
- Revision:
- 3:288b2baffd14
- Parent:
- 2:a872df2e051e
- Child:
- 4:5b64235d1b85
--- a/main.cpp Thu Jan 09 16:43:18 2014 +0000 +++ b/main.cpp Thu Jan 16 22:31:47 2014 +0000 @@ -1,31 +1,31 @@ #include "mbed.h" -#include "UUID.h" -#include "nRF51822.h" +#include "blecommon.h" +#include "hw/nRF51822s/nRF51822s.h" -/* Radio HW */ -nRF51822 radio(p9, p10, p30, p29); // tx, rx, rts, cts +nRF51822s nrf ( p9, p10, p30, p29 ); /* (tx, rx, rts, cts) */ +GattService battService ( 0x180F ); +GattCharacteristic battLevel ( 0x2A19, 1, 1, + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_NOTIFY | + GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ); int main(void) { - GattService battService ( 0x180F ); - GattCharacteristic battLevel ( 0x2A19, 1, 1, BLE_GATT_CHAR_PROPERTIES_NOTIFY | BLE_GATT_CHAR_PROPERTIES_READ); - - /* Make sure we get a clean start */ - radio.reset(); + /* Make sure we get a clean start */ + nrf.reset(); /* Add the characteristic to our service */ battService.addCharacteristic(battLevel); /* Pass the service into the radio */ - radio.addService(battService); + nrf.getGattServer().addService(battService); /* Configure the radio and start advertising with default values */ /* Make sure you've added all of your services before calling this function! */ - radio.start(); + nrf.getGap().startAdvertising(); /* Now that we're live, update the battery level characteristic */ uint8_t batt = 72; - radio.writeCharacteristic(battLevel.handle, (uint8_t*)&batt, sizeof(batt)); + nrf.getGattServer().updateValue(battLevel.handle, (uint8_t*)&batt, sizeof(batt)); while(1); }