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:
- 228:db043dbf26f8
- Parent:
- 226:ec436a9ceb31
- Child:
- 229:6664b6c0e92b
diff -r 5c4cb4553821 -r db043dbf26f8 services/URIBeaconConfigService.h
--- a/services/URIBeaconConfigService.h Mon Dec 01 14:31:20 2014 +0000
+++ b/services/URIBeaconConfigService.h Wed Dec 03 14:38:40 2014 +0000
@@ -273,8 +273,13 @@
return encodedBytes;
}
+ inline uint16_t getHandle(GattCharacteristic& characteristic) {
+ return characteristic.getValueAttribute().getHandle();
+ }
+
void onDataWritten(const GattCharacteristicWriteCBParams *params) {
- if (params->charHandle == uriDataChar.getValueAttribute().getHandle()) {
+ uint16_t handle = params->charHandle;
+ if (handle == getHandle(uriDataChar)) {
if (lockedState) { /* When locked, the device isn't allowed to update the uriData characteristic. */
/* Restore GATT database with previous value. */
updateURIDataCharacteristic();
@@ -288,7 +293,7 @@
uriDataLength = params->len;
memcpy(uriData, params->data, uriDataLength);
- } else if (params->charHandle == flagsChar.getValueAttribute().getHandle()) {
+ } else if (handle == getHandle(flagsChar)) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
updateFlagsCharacteristic();
@@ -296,7 +301,7 @@
} else {
flags = *(params->data);
}
- } else if (params->charHandle == txPowerLevelsChar.getValueAttribute().getHandle()) {
+ } else if (handle == getHandle(txPowerLevelsChar)) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
updateTxPowerLevelsCharacteristic();
@@ -304,7 +309,7 @@
} else {
memcpy(powerLevels, params->data, NUM_POWER_MODES * sizeof(int8_t));
}
- } else if (params->charHandle == txPowerModeChar.getValueAttribute().getHandle()) {
+ } else if (handle == getHandle(txPowerModeChar)) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
updateTxPowerModeCharacteristic();
@@ -312,7 +317,7 @@
} else {
txPowerMode = *reinterpret_cast<const TXPowerModes_t *>(params->data);
}
- } else if (params->charHandle == beaconPeriodChar.getValueAttribute().getHandle()) {
+ } else if (handle == getHandle(beaconPeriodChar)) {
if (lockedState) { /* When locked, the device isn't allowed to update the characteristic. */
/* Restore GATT database with previous value. */
updateBeaconPeriodCharacteristic();
@@ -320,7 +325,7 @@
} else {
beaconPeriod = *((uint16_t *)(params->data));
}
- } else if (params->charHandle == resetChar.getValueAttribute().getHandle()) {
+ } else if (handle == getHandle(resetChar)) {
resetDefaults();
}
configureGAP();
@@ -349,27 +354,27 @@
}
void updateLockedStateCharacteristic(void) {
- ble.updateCharacteristicValue(lockedStateChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(&lockedState), sizeof(lockedState));
+ ble.updateCharacteristicValue(getHandle(lockedStateChar), reinterpret_cast<uint8_t *>(&lockedState), sizeof(lockedState));
}
void updateURIDataCharacteristic(void) {
- ble.updateCharacteristicValue(uriDataChar.getValueAttribute().getHandle(), uriData, uriDataLength);
+ ble.updateCharacteristicValue(getHandle(uriDataChar), uriData, uriDataLength);
}
void updateFlagsCharacteristic(void) {
- ble.updateCharacteristicValue(flagsChar.getValueAttribute().getHandle(), &flags, 1 /* size */);
+ ble.updateCharacteristicValue(getHandle(flagsChar), &flags, 1 /* size */);
}
void updateBeaconPeriodCharacteristic(void) {
- ble.updateCharacteristicValue(beaconPeriodChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(&beaconPeriod), sizeof(uint16_t));
+ ble.updateCharacteristicValue(getHandle(beaconPeriodChar), reinterpret_cast<uint8_t *>(&beaconPeriod), sizeof(uint16_t));
}
void updateTxPowerModeCharacteristic(void) {
- ble.updateCharacteristicValue(txPowerModeChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(&txPowerMode), sizeof(uint8_t));
+ ble.updateCharacteristicValue(getHandle(txPowerModeChar), reinterpret_cast<uint8_t *>(&txPowerMode), sizeof(uint8_t));
}
void updateTxPowerLevelsCharacteristic(void) {
- ble.updateCharacteristicValue(txPowerLevelsChar.getValueAttribute().getHandle(), reinterpret_cast<uint8_t *>(powerLevels), NUM_POWER_MODES * sizeof(int8_t));
+ ble.updateCharacteristicValue(getHandle(txPowerLevelsChar), reinterpret_cast<uint8_t *>(powerLevels), NUM_POWER_MODES * sizeof(int8_t));
}
private:
