diff --git a/GpsTracker/Config.cpp b/GpsTracker/Config.cpp index 0b79a58..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,25 +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, - }, - CONFIG_DEFAULT_BATTERY_ALERT_LEVEL1, - CONFIG_DEFAULT_BATTERY_ALERT_LEVEL2, - CONFIG_DEFAULT_BATTERY_ALERT_CLEAR, - CONFIG_DEFAULT_ACTIVE_ALERTS, - CONFIG_DEFAULT_CONTACT_PHONE + 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 - }; value = config; save(); diff --git a/GpsTracker/Config.h b/GpsTracker/Config.h index a5fc792..5171454 100644 --- a/GpsTracker/Config.h +++ b/GpsTracker/Config.h @@ -66,6 +66,8 @@ struct config_t { uint16_t lastEntry; //sizeof = 2 #if BACKUP_ENABLE_NETWORK networkConfig_t network; //sizeof = 73 +#else + char reserved[73]; #endif uint8_t alertBatteryLevel1; //sizeof = 1 uint8_t alertBatteryLevel2; //sizeof = 1 diff --git a/GpsTracker/NetworkPositionsBackup.cpp b/GpsTracker/NetworkPositionsBackup.cpp index 5ec6c1e..127cac1 100644 --- a/GpsTracker/NetworkPositionsBackup.cpp +++ b/GpsTracker/NetworkPositionsBackup.cpp @@ -26,16 +26,15 @@ namespace positions { bool NetworkPositionsBackup::appendPosition(PositionEntry &entry) { char buffer[BUFFER_SIZE]; - snprintf_P(buffer, BUFFER_SIZE, PSTR("%d,%d,%d,%d,%d,%d,%d,"), + snprintf_P(buffer, BUFFER_SIZE, PSTR("%d,%d,%d,%d,%d,%d,%d,%s"), debug::freeRam(), hardware::sim808::device.getSignalQuality().attenuation, entry.metadata.batteryLevel, entry.metadata.batteryVoltage, static_cast(entry.metadata.temperature * 100), static_cast(entry.metadata.status), - entry.metadata.timeToFix); - - strcat(buffer, entry.position); + entry.metadata.timeToFix, + entry.position); NOTICE_FORMAT("appendPosition", "Sending : %s", buffer); uint16_t responseCode = hardware::sim808::device.httpPost(