Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: microbit-dal microbit-dal microbit-ble-open microbit-dal ... more
Fork of BLE_API by
Diff: services/URIBeaconConfigService.h
- Revision:
- 211:f181effe5de3
- Parent:
- 210:0c14030d1bd0
- Child:
- 212:852d45a52016
--- a/services/URIBeaconConfigService.h Mon Dec 01 14:31:18 2014 +0000
+++ b/services/URIBeaconConfigService.h Mon Dec 01 14:31:18 2014 +0000
@@ -130,6 +130,7 @@
void setFlags(uint8_t flagsIn) {
flags = flagsIn;
configureGAP();
+ updateFlagsCharacteristic();
}
/**
@@ -155,6 +156,7 @@
void setBeaconPeriod(uint16_t beaconPeriodIn) {
beaconPeriod = beaconPeriodIn;
configureGAP();
+ updateBeaconPeriodCharacteristic();
}
private:
@@ -264,7 +266,7 @@
if (params->charHandle == uriDataChar.getValueAttribute().getHandle()) {
if (lockedState) { /* When locked, the device isn't allowed to update the uriData characteristic. */
/* Restore GATT database with previous value. */
- ble.updateCharacteristicValue(uriDataChar.getValueAttribute().getHandle(), uriData, uriDataLength);
+ updateURIDataCharacteristic();
return;
}
@@ -278,7 +280,7 @@
} else if (params->charHandle == flagsChar.getValueAttribute().getHandle()) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
- ble.updateCharacteristicValue(flagsChar.getValueAttribute().getHandle(), &flags, 1 /* size */);
+ updateFlagsCharacteristic();
return;
} else {
flags = *(params->data);
@@ -294,7 +296,7 @@
} else if (params->charHandle == beaconPeriodChar.getValueAttribute().getHandle()) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
- ble.updateCharacteristicValue(beaconPeriodChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(&beaconPeriod), sizeof(uint16_t));
+ updateBeaconPeriodCharacteristic();
return;
} else {
beaconPeriod = *((uint16_t *)(params->data));
@@ -321,8 +323,24 @@
effectiveTxPower = defaultEffectiveTxPower;
beaconPeriod = defaultBeaconPeriod;
+ updateGATT();
+ }
+
+ void updateGATT(void) {
+ updateURIDataCharacteristic();
+ updateFlagsCharacteristic();
+ updateBeaconPeriodCharacteristic();
+ }
+
+ void updateURIDataCharacteristic(void) {
ble.updateCharacteristicValue(uriDataChar.getValueAttribute().getHandle(), uriData, uriDataLength);
+ }
+
+ void updateFlagsCharacteristic(void) {
ble.updateCharacteristicValue(flagsChar.getValueAttribute().getHandle(), &flags, 1 /* size */);
+ }
+
+ void updateBeaconPeriodCharacteristic(void) {
ble.updateCharacteristicValue(beaconPeriodChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(&beaconPeriod), sizeof(uint16_t));
}
