From 4a94de380009835f619db15e8abdca029d21655c Mon Sep 17 00:00:00 2001 From: Bertrand Lemasle Date: Sat, 4 Aug 2018 21:56:27 +1200 Subject: [PATCH] Reworked config reset code to avoid static init that eats SRAM --- GpsTracker/Config.cpp | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/GpsTracker/Config.cpp b/GpsTracker/Config.cpp index dfed77e..2328035 100644 --- a/GpsTracker/Config.cpp +++ b/GpsTracker/Config.cpp @@ -30,12 +30,12 @@ namespace config { //}; //value.network = c; #endif - /*strcpy(value.version, VERSION); + /*strcpy_P(value.version, PSTR(VERSION)); value.alertBatteryLevel1 = CONFIG_DEFAULT_BATTERY_ALERT_LEVEL1; value.alertBatteryLevel2 = CONFIG_DEFAULT_BATTERY_ALERT_LEVEL2; value.alertBatteryLevelClear = CONFIG_DEFAULT_BATTERY_ALERT_CLEAR; value.activeAlerts = CONFIG_DEFAULT_ACTIVE_ALERTS; - strcpy(value.contactPhone, CONFIG_DEFAULT_CONTACT_PHONE);*/ + strcpy_P(config.contactPhone, PSTR(CONFIG_DEFAULT_CONTACT_PHONE));*/ } void write() { @@ -61,27 +61,22 @@ namespace config { void reset() { VERBOSE("reset"); - config_t config = { - CONFIG_SEED, - VERSION, - 0xFFFF, - 0xFFFF, + config_t config = {}; + config.seed = CONFIG_SEED; + strcpy_P(config.version, PSTR(VERSION)); + config.firstEntry = config.lastEntry = 0xFFFF; + config.alertBatteryLevel1 = CONFIG_DEFAULT_BATTERY_ALERT_LEVEL1; + config.alertBatteryLevel2 = CONFIG_DEFAULT_BATTERY_ALERT_LEVEL2; + config.alertBatteryLevelClear = CONFIG_DEFAULT_BATTERY_ALERT_CLEAR; + config.activeAlerts = CONFIG_DEFAULT_ACTIVE_ALERTS; + strcpy_P(config.contactPhone, PSTR(CONFIG_DEFAULT_CONTACT_PHONE)); + #if BACKUP_ENABLE_NETWORK - { - POSITIONS_CONFIG_NET_DEFAULT_SAVE_THRESHOLD, - 0xFFFF, - POSITIONS_CONFIG_NET_DEFAULT_APN, - POSITIONS_CONFIG_NET_DEFAULT_URL, - }, -#else - "", + config.network.saveThreshold = POSITIONS_CONFIG_NET_DEFAULT_SAVE_THRESHOLD; + config.network.lastSavedEntry = 0xFFFF; + strcpy_P(config.network.apn, PSTR(POSITIONS_CONFIG_NET_DEFAULT_APN)); + strcpy_P(config.network.url, PSTR(POSITIONS_CONFIG_NET_DEFAULT_URL)); #endif - CONFIG_DEFAULT_BATTERY_ALERT_LEVEL1, - CONFIG_DEFAULT_BATTERY_ALERT_LEVEL2, - CONFIG_DEFAULT_BATTERY_ALERT_CLEAR, - CONFIG_DEFAULT_ACTIVE_ALERTS, - CONFIG_DEFAULT_CONTACT_PHONE - }; value = config; save();