From 5ae96e21d40a7662d0234dc864b0356923b19c0a Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Wed, 24 Jul 2024 20:50:27 +0800 Subject: [PATCH] =?utf8?q?=E4=BF=AE=E5=A4=8D=E7=94=B5=E9=87=8F=E9=A2=9C?= =?utf8?q?=E8=89=B2=E6=9B=B4=E6=96=B0=E7=BC=93=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../main/include/dial/DialBoxProgressView.h | 8 +++++- .../main/src/dial/DialBoxProgressView.cpp | 28 ++++++++----------- .../main/src/dial/DialModelPowerStandby.cpp | 11 ++------ 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h index d286f4d9e..7d6be25ea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-05-30 15:59:37 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-24 20:40:41 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h + */ /*** * @Date: 2024-05-30 15:59:37 * @LastEditors: Caisking 3449750381@qq.com @@ -28,7 +34,7 @@ namespace OHOS } void HandleFloatData(float data) override; void UpdataChargColor(); - void UpdateBatteryColor(int value); + void UpdateBatteryColor(); void SetViewColor(int64_t color); private: diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialBoxProgressView.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialBoxProgressView.cpp index 13986340c..3c497cd44 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialBoxProgressView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialBoxProgressView.cpp @@ -20,26 +20,23 @@ namespace OHOS void DialBoxProgressView::HandleFloatData(float data) { - // 进行平滑处理 - static float lastData = 0.0f; - float smoothedData = (lastData + data) / 2; // 简单取平均 - lastData = smoothedData; - - // 将平滑后的值限制在 0 到 1 之间 - float ratio = smoothedData < 0.0f ? 0.0f : (smoothedData > 1.0f ? 1.0f : smoothedData); + // 值限制在 0 到 1 之间 + float ratio = data < 0.0f ? 0.0f : (data > 1.0f ? 1.0f : data); int32_t value = static_cast(ratio * (GetRangeMax() - GetRangeMin())); + if (value != value_) + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateBatteryColor value:%d", value); - UpdateBatteryColor(value); // 在值变化或充电状态变化时更新颜色 + UpdateBatteryColor(); // 在值变化或充电状态变化时更新颜色 // 第一次初始化或值变化时更新 - if (value_ != value) + if (value != value_) { value_ = value; SetValue(value_); } } - void DialBoxProgressView::UpdateBatteryColor(int value) + void DialBoxProgressView::UpdateBatteryColor() { bool isCharging = get_charge_stat(); // 获取充电状态 @@ -49,21 +46,20 @@ namespace OHOS return; } - // 电量未发生变化且未充电 - if (value == value_) - return; - // 根据值设置电池颜色 if (value_ > BATTERY_MEDIUM_THRESHOLD) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateBatteryColor White: %d", value_); SetViewColor(Color::White().full); } - else if (value_ > BATTERY_LOW_THRESHOLD) + else if (value_ <= BATTERY_MEDIUM_THRESHOLD && value_ > BATTERY_LOW_THRESHOLD) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateBatteryColor Yellow: %d", value_); SetViewColor(Color::Yellow().full); } - else + else if (value_ <= BATTERY_LOW_THRESHOLD && value_ > 0) { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateBatteryColor Red: %d", value_); SetViewColor(Color::Red().full); } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp index 557c69ce8..3a031a4d5 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp @@ -17,12 +17,7 @@ REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_STANDBY, OHOS::DialModelPowerSt namespace OHOS { - float DialModelPowerStanby::SmoothPowerUpdate(float newPower) - { - const float alpha = 0.1; // 平滑因子,总值范围是0-1 - PowerStanby_ = alpha * newPower + (1 - alpha) * PowerStanby_; - return PowerStanby_; - } + bool DialModelPowerStanby::GetDialFloatData(DialDataType &type, float &out) { (void)type; @@ -34,7 +29,7 @@ namespace OHOS } float voltage = 0.0F; - PowerStanby_ = SmoothPowerUpdate(battery_get_voltage(&voltage)); + PowerStanby_ = battery_get_voltage(&voltage); WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Battery voltage obtained: %.2f", voltage); @@ -65,7 +60,7 @@ namespace OHOS void DialModelPowerStanby::UpdatePowerStanby() { float voltage = 0.0F; - PowerStanby_ = SmoothPowerUpdate(battery_get_voltage(&voltage)); + PowerStanby_ = battery_get_voltage(&voltage); if (PowerStanby_ == 0) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get battery voltage"); -- 2.17.1