diff options
author | Tim Keller <geekboy1011@gmail.com> | 2021-08-17 23:53:57 +0000 |
---|---|---|
committer | Tim Keller <geekboy1011@gmail.com> | 2021-08-17 23:53:57 +0000 |
commit | 55f8908769aab970413b249cb26acdaf22c79ada (patch) | |
tree | 21d0e06dd2ca20ac99abbcfe06661fff5a6c2e64 /src/components | |
parent | ee44b6ff4998d6f4d0672c05c1f65c0a9692dc0d (diff) |
Make Clock Persistant.
Diffstat (limited to 'src/components')
-rw-r--r-- | src/components/datetime/DateTimeController.cpp | 7 | ||||
-rw-r--r-- | src/components/datetime/DateTimeController.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/components/datetime/DateTimeController.cpp b/src/components/datetime/DateTimeController.cpp index d6aa83c8..77c5be4e 100644 --- a/src/components/datetime/DateTimeController.cpp +++ b/src/components/datetime/DateTimeController.cpp @@ -5,6 +5,10 @@ using namespace Pinetime::Controllers; +void DateTime::SetCurrentTime(std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> t) { + this->currentDateTime = t; +} + void DateTime::SetTime( uint16_t year, uint8_t month, uint8_t day, uint8_t dayOfWeek, uint8_t hour, uint8_t minute, uint8_t second, uint32_t systickCounter) { std::tm tm = { @@ -67,11 +71,12 @@ void DateTime::UpdateTime(uint32_t systickCounter) { // Notify new day to SystemTask if (hour == 0 and not isMidnightAlreadyNotified) { isMidnightAlreadyNotified = true; - if(systemTask != nullptr) + if (systemTask != nullptr) systemTask->PushMessage(System::Messages::OnNewDay); } else if (hour != 0) { isMidnightAlreadyNotified = false; } + BackUpTime = currentDateTime; } const char* DateTime::MonthShortToString() { diff --git a/src/components/datetime/DateTimeController.h b/src/components/datetime/DateTimeController.h index 265d6e9d..ed7b0861 100644 --- a/src/components/datetime/DateTimeController.h +++ b/src/components/datetime/DateTimeController.h @@ -2,6 +2,7 @@ #include <cstdint> #include <chrono> +extern std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> BackUpTime; namespace Pinetime { namespace System { @@ -74,6 +75,7 @@ namespace Pinetime { } void Register(System::SystemTask* systemTask); + void SetCurrentTime(std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds> t); private: uint16_t year = 0; |