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: nrf51-sdk
Dependents: microbit-dal microbit-ble-open microbit-dal-eddystone microbit-dal-ble-accelerometer-example ... more
Diff: nRF51GattServer.cpp
- Revision:
- 7:dd6465921aaa
- Parent:
- 6:bbb4357dc135
- Child:
- 8:2214f1df6a6a
diff -r bbb4357dc135 -r dd6465921aaa nRF51GattServer.cpp
--- a/nRF51GattServer.cpp Wed May 28 12:55:18 2014 +0100
+++ b/nRF51GattServer.cpp Wed May 28 16:45:23 2014 +0100
@@ -22,6 +22,30 @@
#include "nRF51Gap.h"
+/**
+ * The nRF transport has its own 3-byte representation of a UUID. If the user-
+ * specified UUID is 128-bits wide, then the UUID base needs to be added to the
+ * soft-device and converted to a 3-byte handle before being used further. This
+ * function is responsible for this translation of user-specified UUIDs into
+ * nRF's representation.
+ *
+ * @param[in] uuid
+ * user-specified UUID
+ * @return nRF
+ * 3-byte UUID (containing a type and 16-bit UUID) representation
+ * to be used with SVC calls.
+ */
+static ble_uuid_t
+custom_convert_to_transport_uuid(const uint16_t uuid)
+{
+ ble_uuid_t transportUUID = { /* presently we only deal with 16-bit uuids. */
+ .type = BLE_UUID_TYPE_BLE,
+ .uuid = uuid
+ };
+
+ return transportUUID;
+}
+
/**************************************************************************/
/*!
@brief Adds a new service to the GATT table on the peripheral
@@ -67,6 +91,8 @@
for (uint8_t i = 0; i < service.characteristicCount; i++) {
GattCharacteristic *p_char = service.characteristics[i];
+ uuid = custom_convert_to_transport_uuid(p_char->uuid);
+
uuid.uuid = p_char->uuid;
ASSERT ( ERROR_NONE ==
custom_add_in_characteristic(service.handle,