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 17:51:41 2015 +0000
Parent:
867:b099c28e8e28
Child:
869:b7ed649aed19
Commit message:
Synchronized with git rev 058243f3
Author: Andres Amaya Garcia
Fixed period settings for adv packets

Fixed the period settings for beacon advertisement packets. Changes through
the config service now take effect and defaults can be set through code.

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
--- a/ble/services/EddystoneConfigService.h	Mon Nov 02 09:09:08 2015 +0000
+++ b/ble/services/EddystoneConfigService.h	Mon Nov 02 17:51:41 2015 +0000
@@ -389,7 +389,7 @@
         params.flags = 0x10;
         memcpy(params.advPowerLevels, defaultAdvPowerLevels, sizeof(PowerLevels_t));
         params.txPowerMode  = TX_POWER_MODE_LOW;
-        params.beaconPeriod = 1000;
+        params.beaconPeriod = (uint16_t) defaultUriAdvPeriod * 1000;
 
         // TLM Frame
         params.tlmVersion      = defaultTlmVersion;
--- a/ble/services/EddystoneService.h	Mon Nov 02 09:09:08 2015 +0000
+++ b/ble/services/EddystoneService.h	Mon Nov 02 17:51:41 2015 +0000
@@ -101,9 +101,9 @@
     void setUIDFrameData(int8_t           power,
                          UIDNamespaceID_t namespaceID,
                          UIDInstanceID_t  instanceID,
-                         uint32_t         uidAdvPeriodIn,
+                         float            uidAdvPeriodIn,
                          uint16_t         RFU = 0x0000) {
-        if (0 == uidAdvPeriodIn) {
+        if (0.0f == uidAdvPeriodIn) {
             uidIsSet = false;
             return;
         }
@@ -170,8 +170,8 @@
      *  @param[in] urlAdvPeriodIn How long to advertise the URL frame (measured in # of adv periods)
      *  @return false on success, true on failure.
      */
-    bool setURLFrameData(int8_t power, const char *urlIn, uint32_t urlAdvPeriodIn) {
-        if (0 == urlAdvPeriodIn) {
+    bool setURLFrameData(int8_t power, const char *urlIn, float urlAdvPeriodIn) {
+        if (0.0f == urlAdvPeriodIn) {
             urlIsSet = false;
             return false;
         }
@@ -193,8 +193,8 @@
      *  @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 encodedUrlInLength, uint32_t urlAdvPeriodIn) {
-        if (0 == urlAdvPeriodIn) {
+    bool setURLFrameEncodedData(int8_t power, const char *encodedUrlIn, uint8_t encodedUrlInLength, float urlAdvPeriodIn) {
+        if (0.0f == urlAdvPeriodIn) {
             urlIsSet = false;
             return false;
         }
@@ -235,12 +235,12 @@
     *
     */
     void setTLMFrameData(uint8_t  version        = 0,
-                         uint32_t advPeriod      = 60,
+                         float    advPeriod      = 60.0f,
                          uint16_t batteryVoltage = 0,
                          uint16_t beaconTemp     = 0,
                          uint32_t pduCount       = 0,
                          uint32_t timeSinceBoot  = 0) {
-        if (0 == advPeriod) {
+        if (0.0f == advPeriod) {
             tlmIsSet = false;
             return;
         }
@@ -507,7 +507,7 @@
         // Initialize Frame transition, start with URL to pass eddystone validator app on first try
         if (urlIsSet) {
             frameIndex = url;
-            urlTicker.attach(this, &EddystoneService::urlCallback, urlAdvPeriod);
+            urlTicker.attach(this, &EddystoneService::urlCallback, (float) advPeriodus / 1000.0f);
             DBG("attached urlCallback every %d seconds", urlAdvPeriod);
         }
         if (uidIsSet) {
@@ -552,7 +552,7 @@
     UriData_t           defaultUriData;
     int8_t              defaultUrlPower;
     bool                urlIsSet;       // flag that enables / disable URI Frames
-    uint32_t            urlAdvPeriod;   // how long the url frame will be advertised for
+    float               urlAdvPeriod;   // how long the url frame will be advertised for
     Ticker              urlTicker;
 
     // UID Frame Variables
@@ -561,7 +561,7 @@
     int8_t              defaultUidPower;
     uint16_t            uidRFU;
     bool                uidIsSet;       // flag that enables / disable UID Frames
-    uint32_t            uidAdvPeriod;   // how long the uid frame will be advertised for
+    float               uidAdvPeriod;   // how long the uid frame will be advertised for
     Ticker              uidTicker;
 
     // TLM Frame Variables
@@ -571,7 +571,7 @@
     volatile uint32_t   TlmPduCount;
     volatile uint32_t   TlmTimeSinceBoot;
     bool                tlmIsSet;          // flag that enables / disables TLM frames
-    uint32_t            TlmAdvPeriod;      // number of minutes between adv frames
+    float               TlmAdvPeriod;      // number of minutes between adv frames
     Ticker              tlmTicker;
 
 public: