このサイトはJavaScriptを使用しています
ホーム
エクスプローラー
ヘルプ
サインイン
GPS
/
gpstracker-firmware
ミラー元
https://github.com/blemasle/gpstracker-firmware.git
ウォッチ
1
スター
0
フォーク
0
コード
課題
0
リリース
8
Wiki
アクティビティ
ソースを参照
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年前
親
b63912bd29
コミット
c7063a5698
3個のファイルの変更
、
16行の追加
、
6行の削除
分割表示
差分オプション
統計情報を表示
Patchファイルをダウンロード
Diffファイルをダウンロード
+15
-2
GpsTracker/Core.cpp
+1
-0
GpsTracker/Core.h
+0
-4
GpsTracker/Positions.cpp
+ 15
- 2
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);
+ 1
- 0
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);
}
+ 0
- 4
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,
書き込み
プレビュー
読み込み中…
キャンセル
保存