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.
Dependents: LinkNode_SimpleChatwithSerial
Fork of BLE_API by
Diff: ble/UUID.h
- Revision:
- 1023:a072b59caddb
- Parent:
- 1022:306c409f6c09
- Child:
- 1035:d8ba3cb5a39a
diff -r 306c409f6c09 -r a072b59caddb ble/UUID.h
--- a/ble/UUID.h Thu Dec 10 09:15:02 2015 +0000
+++ b/ble/UUID.h Thu Dec 10 09:15:02 2015 +0000
@@ -22,18 +22,6 @@
#include "blecommon.h"
-static uint16_t char2int(char c) {
- if ((c >= '0') && (c <= '9')) {
- return c - '0';
- } else if ((c >= 'a') && (c <= 'f')) {
- return c - 'a' + 10;
- } else if ((c >= 'A') && (c <= 'F')) {
- return c - 'A' + 10;
- } else {
- return 0;
- }
-}
-
class UUID {
public:
enum UUID_Type_t {
@@ -47,49 +35,6 @@
typedef uint8_t LongUUIDBytes_t[LENGTH_OF_LONG_UUID];
public:
-
- /**
- * Creates a new 128-bit UUID.
- *
- * @note The UUID is a unique 128-bit (16 byte) ID used to identify
- * different service or characteristics on the BLE device.
- *
- * @param stringUUID
- * The 128-bit (16-byte) UUID as a human readable const-string.
- * Format: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
- * Upper and lower case supported. Hyphens are optional, but only
- * upto four of them. The UUID is stored internally as a 16 byte
- * array, LSB (little endian), which is opposite from the string.
- */
- UUID(const char* stringUUID) : type(UUID_TYPE_LONG), baseUUID(), shortUUID(0) {
- bool nibble = false;
- uint8_t byte = 0;
- size_t baseIndex = 0;
-
- // Iterate through string, abort if NULL is encountered prematurely.
- // Ignore upto four hyphens. Reverse endian when storing internally.
- for (size_t index = 0; (index < 36) && (baseIndex < LENGTH_OF_LONG_UUID); index++) {
- if (stringUUID[index] == '\0') {
- // error abort
- break;
- } else if (stringUUID[index] == '-') {
- // ignore hyphen
- continue;
- } else if (nibble) {
- // got second nibble
- byte |= char2int(stringUUID[index]);
- nibble = false;
-
- // reverse endian
- baseUUID[LENGTH_OF_LONG_UUID - 1 - baseIndex++] = byte;
- } else {
- // got first nibble
- byte = char2int(stringUUID[index]) << 4;
- nibble = true;
- }
- }
- }
-
/**
* Creates a new 128-bit UUID.
*
@@ -97,7 +42,7 @@
* different service or characteristics on the BLE device.
*
* @param longUUID
- * The 128-bit (16-byte) UUID value, LSB first (little-endian).
+ * The 128-bit (16-byte) UUID value, MSB first (big-endian).
*/
UUID(const LongUUIDBytes_t longUUID) : type(UUID_TYPE_LONG), baseUUID(), shortUUID(0) {
setupLong(longUUID);
@@ -149,7 +94,7 @@
void setupLong(const LongUUIDBytes_t longUUID) {
type = UUID_TYPE_LONG;
memcpy(baseUUID, longUUID, LENGTH_OF_LONG_UUID);
- shortUUID = (uint16_t)((longUUID[13] << 8) | (longUUID[12]));
+ shortUUID = (uint16_t)((longUUID[2] << 8) | (longUUID[3]));
}
public:
