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
diff -r a872df2e051e -r 288b2baffd14 main.cpp
--- 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);
}