From c730fe08fb2f410758df5e13703a2a905531ec75 Mon Sep 17 00:00:00 2001 From: Bertrand Lemasle Date: Sat, 11 Aug 2018 15:54:03 +1200 Subject: [PATCH] Position attenuation is not metric worth to wait for each time a position is sent in a loop. --- src/NetworkPositionsBackup.cpp | 9 ++++++--- src/NetworkPositionsBackup.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/NetworkPositionsBackup.cpp b/src/NetworkPositionsBackup.cpp index b4c9e45..4b90370 100644 --- a/src/NetworkPositionsBackup.cpp +++ b/src/NetworkPositionsBackup.cpp @@ -26,11 +26,13 @@ namespace positions { positions::count(config->network.lastSavedEntry) > (config->network.saveThreshold * networkUnavailablePostpone) - (forPrepare ? 1 : 0); } - bool NetworkPositionsBackup::appendPosition(PositionEntry &entry) { + bool NetworkPositionsBackup::appendPosition(PositionEntry &entry, int8_t signalAttenuation = 0) { char buffer[BUFFER_SIZE]; + if(signalAttenuation == 0) signalAttenuation = hardware::sim808::device.getSignalQuality().attenuation; + snprintf_P(buffer, BUFFER_SIZE, PSTR("%d,%d,%d,%d,%d,%d,%d,%s"), mainunit::freeRam(), - hardware::sim808::device.getSignalQuality().attenuation, + signalAttenuation, entry.metadata.batteryLevel, entry.metadata.batteryVoltage, entry.metadata.temperature, @@ -75,10 +77,11 @@ namespace positions { networkUnavailableInARow = 0; networkUnavailablePostpone = 1; + int8_t signalAttenuation = hardware::sim808::device.getSignalQuality().attenuation; hardware::i2c::powerOn(); do { if (!positions::get(currentEntryIndex, currentEntry)) break; - if (!appendPosition(currentEntry)) break; + if (!appendPosition(currentEntry, signalAttenuation)) break; config::main::value.network.lastSavedEntry = currentEntryIndex; config::main::save(); diff --git a/src/NetworkPositionsBackup.h b/src/NetworkPositionsBackup.h index 528c22b..7247fe8 100644 --- a/src/NetworkPositionsBackup.h +++ b/src/NetworkPositionsBackup.h @@ -10,7 +10,7 @@ namespace positions { class NetworkPositionsBackup : public PositionsBackup { private: bool isBackupNeeded(bool forPrepare); - bool appendPosition(PositionEntry &entry); + bool appendPosition(PositionEntry &entry, int8_t signalAttenuation = 0); void appendPositions(); public: