configmanager .cpp: some corrections after rewrite

This commit is contained in:
Klaus K Wilting 2020-10-03 12:14:07 +02:00
parent ef84966917
commit 85c235573b

View File

@ -16,11 +16,14 @@ static const char TAG[] = __FILE__;
Preferences nvram; Preferences nvram;
static const size_t cfgLen = sizeof(cfg);
// populate runtime config with factory settings // populate runtime config with factory settings
void defaultConfig(configData_t *myconfig) { void defaultConfig(configData_t *myconfig) {
char version[10]; char version[10];
snprintf(version, 10, "%-10s", PROGVERSION); snprintf(version, 10, "%-10s", PROGVERSION);
// factory settings
myconfig->loradr = LORADRDEFAULT; // 0-15, lora datarate, see paxcounter.conf myconfig->loradr = LORADRDEFAULT; // 0-15, lora datarate, see paxcounter.conf
myconfig->txpower = LORATXPOWDEFAULT; // 0-15, lora tx power myconfig->txpower = LORATXPOWDEFAULT; // 0-15, lora tx power
myconfig->adrmode = 1; // 0=disabled, 1=enabled myconfig->adrmode = 1; // 0=disabled, 1=enabled
@ -38,11 +41,12 @@ void defaultConfig(configData_t *myconfig) {
myconfig->blescan = 1; // 0=disabled, 1=enabled myconfig->blescan = 1; // 0=disabled, 1=enabled
myconfig->wifiscan = 1; // 0=disabled, 1=enabled myconfig->wifiscan = 1; // 0=disabled, 1=enabled
myconfig->wifiant = 0; // 0=internal, 1=external (for LoPy/LoPy4) myconfig->wifiant = 0; // 0=internal, 1=external (for LoPy/LoPy4)
myconfig->vendorfilter = VENDORFILTER; // 0=disabled, 1=enabled myconfig->vendorfilter = VENDORFILTER; // 0=disabled, 1=enabled
myconfig->rgblum = RGBLUMINOSITY; // RGB Led luminosity (0..100%) myconfig->rgblum = RGBLUMINOSITY; // RGB Led luminosity (0..100%)
myconfig->monitormode = 0; // 0=disabled, 1=enabled myconfig->monitormode = 0; // 0=disabled, 1=enabled
myconfig->payloadmask = PAYLOADMASK; // all payload switched on myconfig->payloadmask = PAYLOADMASK; // all payload switched on
memcpy(myconfig->version, version, 10); // Firmware version [exactly 10 chars] memcpy(myconfig->version, version, 10); // Firmware version [exactly 10 chars]
#ifdef HAS_BME680 #ifdef HAS_BME680
// initial BSEC state for BME680 sensor // initial BSEC state for BME680 sensor
myconfig->bsecstate[BSEC_MAX_STATE_BLOB_SIZE] = {0}; myconfig->bsecstate[BSEC_MAX_STATE_BLOB_SIZE] = {0};
@ -62,7 +66,6 @@ void saveConfig(bool erase) {
} }
// Copy device runtime config cfg to byte array // Copy device runtime config cfg to byte array
const size_t cfgLen = sizeof(configData_t);
char buffer[cfgLen]; char buffer[cfgLen];
memcpy(buffer, &cfg, cfgLen); memcpy(buffer, &cfg, cfgLen);
@ -81,9 +84,7 @@ void loadConfig() {
eraseConfig(); eraseConfig();
} else { } else {
// simple check that runtime config data matches // simple check that runtime config data matches
const size_t cfgLen = nvram.getBytesLength(DEVCONFIG); if (nvram.getBytesLength(DEVCONFIG) != cfgLen) {
if (cfgLen % sizeof(configData_t)) {
ESP_LOGW(TAG, "NVRAM settings invalid"); ESP_LOGW(TAG, "NVRAM settings invalid");
eraseConfig(); eraseConfig();
} else { } else {