Deze website werkt beter met JavaScript.
Beginscherm
Verkennen
Help
Inloggen
GPS
/
gpstracker-firmware
kopie van
https://github.com/blemasle/gpstracker-firmware.git
Volgen
1
Ster
0
Vork
0
Code
Kwesties
0
Publicaties
8
Wiki
Activiteit
Bladeren bron
Moved RTC time update from GPS to Core workflow rather than position acquisition. Avoid edge cases where the spend time measurement could be wrong because of time update in between the two measure points.
tags/v1.2.0
Bertrand Lemasle
6 jaren geleden
bovenliggende
b63912bd29
commit
c7063a5698
3 gewijzigde bestanden
met
toevoegingen van 16
en
6 verwijderingen
Zij-aan-zij weergave
Diff opties
Statistieken weergeven
Download Patch-bestand
Download Diff-bestand
+15
-2
GpsTracker/Core.cpp
+1
-0
GpsTracker/Core.h
+0
-4
GpsTracker/Positions.cpp
+ 15
- 2
GpsTracker/Core.cpp
Bestand weergeven
@@ -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);
+ 1
- 0
GpsTracker/Core.h
Bestand weergeven
@@ -14,6 +14,7 @@ namespace core {
extern uint16_t sleepTime;
void main();
void updateRtcTime();
bool updateSleepTime();
uint16_t mapSleepTime(uint8_t velocity);
}
+ 0
- 4
GpsTracker/Positions.cpp
Bestand weergeven
@@ -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,
Schrijf
Voorbeeld
Laden…
Annuleren
Opslaan