Šī lapa labāk darbojas, ja pārlūkam ir iespējots JavaScript.
Sākums
Izpētīt
Palīdzība
Pierakstīties
GPS
/
gpstracker-firmware
spogulis no
https://github.com/blemasle/gpstracker-firmware.git
Vērot
1
Pievienot zvaigznīti
0
Atdalīts
0
Kods
Problēmas
0
Laidieni
8
Vikivietne
Aktivitāte
Pārlūkot izejas kodu
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
pirms 6 gadiem
vecāks
b63912bd29
revīzija
c7063a5698
3 mainītis faili
ar
16 papildinājumiem
un
6 dzēšanām
Dalītais skats
Salīdzināšanas iespējas
Rādīt statistiku
Lejupielādēt ielāpa failu
Lejupielādēt izmaiņu failu
+15
-2
GpsTracker/Core.cpp
+1
-0
GpsTracker/Core.h
+0
-4
GpsTracker/Positions.cpp
+ 15
- 2
GpsTracker/Core.cpp
Parādīt failu
@@ -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
Parādīt failu
@@ -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
Parādīt failu
@@ -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,
Rakstīt
Priekšskatītījums
Notiek ielāde…
Atcelt
Saglabāt