diff --git a/GpsTracker/Core.cpp b/GpsTracker/Core.cpp index 386e33d..b144619 100644 --- a/GpsTracker/Core.cpp +++ b/GpsTracker/Core.cpp @@ -7,14 +7,19 @@ using namespace utils; namespace core { + uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS; uint8_t stoppedInARow = SLEEP_DEFAULT_STOPPED_THRESHOLD - 1; void main() { bool forceBackup = false; - positions::prepareBackup(); + bool acquired = false; PositionEntryMetadata metadata; - if (positions::acquire(metadata)) { + + positions::prepareBackup(); + acquired = positions::acquire(metadata); + + if (acquired) { positions::appendLast(metadata); forceBackup = updateSleepTime(); @@ -22,9 +27,17 @@ namespace core { } positions::doBackup(forceBackup); + + if (acquired) updateRtcTime(); mainunit::deepSleep(sleepTime); } + void updateRtcTime() { + tmElements_t time; + gps::getTime(time); + rtc::setTime(time); + } + bool updateSleepTime() { uint8_t velocity = gps::getVelocity(); uint16_t result = mapSleepTime(velocity); diff --git a/GpsTracker/Core.h b/GpsTracker/Core.h index 8e4e5b2..c21c2ab 100644 --- a/GpsTracker/Core.h +++ b/GpsTracker/Core.h @@ -14,6 +14,7 @@ namespace core { extern uint16_t sleepTime; void main(); + void updateRtcTime(); bool updateSleepTime(); uint16_t mapSleepTime(uint8_t velocity); } \ No newline at end of file diff --git a/GpsTracker/Positions.cpp b/GpsTracker/Positions.cpp index 14e0253..81d2d52 100644 --- a/GpsTracker/Positions.cpp +++ b/GpsTracker/Positions.cpp @@ -70,10 +70,6 @@ namespace positions { uint16_t timeToFix = rtc::getTime() - before; - tmElements_t time; - gps::getTime(time); - rtc::setTime(time); - metadata = { battery.level, battery.voltage,