From 34fb74c2362762d898aca33636d2ff8b0d39551b Mon Sep 17 00:00:00 2001 From: guduhanyan Date: Mon, 27 Dec 2021 01:17:11 +0800 Subject: [PATCH 1/2] 20211227master00 Signed-off-by: guduhanyan --- .../time_manager/include/time_tick_notify.h | 1 - .../time_manager/src/time_tick_notify.cpp | 32 +++++++++---------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/services/time_manager/include/time_tick_notify.h b/services/time_manager/include/time_tick_notify.h index bef1e20..105be8c 100644 --- a/services/time_manager/include/time_tick_notify.h +++ b/services/time_manager/include/time_tick_notify.h @@ -31,7 +31,6 @@ private: void StartTimer(); void RefreshNextTriggerTime(); uint64_t GetMillisecondsFromUTC(uint64_t UTCtimeNano); - uint64_t GetSecondsFromUTC(uint64_t UTCtimeNano); uint64_t timerId_; uint64_t nextTriggerTime_; }; diff --git a/services/time_manager/src/time_tick_notify.cpp b/services/time_manager/src/time_tick_notify.cpp index 7079e9d..1a9d647 100644 --- a/services/time_manager/src/time_tick_notify.cpp +++ b/services/time_manager/src/time_tick_notify.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include "time_common.h" #include "time_service_notify.h" #include "timer_manager_interface.h" @@ -25,11 +26,9 @@ using namespace std::chrono; namespace OHOS { namespace MiscServices { namespace { -constexpr uint64_t SECOND_TO_MILESECOND = 1000; -constexpr uint64_t MINUTE_TO_MILLISECOND = 6000; -constexpr uint64_t NANO_TO_SECOND = 1000000000; -constexpr uint64_t NANO_TO_MILESECOND = 100000; -constexpr uint64_t SECOND_TO_MINUTE = 60; +constexpr uint64_t MINUTE_TO_MILLISECOND = 60000; +constexpr uint64_t MICRO_TO_MILESECOND = 1000; +constexpr uint64_t NANO_TO_MILESECOND = 1000000; } TimeTickNotify::TimeTickNotify() {}; TimeTickNotify::~TimeTickNotify() {}; @@ -65,14 +64,14 @@ void TimeTickNotify::Callback(const uint64_t timerId) void TimeTickNotify::RefreshNextTriggerTime() { - uint64_t timeNowMilliseconds; - auto UTCTimeNano = system_clock::now().time_since_epoch().count(); + time_t t; + time(&t); + TIME_HILOGI(TIME_MODULE_SERVICE, "Time now: %{public}s", asctime(localtime(&t))); + auto UTCTimeMicro = system_clock::now().time_since_epoch().count(); auto BootTimeNano = steady_clock::now().time_since_epoch().count(); auto BootTimeMilli = BootTimeNano / NANO_TO_MILESECOND; - auto timeMilliseconds = GetMillisecondsFromUTC(UTCTimeNano); - auto timeSeconds = GetSecondsFromUTC(UTCTimeNano); - timeNowMilliseconds = timeSeconds * SECOND_TO_MILESECOND + timeMilliseconds; - nextTriggerTime_ = BootTimeMilli+ (MINUTE_TO_MILLISECOND - timeNowMilliseconds); + auto timeMilliseconds = GetMillisecondsFromUTC(UTCTimeMicro); + nextTriggerTime_ = BootTimeMilli + (MINUTE_TO_MILLISECOND - timeMilliseconds); return ; } @@ -87,15 +86,14 @@ void TimeTickNotify::Stop() TimeService::GetInstance()->DestroyTimer(timerId_); } -uint64_t TimeTickNotify::GetMillisecondsFromUTC(uint64_t UTCtimeNano) +uint64_t TimeTickNotify::GetMillisecondsFromUTC(uint64_t UTCtimeMicro) { - return (UTCtimeNano / NANO_TO_MILESECOND) % SECOND_TO_MILESECOND; + TIME_HILOGD(TIME_MODULE_SERVICE, "Time micro: %{public}" PRId64 "", UTCtimeMicro); + auto miliseconds = (UTCtimeMicro / MICRO_TO_MILESECOND) % MINUTE_TO_MILLISECOND; + TIME_HILOGD(TIME_MODULE_SERVICE, "Time mili: %{public}" PRId64 "", miliseconds); + return miliseconds; } -uint64_t TimeTickNotify::GetSecondsFromUTC(uint64_t UTCtimeNano) -{ - return (UTCtimeNano / NANO_TO_SECOND) % SECOND_TO_MINUTE; -} } // MiscServices } // OHOS From 7bc14e45c5f974f3d6534a50b729a7d91b02b4f5 Mon Sep 17 00:00:00 2001 From: guduhanyan Date: Mon, 27 Dec 2021 06:34:44 +0800 Subject: [PATCH 2/2] 20211227master01 Signed-off-by: guduhanyan --- services/time_manager/src/time_tick_notify.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/services/time_manager/src/time_tick_notify.cpp b/services/time_manager/src/time_tick_notify.cpp index 1a9d647..cc2e878 100644 --- a/services/time_manager/src/time_tick_notify.cpp +++ b/services/time_manager/src/time_tick_notify.cpp @@ -15,7 +15,7 @@ #include #include #include -#include +#include #include "time_common.h" #include "time_service_notify.h" #include "timer_manager_interface.h" @@ -64,9 +64,9 @@ void TimeTickNotify::Callback(const uint64_t timerId) void TimeTickNotify::RefreshNextTriggerTime() { - time_t t; - time(&t); - TIME_HILOGI(TIME_MODULE_SERVICE, "Time now: %{public}s", asctime(localtime(&t))); + time_t t = time(NULL); + struct tm *tblock = localtime(&t); + TIME_HILOGI(TIME_MODULE_SERVICE, "Time now: %{public}s", asctime(tblock)); auto UTCTimeMicro = system_clock::now().time_since_epoch().count(); auto BootTimeNano = steady_clock::now().time_since_epoch().count(); auto BootTimeMilli = BootTimeNano / NANO_TO_MILESECOND; @@ -93,7 +93,6 @@ uint64_t TimeTickNotify::GetMillisecondsFromUTC(uint64_t UTCtimeMicro) TIME_HILOGD(TIME_MODULE_SERVICE, "Time mili: %{public}" PRId64 "", miliseconds); return miliseconds; } - } // MiscServices } // OHOS