High level Bluetooth Low Energy API and radio abstraction layer

Dependents:   BLE_ANCS_SDAPI BLE_temperature BLE_HeartRate BLE_ANCS_SDAPI_IRC ... more

Overview

The BLE_API is a high level abstraction for using Bluetooth Low Energy on multiple platforms. For details and examples using the BLE_API please see the BLE_API Summary Page. Or click on the API Documentation tab above.

Supported Services

Supported services can be found in the BLE_API/services folder.

Revision:
842:4f7f7a4b0cb2
Parent:
841:468a5863cacb
Child:
850:32ff6e392630
--- a/ble/services/EddystoneService.h	Mon Nov 02 09:09:04 2015 +0000
+++ b/ble/services/EddystoneService.h	Mon Nov 02 09:09:04 2015 +0000
@@ -175,11 +175,11 @@
             urlIsSet = false;
             return false;
         }
-        defaultUrlPower = power;
         encodeURL(urlIn, defaultUriData, defaultUriDataLength); // encode URL to URL Formatting
         if (defaultUriDataLength > URI_DATA_MAX) {
             return true;                                        // error, URL is too big
         }
+        defaultUrlPower = power;
         urlAdvPeriod = urlAdvPeriodIn;
         urlIsSet     = true;
         return false;
@@ -187,24 +187,25 @@
 
     /**
      *  Set Eddystone URL Frame information.
-     *  @param[in] power          TX Power in dB measured at 0 meters from the device.
-     *  @param[in] url            Encoded URL
-     *  @param[in] urlAdvPeriodIn How long to advertise the URL frame (measured in # of adv periods)
+     *  @param[in] power              TX Power in dB measured at 0 meters from the device.
+     *  @param[in] encodedUrlIn       Encoded URL
+     *  @param[in] encodedUrlInLength Length of the encoded URL
+     *  @param[in] urlAdvPeriodIn     How long to advertise the URL frame (measured in # of adv periods)
      *  @return false on success, true on failure.
      */
-    bool setURLFrameEncodedData(int8_t power, const char *encodedUrlIn, uint8_t encodedUriInLength, uint32_t urlAdvPeriodIn) {
+    bool setURLFrameEncodedData(int8_t power, const char *encodedUrlIn, uint8_t encodedUrlInLength, uint32_t urlAdvPeriodIn) {
         if (0 == urlAdvPeriodIn) {
             urlIsSet = false;
             return false;
         }
-        defaultUrlPower = power;
-        memcpy(defaultUriData, encodedUrlIn, URI_DATA_MAX);
-        defaultUriDataLength = encodedUriInLength;
+        memcpy(defaultUriData, encodedUrlIn, encodedUrlInLength);
         if (defaultUriDataLength > URI_DATA_MAX) {
             return true;                                        // error, URL is too big
         }
-        urlAdvPeriod = urlAdvPeriodIn;
-        urlIsSet     = true;
+        defaultUrlPower      = power;
+        defaultUriDataLength = encodedUrlInLength;
+        urlAdvPeriod         = urlAdvPeriodIn;
+        urlIsSet             = true;
         return false;
     }