High level Bluetooth Low Energy API and radio abstraction layer
Fork of BLE_API by
Revision 868:bbc33d099e5e, committed 2015-11-02
- 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
--- 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: