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.

Files at this revision

API Documentation at this revision

Comitter:
rgrover1
Date:
Fri Aug 07 15:53:50 2015 +0100
Parent:
765:4cd91998cd48
Child:
767:d6a79c77d1c3
Commit message:
Synchronized with git rev 0f2ba674
Author: Joshua Slater
Conversion from advertisement duration units to ms moved from Gap to GapAdvertisingParams. getInterval converts to ms. Added conversion in GapScanningParams

Changed in this revision

ble/Gap.h Show annotated file Show diff for this revision Revisions of this file
ble/GapAdvertisingParams.h Show annotated file Show diff for this revision Revisions of this file
ble/GapScanningParams.h Show annotated file Show diff for this revision Revisions of this file
ble/services/URIBeaconConfigService.h Show annotated file Show diff for this revision Revisions of this file
source/GapScanningParams.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/ble/Gap.h	Fri Aug 07 15:53:50 2015 +0100
+++ b/ble/Gap.h	Fri Aug 07 15:53:50 2015 +0100
@@ -127,16 +127,10 @@
     };
 
     static const uint16_t UNIT_1_25_MS  = 1250; /**< Number of microseconds in 1.25 milliseconds. */
-    static const uint16_t UNIT_0_625_MS = 625;  /**< Number of microseconds in 0.625 milliseconds. */
     static uint16_t MSEC_TO_GAP_DURATION_UNITS(uint32_t durationInMillis) {
         return (durationInMillis * 1000) / UNIT_1_25_MS;
     }
-    static uint16_t MSEC_TO_ADVERTISEMENT_DURATION_UNITS(uint32_t durationInMillis) {
-        return (durationInMillis * 1000) / UNIT_0_625_MS;
-    }
-    static uint16_t ADVERTISEMENT_DURATION_UNITS_TO_MS(uint16_t gapUnits) {
-        return (gapUnits * UNIT_0_625_MS) / 1000;
-    }
+
 
     typedef void (*TimeoutEventCallback_t)(TimeoutSource_t source);
     typedef void (*ConnectionEventCallback_t)(const ConnectionCallbackParams_t *params);
--- a/ble/GapAdvertisingParams.h	Fri Aug 07 15:53:50 2015 +0100
+++ b/ble/GapAdvertisingParams.h	Fri Aug 07 15:53:50 2015 +0100
@@ -86,8 +86,16 @@
         }
     }
 
+    static const uint16_t UNIT_0_625_MS = 625;  /**< Number of microseconds in 0.625 milliseconds. */
+    static uint16_t MSEC_TO_ADVERTISEMENT_DURATION_UNITS(uint32_t durationInMillis) {
+        return (durationInMillis * 1000) / UNIT_0_625_MS;
+    }
+    static uint16_t ADVERTISEMENT_DURATION_UNITS_TO_MS(uint16_t gapUnits) {
+        return (gapUnits * UNIT_0_625_MS) / 1000;
+    }
+
     AdvertisingType_t getAdvertisingType(void) const {return _advType; }
-    uint16_t          getInterval(void)        const {return _interval;}
+    uint16_t          getInterval(void)        const {return ADVERTISEMENT_DURATION_UNITS_TO_MS(_interval);}
     uint16_t          getTimeout(void)         const {return _timeout; }
 
     void setAdvertisingType(AdvertisingType_t newAdvType) {_advType = newAdvType;  }
--- a/ble/GapScanningParams.h	Fri Aug 07 15:53:50 2015 +0100
+++ b/ble/GapScanningParams.h	Fri Aug 07 15:53:50 2015 +0100
@@ -32,6 +32,11 @@
                       uint16_t timeout        = 0,
                       bool     activeScanning = false);
 
+    static const uint16_t UNIT_0_625_MS = 625;  /**< Number of microseconds in 0.625 milliseconds. */
+    static uint16_t MSEC_TO_SCAN_DURATION_UNITS(uint32_t durationInMillis) {
+        return (durationInMillis * 1000) / UNIT_0_625_MS;
+    }
+
     ble_error_t setInterval(uint16_t newIntervalInMS);
 
     ble_error_t setWindow(uint16_t newWindowInMS);
--- a/ble/services/URIBeaconConfigService.h	Fri Aug 07 15:53:50 2015 +0100
+++ b/ble/services/URIBeaconConfigService.h	Fri Aug 07 15:53:50 2015 +0100
@@ -178,7 +178,7 @@
         ble.gap().setTxPower(params.advPowerLevels[params.txPowerMode]);
         ble.gap().setDeviceName(reinterpret_cast<const uint8_t *>(&DEVICE_NAME));
         ble.gap().setAdvertisingType(GapAdvertisingParams::ADV_CONNECTABLE_UNDIRECTED);
-        ble.gap().setAdvertisingInterval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(ADVERTISING_INTERVAL_MSEC));
+        ble.gap().setAdvertisingInterval(GapAdvertisingParams::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(ADVERTISING_INTERVAL_MSEC));
     }
 
     /* Helper function to switch to the non-connectible normal mode for URIBeacon. This gets called after a timeout. */
--- a/source/GapScanningParams.cpp	Fri Aug 07 15:53:50 2015 +0100
+++ b/source/GapScanningParams.cpp	Fri Aug 07 15:53:50 2015 +0100
@@ -18,8 +18,8 @@
 #include "ble/GapScanningParams.h"
 
 GapScanningParams::GapScanningParams(uint16_t interval, uint16_t window, uint16_t timeout, bool activeScanning) :
-    _interval(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(interval)),
-    _window(Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(window)),
+    _interval(Gap::MSEC_TO_SCAN_DURATION_UNITS(interval)),
+    _window(Gap::MSEC_TO_SCAN_DURATION_UNITS(window)),
     _timeout(timeout),
     _activeScanning(activeScanning) {
     /* stay within limits */
@@ -40,7 +40,7 @@
 ble_error_t
 GapScanningParams::setInterval(uint16_t newIntervalInMS)
 {
-    uint16_t newInterval = Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(newIntervalInMS);
+    uint16_t newInterval = Gap::MSEC_TO_SCAN_DURATION_UNITS(newIntervalInMS);
     if ((newInterval >= SCAN_INTERVAL_MIN) && (newInterval < SCAN_INTERVAL_MAX)) {
         _interval = newInterval;
         return BLE_ERROR_NONE;
@@ -52,7 +52,7 @@
 ble_error_t
 GapScanningParams::setWindow(uint16_t newWindowInMS)
 {
-    uint16_t newWindow = Gap::MSEC_TO_ADVERTISEMENT_DURATION_UNITS(newWindowInMS);
+    uint16_t newWindow = Gap::MSEC_TO_SCAN_DURATION_UNITS(newWindowInMS);
     if ((newWindow >= SCAN_WINDOW_MIN) && (newWindow < SCAN_WINDOW_MAX)) {
         _window   = newWindow;
         return BLE_ERROR_NONE;