S JavaScriptem funguje tato webová stránka lépe.
Domů
Procházet
Nápověda
Přihlásit se
GPS
/
gpstracker-firmware
zrcadlo
https://github.com/blemasle/gpstracker-firmware.git
Sledovat
1
Oblíbit
0
Rozštěpit
0
Zdrojový kód
Úkoly
0
Vydání
8
Wiki
Aktivita
Procházet zdrojové kódy
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
před 6 roky
rodič
b63912bd29
revize
c7063a5698
3 změnil soubory
, kde provedl
16 přidání
a
6 odebrání
Rozdělené zobrazení
Diff Options
Zobrazit statistiky
Stáhněte soubor opravy
Stáhněte rozdílový soubor
+15
-2
GpsTracker/Core.cpp
+1
-0
GpsTracker/Core.h
+0
-4
GpsTracker/Positions.cpp
+ 15
- 2
GpsTracker/Core.cpp
Zobrazit soubor
@@ -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
Zobrazit soubor
@@ -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
Zobrazit soubor
@@ -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,
Zapsat
Náhled
Načítá se…
Zrušit
Uložit