@@ -7,14 +7,19 @@
using namespace utils;
using namespace utils;
namespace core {
namespace core {
uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS;
uint16_t sleepTime = SLEEP_DEFAULT_TIME_SECONDS;
uint8_t stoppedInARow = SLEEP_DEFAULT_STOPPED_THRESHOLD - 1;
uint8_t stoppedInARow = SLEEP_DEFAULT_STOPPED_THRESHOLD - 1;
void main() {
void main() {
bool forceBackup = false;
bool forceBackup = false;
positions::prepareBackup() ;
bool acquired = false ;
PositionEntryMetadata metadata;
PositionEntryMetadata metadata;
if (positions::acquire(metadata)) {
positions::prepareBackup();
acquired = positions::acquire(metadata);
if (acquired) {
positions::appendLast(metadata);
positions::appendLast(metadata);
forceBackup = updateSleepTime();
forceBackup = updateSleepTime();
@@ -22,9 +27,17 @@ namespace core {
}
}
positions::doBackup(forceBackup);
positions::doBackup(forceBackup);
if (acquired) updateRtcTime();
mainunit::deepSleep(sleepTime);
mainunit::deepSleep(sleepTime);
}
}
void updateRtcTime() {
tmElements_t time;
gps::getTime(time);
rtc::setTime(time);
}
bool updateSleepTime() {
bool updateSleepTime() {
uint8_t velocity = gps::getVelocity();
uint8_t velocity = gps::getVelocity();
uint16_t result = mapSleepTime(velocity);
uint16_t result = mapSleepTime(velocity);