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:
- 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);
