Conversion from advertisement duration units to ms moved from Gap to GapAdvertisingParams. getInterval converts to ms. Added conversion in GapScanningParams
This commit is contained in:
parent
ce6772dd88
commit
0f2ba674c8
5 changed files with 20 additions and 13 deletions
|
@ -127,16 +127,10 @@ public:
|
|||
};
|
||||
|
||||
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);
|
||||
|
|
|
@ -86,8 +86,16 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
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; }
|
||||
|
|
|
@ -32,6 +32,11 @@ public:
|
|||
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);
|
||||
|
|
|
@ -178,7 +178,7 @@ class URIBeaconConfigService {
|
|||
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. */
|
||||
|
|
|
@ -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 @@ GapScanningParams::GapScanningParams(uint16_t interval, uint16_t window, uint16_
|
|||
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 @@ GapScanningParams::setInterval(uint16_t newIntervalInMS)
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue