diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-04-16 14:25:31 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-04-16 14:27:26 (GMT) |
| commit | 4bf155e72a6ff4cc41c0efa5a6e72731aa873801 (patch) | |
| tree | c07b02e48a0df7c0dd2eb67f31f2b583f5f81f48 | |
| parent | 9311f4787551373406a66d726de2a5fdae6cfb99 (diff) | |
Fix for RescheduleAlarm
| -rw-r--r-- | src/components/alarm/AlarmController.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/components/alarm/AlarmController.cpp b/src/components/alarm/AlarmController.cpp index 0a2231f..93fb284 100644 --- a/src/components/alarm/AlarmController.cpp +++ b/src/components/alarm/AlarmController.cpp @@ -50,14 +50,15 @@ void AlarmController::RescheduleAlarm() { xTimerStop(alarmAppTimer, 0); auto now = dateTimeController.CurrentDateTime(); - alarmTime = now; - auto mSecToAlarm = std::chrono::duration_cast<std::chrono::milliseconds>(alarmTime - now).count(); - if (mSecToAlarm < 0) { mSecToAlarm = 0; } + if (now > alarmTime) { + xTimerChangePeriod(alarmAppTimer, 1, 0); + } else { + auto mSecToAlarm = std::chrono::duration_cast<std::chrono::milliseconds>(alarmTime - now).count(); + xTimerChangePeriod(alarmAppTimer, APP_TIMER_TICKS(mSecToAlarm), 0); + } - xTimerChangePeriod(alarmAppTimer, APP_TIMER_TICKS(mSecToAlarm), 0); xTimerStart(alarmAppTimer, 0); - } void AlarmController::ScheduleAlarm() { |
