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.

main.cpp

Committer:
ktownsend
Date:
2014-01-16
Revision:
3:288b2baffd14
Parent:
2:a872df2e051e
Child:
4:5b64235d1b85

File content as of revision 3:288b2baffd14:

#include "mbed.h"
#include "blecommon.h"
#include "hw/nRF51822s/nRF51822s.h"

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)
{
    /* Make sure we get a clean start */
    nrf.reset();
    
    /* Add the characteristic to our service */
    battService.addCharacteristic(battLevel);
    
    /* Pass the service into the radio */
    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! */
    nrf.getGap().startAdvertising();

    /* Now that we're live, update the battery level characteristic */
    uint8_t batt = 72;
    nrf.getGattServer().updateValue(battLevel.handle, (uint8_t*)&batt, sizeof(batt));
    
    while(1);
}