表盘:修复晨曦表盘电量映射
authorCaisking <3449750381@qq.com>
Sat, 26 Oct 2024 07:26:36 +0000 (15:26 +0800)
committeraliyun:aliyun0384013184_1JeGs <3449750381@qq.com>
Sat, 26 Oct 2024 09:05:44 +0000 (09:05 +0000)
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerMapper.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerMapper.cpp [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/dawninsight.bin
tools/dial_converter_tool/dial_lzma/113/dawninsight.lzma
tools/dial_converter_tool/instance/113/dawninsight.xml

index f69ca2f..c15165f 100644 (file)
@@ -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 (file)
index 0000000..fb7659b
--- /dev/null
@@ -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 (file)
index 0000000..8e5ce04
--- /dev/null
@@ -0,0 +1,47 @@
+
+
+#include "DialBoxProgressView.h"
+#include "DialModelPowerMapper.h"
+#include "RegisterDialModel.h"
+#include "battery_hal.h"
+#include "wearable_log.h"
+#include <string>
+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<float>(powermapper_) / 100.0f;
+  out = static_cast<float>(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
index 6f1ddd9..f7a4c62 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/113/dawninsight.lzma and b/tools/dial_converter_tool/dial_lzma/113/dawninsight.lzma differ
index 56be3a9..cdea9d3 100644 (file)
@@ -28,7 +28,7 @@
     <label id="minute_label" color="0xFF666666" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="adapt" rect="240 162 200 60" text="%02.f" font_size="120" align="center" bind_data="14" period="10"></label>\r
 \r
     <!-- 电量 -->\r
-    <arc_progress id="battery_progress" rect="0 0 466 436" color="0xFFf0c440" cap_type="round" radius="191"  background_color="0x00FFFFFF" start_angle="290" end_angle="430" line_width="10" bind_data="25" period="10"></arc_progress>\r
+    <arc_progress id="battery_progress" rect="0 0 466 436" color="0xFFf0c440" cap_type="round" radius="191"  background_color="0xff191919" start_angle="290" end_angle="430" line_width="10" bind_data="33" period="10"></arc_progress>\r
     <!-- 步数目标 -->\r
     <box_progress id="stepgoal_progress" rect="103 302 260 12" color="0xFFf0c440" cap_type="round" direction="left_to_right" background_color="0xff191919" bind_data="31"></box_progress>\r
 \r