abc

Fork of BLE_API by Bluetooth Low Energy

Revision:
403:f17326985627
Parent:
325:501ad8b8bbe5
Child:
404:ee77c39cda55
diff -r 0e714ad205b4 -r f17326985627 services/URIBeaconConfigService.h
--- 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 *>(&params.beaconPeriod), sizeof(uint16_t));
+                }
+            }
         } else if (handle == resetChar.getValueHandle()) {
             resetToDefaults();
         }