BLE_API_Tiny_BLE
Fork of BLE_API by
Revision 403:f17326985627, committed 2015-05-18
- Comitter:
- rgrover1
- Date:
- Mon May 18 09:54:26 2015 +0100
- Parent:
- 402:0e714ad205b4
- Child:
- 404:ee77c39cda55
- Commit message:
- Synchronized with git rev d1d62998
Author: Rohit Grover
URIBeaconConfigService: re-map incoming beacon advertisement interval within permissing bounds.
Changed in this revision
services/URIBeaconConfigService.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/services/URIBeaconConfigService.h Wed May 13 08:51:10 2015 +0100 +++ b/services/URIBeaconConfigService.h Mon May 18 09:54:26 2015 +0100 @@ -260,6 +260,21 @@ params.txPowerMode = *(writeParams->data); } else if (handle == beaconPeriodChar.getValueHandle()) { params.beaconPeriod = *((uint16_t *)(writeParams->data)); + + /* Re-map beaconPeriod to within permissible bounds if necessary. */ + if (params.beaconPeriod != 0) { + bool paramsUpdated = false; + if (params.beaconPeriod < ble.getMinAdvertisingInterval()) { + params.beaconPeriod = ble.getMinAdvertisingInterval(); + paramsUpdated = true; + } else if (params.beaconPeriod > ble.getMaxAdvertisingInterval()) { + params.beaconPeriod = ble.getMaxAdvertisingInterval(); + paramsUpdated = true; + } + if (paramsUpdated) { + ble.updateCharacteristicValue(beaconPeriodChar.getValueHandle(), reinterpret_cast<uint8_t *>(¶ms.beaconPeriod), sizeof(uint16_t)); + } + } } else if (handle == resetChar.getValueHandle()) { resetToDefaults(); }