From da17bfbc2367c3f72d07ed4d3be1ddffde733fa8 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Sat, 26 Oct 2024 15:26:36 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A8=E7=9B=98=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?utf8?q?=E6=99=A8=E6=9B=A6=E8=A1=A8=E7=9B=98=E7=94=B5=E9=87=8F=E6=98=A0?= =?utf8?q?=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/main/include/dial/DialDataBase.h | 2 + .../main/include/dial/DialModelPowerMapper.h | 25 ++++++++++ .../main/src/dial/DialModelPowerMapper.cpp | 47 ++++++++++++++++++ .../fs/user/dial/res_dial/dawninsight.bin | 2 +- .../dial_lzma/113/dawninsight.lzma | Bin 203749 -> 203766 bytes .../instance/113/dawninsight.xml | 2 +- 6 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerMapper.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerMapper.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h index f69ca2fc0..c15165f2a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h @@ -38,6 +38,8 @@ enum class DialDataType { DATA_TYPE_MINUTE_UNITS, // 分钟(单位) DATA_TYPE_WEEK_NUM, // 星期(数字) DATA_TYPE_STEPS_GOAL, // 运动步数目标 + DATA_TYPE_SECOND_MAPPER, // 秒映射 + DATA_TYPE_POWER_MAPPER, // 电量映射 DATA_TYPE_MULTI_FLOAT_BASE = 0x2fff, // 多个浮点数据类型基值 DATA_TYPE_HOUR_MIN, // 时分 diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerMapper.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerMapper.h new file mode 100644 index 000000000..fb7659bb8 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerMapper.h @@ -0,0 +1,25 @@ + +#ifndef DIAL_MODEL_PowerMapper_H +#define DIAL_MODEL_PowerMapper_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelPowerMapper : public DialBaseModel { +public: + DialModelPowerMapper() {} + ~DialModelPowerMapper() override {} + static DialModelPowerMapper *GetInstance() { + static DialModelPowerMapper instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdatePowerMapper(); + void NotifyPowerMapperUpdate(); + +private: + float powermapper_ = 0; + bool PowerMapperUpdated_{false}; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerMapper.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerMapper.cpp new file mode 100644 index 000000000..8e5ce049d --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerMapper.cpp @@ -0,0 +1,47 @@ + + +#include "DialBoxProgressView.h" +#include "DialModelPowerMapper.h" +#include "RegisterDialModel.h" +#include "battery_hal.h" +#include "wearable_log.h" +#include +extern uint8_t battery_get_voltage(float *voltage); + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_MAPPER, + OHOS::DialModelPowerMapper::GetInstance()); + +namespace OHOS { +bool DialModelPowerMapper::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + float voltage = 0.0F; + powermapper_ = battery_get_voltage(&voltage); + //电量0~100 + //映射0~1 + powermapper_ = static_cast(powermapper_) / 100.0f; + out = static_cast(powermapper_); + return true; +} + +void DialModelPowerMapper::UpdatePowerMapper() { + float voltage = 0.0F; + powermapper_ = battery_get_voltage(&voltage); + if (powermapper_ == 0) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get battery voltage"); + return; + } + PowerMapperUpdated_ = true; + NotifyPowerMapperUpdate(); +} + +void DialModelPowerMapper::NotifyPowerMapperUpdate() { + if (onChangeListener_ == nullptr) { + onChangeListener_ = new OnDialDataUpdateListener(); + } + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialFloatDataUpdate( + DialDataType::DATA_TYPE_POWER_MAPPER, powermapper_); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[UpdatePowerMapper!]\r\n"); + } +} +} // namespace OHOS diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/dawninsight.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/dawninsight.bin index cfb3698d0..91b7786bd 100644 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/dawninsight.bin +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/dawninsight.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:59d4044131b8101acc4537c70d02d19fc99241863bc22a2c66de1e06fafb817a +oid sha256:22d4aaf5fcfa158662d264ebc3957834718b0c5f9bb093debc5a440555cc0806 size 330175 diff --git a/tools/dial_converter_tool/dial_lzma/113/dawninsight.lzma b/tools/dial_converter_tool/dial_lzma/113/dawninsight.lzma index 6f1ddd9c40c85dc91d002f0c4598c7b1e93c9c09..f7a4c62ae64e2ea1010beca4ffe0a75a21596d67 100644 GIT binary patch literal 203766 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