Переглянути джерело

Added a new ABOUT_TO_STOP state to manage prepare and backup power adequality

tags/v1.4.0^2
Bertrand Lemasle 6 роки тому
джерело
коміт
3abdc2edcd
2 змінених файлів з 13 додано та 6 видалено
  1. +10
    -4
      src/Core.cpp
  2. +3
    -2
      src/Core.h

+ 10
- 4
src/Core.cpp Переглянути файл

@@ -39,7 +39,11 @@ namespace core {
bool acquired = false;
PositionEntryMetadata metadata;
if(movingState >= TRACKER_MOVING_STATE::STOPPED) positions::prepareBackup();
if(movingState >= TRACKER_MOVING_STATE::ABOUT_TO_STOP) {
//forcing when the tracker is about to stop (which should result in STOPPED a few lines below)
positions::prepareBackup(movingState == TRACKER_MOVING_STATE::ABOUT_TO_STOP);
}
acquired = positions::acquire(metadata);
if (acquired) {
@@ -53,7 +57,7 @@ namespace core {
alerts::add(notifyFailures(metadata));
if(movingState >= TRACKER_MOVING_STATE::STOPPED) {
positions::doBackup(movingState == TRACKER_MOVING_STATE::STOPPED); //do not force on STATIC
positions::doBackup(movingState == TRACKER_MOVING_STATE::STOPPED); //forcing at the moment the tracker stop
}
if (acquired) updateRtcTime();
@@ -124,14 +128,16 @@ namespace core {
if (stoppedInARow < SLEEP_DEFAULT_STOPPED_THRESHOLD) {
sleepTime = SLEEP_DEFAULT_PAUSING_TIME_SECONDS;
state = TRACKER_MOVING_STATE::PAUSED;
state = stoppedInARow == SLEEP_DEFAULT_STOPPED_THRESHOLD - 1 ?
TRACKER_MOVING_STATE::ABOUT_TO_STOP :
TRACKER_MOVING_STATE::PAUSED;
}
else if (stoppedInARow == SLEEP_DEFAULT_STOPPED_THRESHOLD) state = TRACKER_MOVING_STATE::STOPPED;
else state = TRACKER_MOVING_STATE::STATIC;
}
else stoppedInARow = 0;
NOTICE_FORMAT("%dkmh => %d seconds", velocity, sleepTime);
NOTICE_FORMAT("stop %d, state %d, %dkmh => %ds", stoppedInARow, state, velocity, sleepTime);
return state;
}


+ 3
- 2
src/Core.h Переглянути файл

@@ -6,8 +6,9 @@
enum class TRACKER_MOVING_STATE : uint8_t {
MOVING = 0,
PAUSED = 1,
STOPPED = 2,
STATIC = 3
ABOUT_TO_STOP = 2,
STOPPED = 3,
STATIC = 4
};
namespace core {


Завантаження…
Відмінити
Зберегти