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
Diff: services/URIBeaconConfigService.h
- Revision:
- 312:e2e52a7477bf
- Parent:
- 311:11417b970b12
- Child:
- 313:c4599a1aba23
--- a/services/URIBeaconConfigService.h Mon Mar 09 16:23:55 2015 +0000
+++ b/services/URIBeaconConfigService.h Mon Mar 09 16:23:55 2015 +0000
@@ -51,7 +51,7 @@
static const uint8_t TX_POWER_MODE_HIGH = 3; /*!< High TX power mode */
static const unsigned int NUM_POWER_MODES = 4; /*!< Number of Power Modes defined */
- static const int ADVERTISING_TIMEOUT_SECONDS = 60; // Seconds after power-on that config service is available.
+ static const int CONFIG_ADVERTISING_TIMEOUT_SECONDS = 60; // Seconds after power-on that config service is available.
static const int ADVERTISING_INTERVAL_MSEC = 1000; // Advertising interval for config service.
static const int SERVICE_DATA_MAX = 31; // Maximum size of service data in ADV packets
@@ -69,6 +69,9 @@
PowerLevels_t advPowerLevels; // Current value of AdvertisedPowerLevels
uint8_t txPowerMode; // Firmware power levels used with setTxPower()
uint16_t beaconPeriod;
+ uint32_t persistenceSignature; /* This isn't really a parameter, but having the expected magic value in
+ * this field indicates persistence. */
+ static const uint32_t MAGIC = 0x1BEAC000; // Magic that identifies persistence
};
/**
@@ -77,8 +80,6 @@
* @param[in/out] paramsIn
* Reference to application-visible beacon state, loaded
* from persistent storage at startup.
- * @param[in] resetToDefaultsFlag
- * reset params state to the defaults.
* @param[in] defaultUriDataIn
* Default un-encoded URI; applies only if the resetToDefaultsFlag is true.
* @param[in] defaultAdvPowerLevelsIn
@@ -86,7 +87,6 @@
*/
URIBeaconConfigService(BLEDevice &bleIn,
Params_t ¶msIn,
- bool resetToDefaultsFlag,
const char *defaultURIDataIn,
PowerLevels_t &defaultAdvPowerLevelsIn) :
ble(bleIn),
@@ -113,7 +113,8 @@
return;
}
- if (params.uriDataLength > URI_DATA_MAX) {
+ bool resetToDefaultsFlag = params.persistenceSignature != Params_t::MAGIC;
+ if (!resetToDefaultsFlag && (params.uriDataLength > URI_DATA_MAX)) {
resetToDefaultsFlag = true;
}
@@ -166,7 +167,7 @@
ble.clearAdvertisingPayload();
// Stops advertising the UriBeacon Config Service after a delay
- configAdvertisementTimeoutTicker.attach(this, &URIBeaconConfigService::timeout, ADVERTISING_TIMEOUT_SECONDS);
+ configAdvertisementTimeoutTicker.attach(this, &URIBeaconConfigService::timeout, CONFIG_ADVERTISING_TIMEOUT_SECONDS);
ble.accumulateAdvertisingPayload(GapAdvertisingData::BREDR_NOT_SUPPORTED | GapAdvertisingData::LE_GENERAL_DISCOVERABLE);
