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.
Fork of BLE_API by
Revision 271:7f2465b7978e, committed 2015-01-21
- Comitter:
- rgrover1
- Date:
- Wed Jan 21 09:32:52 2015 +0000
- Parent:
- 270:e2e0f4c850fd
- Child:
- 272:65b9d9c87ed1
- Commit message:
- Synchronized with git rev 21eddb53
Author: Rohit Grover
add protected accessors for updating and copying lockBits.
Changed in this revision
| services/URIBeaconConfigService.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/services/URIBeaconConfigService.h Wed Jan 21 09:32:52 2015 +0000
+++ b/services/URIBeaconConfigService.h Wed Jan 21 09:32:52 2015 +0000
@@ -82,6 +82,7 @@
serviceDataPayload(),
initSucceeded(false),
lockedState(false),
+ lockBits(),
uriDataLength(0),
uriData(),
flags(flagsIn),
@@ -99,8 +100,7 @@
GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE),
beaconPeriodChar(beaconPeriodCharUUID, reinterpret_cast<uint8_t *>(&beaconPeriod), 2, 2,
GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_READ | GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE),
- resetChar(resetCharUUID, reinterpret_cast<uint8_t *>(&resetFlag), 1, 1, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE),
- lockBits()
+ resetChar(resetCharUUID, reinterpret_cast<uint8_t *>(&resetFlag), 1, 1, GattCharacteristic::BLE_GATT_CHAR_PROPERTIES_WRITE)
{
if ((uriDataIn == NULL) || ((uriDataLength = strlen(uriDataIn)) == 0) || (uriDataLength > MAX_SIZE_URI_DATA_CHAR_VALUE)) {
return;
@@ -198,6 +198,21 @@
updateBeaconPeriodCharacteristic();
}
+protected:
+ void updateLockBits(const LockBits_t lockBitsIn) {
+ static const uint8_t allZeroes[SIZEOF_LOCK_BITS] = {0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0};
+
+ memcpy(lockBits, lockBitsIn, SIZEOF_LOCK_BITS);
+ if (memcmp(lockBits, allZeroes, SIZEOF_LOCK_BITS)) {
+ lockedState = true;
+ }
+ }
+
+ void copyLockBitsInto(LockBits_t lockBitsOut) const {
+ memcpy(lockBitsOut, lockBits, SIZEOF_LOCK_BITS);
+ }
+
/**
* APIs around making lockBits persistent.
*/
@@ -347,17 +362,9 @@
*/
void onDataWritten(const GattCharacteristicWriteCBParams *params) {
uint16_t handle = params->charHandle;
-
- static const uint8_t allZeroes[SIZEOF_LOCK_BITS] = {0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0};
-
if (handle == lockChar.getValueHandle()) {
- if (memcmp(params->data, allZeroes, SIZEOF_LOCK_BITS)) {
- memcpy(lockBits, params->data, SIZEOF_LOCK_BITS);
- lockedState = true;
-
- storage_saveLockBits();
- }
+ updateLockBits(params->data);
+ storage_saveLockBits();
} else if (handle == unlockChar.getValueHandle()) {
memset(lockBits, 0, SIZEOF_LOCK_BITS);
lockedState = false;
@@ -506,6 +513,8 @@
bool initSucceeded;
bool lockedState;
+ uint8_t lockBits[SIZEOF_LOCK_BITS];
+
uint16_t uriDataLength;
uint8_t uriData[MAX_SIZE_URI_DATA_CHAR_VALUE];
uint8_t flags;
@@ -523,9 +532,6 @@
GattCharacteristic txPowerModeChar;
GattCharacteristic beaconPeriodChar;
GattCharacteristic resetChar;
-
-protected:
- uint8_t lockBits[SIZEOF_LOCK_BITS];
};
#endif /* #ifndef __BLE_URI_BEACON_CONFIG_SERVICE_H__*/
\ No newline at end of file
