High level Bluetooth Low Energy API and radio abstraction layer

Dependencies:   nRF51822

Dependents:   LinkNode_LIS3DH

Fork of BLE_API by Bluetooth Low Energy

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Mon Nov 02 09:09:04 2015 +0000
Parent:
840:0c77be899cc8
Child:
842:4f7f7a4b0cb2
Commit message:
Synchronized with git rev 18dcc913
Author: Andres Amaya Garcia
Introduced fix for defect IOTSFW-1058

Introduced a fix for defect IOTSFW-1058 that caused the
BLE_EddystoneBeaconConfigService example in ARMmbed/ble-examples repo to fail.
Refer to JIRA defect for more details.

Changed in this revision

ble/services/EddystoneConfigService.h Show annotated file Show diff for this revision Revisions of this file
ble/services/EddystoneService.h Show annotated file Show diff for this revision Revisions of this file
ble/services/LinkLossService.h Show annotated file Show diff for this revision Revisions of this file
module.json Show annotated file Show diff for this revision Revisions of this file
--- a/ble/services/EddystoneConfigService.h	Mon Nov 02 09:09:04 2015 +0000
+++ b/ble/services/EddystoneConfigService.h	Mon Nov 02 09:09:04 2015 +0000
@@ -306,7 +306,7 @@
             eddyServ.setTLMFrameData(params.tlmVersion, params.tlmBeaconPeriod);
         }
         if (params.uriEnabled) {
-            eddyServ.setURLFrameData(params.advPowerLevels[params.txPowerMode], (const char *) params.uriData, params.uriBeaconPeriod);
+            eddyServ.setURLFrameEncodedData(params.advPowerLevels[params.txPowerMode], (const char *) params.uriData, params.uriDataLength, params.uriBeaconPeriod);
         }
         if (params.uidEnabled) {
             eddyServ.setUIDFrameData(params.advPowerLevels[params.txPowerMode],
--- 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
@@ -185,6 +185,29 @@
         return false;
     }
 
+    /**
+     *  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)
+     *  @return false on success, true on failure.
+     */
+    bool setURLFrameEncodedData(int8_t power, const char *encodedUrlIn, uint8_t encodedUriInLength, uint32_t urlAdvPeriodIn) {
+        if (0 == urlAdvPeriodIn) {
+            urlIsSet = false;
+            return false;
+        }
+        defaultUrlPower = power;
+        memcpy(defaultUriData, encodedUrlIn, URI_DATA_MAX);
+        defaultUriDataLength = encodedUriInLength;
+        if (defaultUriDataLength > URI_DATA_MAX) {
+            return true;                                        // error, URL is too big
+        }
+        urlAdvPeriod = urlAdvPeriodIn;
+        urlIsSet     = true;
+        return false;
+    }
+
     /*
     *  Construct URL frame from private variables
     *  @param[in/out] Data pointer to array to store constructed frame in
--- a/ble/services/LinkLossService.h	Mon Nov 02 09:09:04 2015 +0000
+++ b/ble/services/LinkLossService.h	Mon Nov 02 09:09:04 2015 +0000
@@ -55,7 +55,7 @@
         ble.addService(linkLossService);
         serviceAdded = true;
 
-        ble.addToDisconnectionCallChain(this, &LinkLossService::onDisconnectionFilter);
+        ble.onDisconnection(this, &LinkLossService::onDisconnectionFilter);
         ble.onDataWritten(this, &LinkLossService::onDataWritten);
     }
 
@@ -86,7 +86,7 @@
         }
     }
 
-    void onDisconnectionFilter(void) {
+    void onDisconnectionFilter(const Gap::DisconnectionCallbackParams_t *params) {
         if (alertLevel != NO_ALERT) {
             callback(alertLevel);
         }
--- a/module.json	Mon Nov 02 09:09:04 2015 +0000
+++ b/module.json	Mon Nov 02 09:09:04 2015 +0000
@@ -1,12 +1,10 @@
 {
   "name": "ble",
-  "version": "1.0.0",
+  "version": "0.4.8",
   "description": "The BLE module offers a high level abstraction for using Bluetooth Low Energy on multiple platforms.",
   "keywords": [
     "Bluetooth",
-    "BLE",
-    "mbed",
-    "mbed-official"
+    "BLE"
   ],
   "author": "Rohit Grover",
   "repository": {
@@ -22,11 +20,8 @@
   ],
   "dependencies": {},
   "targetDependencies": {
-    "st-ble-shield": {
-      "x-nucleo-idb0xa1": "ARMmbed/ble-x-nucleo-idb0xa1"
-    },
     "nrf51822": {
-      "ble-nrf51822": "^1.0.0"
+      "ble-nrf51822": "~0.4.7"
     },
     "mbed-classic": {
       "mbed-classic": "~0.0.1"