From 3e652e33dc2754e1d0066c4b2a62c696b3a0cf74 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Mon, 6 May 2024 16:08:44 +0800 Subject: [PATCH] =?utf8?q?=E6=9B=BF=E6=8D=A2=E7=BB=93=E6=9E=84=E4=BD=93?= =?utf8?q?=E6=88=90=E5=91=98=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../main/include/dial/DialModelTime.h | 2 +- .../nativeui/main/src/dial/DialModelTime.cpp | 33 +++++++++---------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelTime.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelTime.h index d813c65b5..6f4fb7607 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelTime.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelTime.h @@ -24,7 +24,7 @@ public: void UpdateTime(); private: - struct tm *tblock_; + struct tm tblock_; uint16_t angleH_ = 0; uint16_t angleM_ = 0; uint16_t angleS_ = 0; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelTime.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelTime.cpp index afc9a9e9b..2094fdae0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelTime.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelTime.cpp @@ -74,29 +74,26 @@ void DialModelTime::UpdateTime() struct timeval tv; gettimeofday(&tv, NULL); tblock_ = localtime(&tv.tv_sec); - int realMS = tblock_->tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS; + int realMS = tblock_.tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS; #else /*优化为更安全的localtime_r()*/ struct timeval tv; gettimeofday(&tv, NULL); - struct tm tblock; - localtime_r(&tv.tv_sec, &tblock); - tblock_ = &tblock; - int realMS = tblock.tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS; + localtime_r(&tv.tv_sec, &tblock_); + int realMS = tblock_.tm_sec * S_MS_US_TRANS + tv.tv_usec / S_MS_US_TRANS; #endif - angleH_ = ConvertHandValueToAngle(tblock_->tm_hour, HALF_DAY_IN_HOUR, tblock_->tm_min, ONE_HOUR_IN_MINUTE); - angleM_ = ConvertHandValueToAngle(tblock_->tm_min, ONE_HOUR_IN_MINUTE, tblock_->tm_sec, ONE_MINUTE_IN_SECOND); - angleS_ = ConvertHandValueToAngle(tblock_->tm_sec, ONE_MINUTE_IN_SECOND, 0, 1); + angleH_ = ConvertHandValueToAngle(tblock_.tm_hour, HALF_DAY_IN_HOUR, tblock_.tm_min, ONE_HOUR_IN_MINUTE); + angleM_ = ConvertHandValueToAngle(tblock_.tm_min, ONE_HOUR_IN_MINUTE, tblock_.tm_sec, ONE_MINUTE_IN_SECOND); + angleS_ = ConvertHandValueToAngle(tblock_.tm_sec, ONE_MINUTE_IN_SECOND, 0, 1); angleMS_ = ConvertHandSecondValueToAngle(realMS, S_MS_US_TRANS * ONE_MINUTE_IN_SECOND); } bool DialModelTime::GetDialFloatData(DialDataType& type, float& out) { - if (tblock_ == nullptr) { - UpdateTime(); - } + UpdateTime(); + switch (type) { case DialDataType::DATA_TYPE_CLOCK_ANGLE_H: out = static_cast(angleH_); @@ -111,25 +108,25 @@ bool DialModelTime::GetDialFloatData(DialDataType& type, float& out) out = static_cast(angleMS_); break; case DialDataType::DATA_TYPE_TIME_YEAR: - out = static_cast((tblock_->tm_year) + 1900); + out = static_cast((tblock_.tm_year) + 1900); break; case DialDataType::DATA_TYPE_TIME_MONTH: - out = static_cast((tblock_->tm_mon) + 1); + out = static_cast((tblock_.tm_mon) + 1); break; case DialDataType::DATA_TYPE_TIME_WEEK: - out = static_cast(tblock_->tm_wday); + out = static_cast(tblock_.tm_wday); break; case DialDataType::DATA_TYPE_TIME_DATE: - out = static_cast(tblock_->tm_mday); + out = static_cast(tblock_.tm_mday); break; case DialDataType::DATA_TYPE_TIME_HOUR: - out = static_cast(tblock_->tm_hour); + out = static_cast(tblock_.tm_hour); break; case DialDataType::DATA_TYPE_TIME_MINUTE: - out = static_cast(tblock_->tm_min); + out = static_cast(tblock_.tm_min); break; case DialDataType::DATA_TYPE_TIME_SECOND: - out = static_cast(tblock_->tm_sec); + out = static_cast(tblock_.tm_sec); break; default: return false; -- 2.17.1