表盘:增加电量字符串数据类型 1323/1 1323/head
authorluozheng <1732036298@qq.com>
Sat, 2 Nov 2024 11:06:22 +0000 (19:06 +0800)
committerluozheng <1732036298@qq.com>
Sat, 2 Nov 2024 11:06:22 +0000 (19:06 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerStr.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStr.cpp [new file with mode: 0644]
tools/dial_converter_tool/dial_lzma/105/kitty.lzma
tools/dial_converter_tool/instance/105/kitty.xml

index 0fa4f00..aca3437 100644 (file)
@@ -182,6 +182,7 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelStepgoal.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelSecondMapper.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelPowerMapper.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelPowerStr.cpp
     #exception handling
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heart_blood/CheckAbnormalView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heart_blood/CheckAbnormalPresenter.cpp
index c15165f..3f16aba 100644 (file)
@@ -50,6 +50,7 @@ enum class DialDataType {
   DATA_TYPE_WEATHER_STR,        // 天气(string)
   DATA_TYPE_TIMESTR_STR,        // 时间(string)
   DATA_TYPE_DATE_WEEK_STR,      // 日期星期(string)
+  DATA_TYPE_POWER_STR,          // 电量(string)
 
   DATA_TYPE_MAX = 0x7fff, // 数据类型的最大值
 };
diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerStr.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerStr.h
new file mode 100644 (file)
index 0000000..2babe9d
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-11-02 18:09:28
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-11-02 18:17:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerStr.h
+ */
+
+
+#ifndef DIAL_MODEL_POWER_STR_H
+#define DIAL_MODEL_POWER_STR_H
+
+#include "DialBaseModel.h"
+#include <cstdint>
+#include <string>
+
+namespace OHOS
+{
+    class DialModelPowerStr : public DialBaseModel
+    {
+    public:
+        DialModelPowerStr() {}
+        virtual ~DialModelPowerStr() {}
+        static DialModelPowerStr *GetInstance()
+        {
+            static DialModelPowerStr instance;
+            return &instance;
+        }
+        bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override;
+        void UpdateTimeStr(const std::string dialPowerStr);
+
+    private:
+        std::string dialPowerStr_;
+    };
+} // namespace OHOS
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStr.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStr.cpp
new file mode 100644 (file)
index 0000000..82f44ba
--- /dev/null
@@ -0,0 +1,31 @@
+#include "main/include/dial/DialModelPowerStr.h"
+#include "main/include/dial/RegisterDialModel.h"
+#include "wearable_log.h"
+#include "battery_hal.h"
+extern uint8_t battery_get_voltage(float *voltage);
+
+namespace OHOS
+{
+    REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_STR,OHOS::DialModelPowerStr::GetInstance());
+
+    bool DialModelPowerStr::GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum)
+    {
+        (void)type;
+        float voltage = 0.0F;
+        uint8_t power_ = battery_get_voltage(&voltage);
+        dialPowerStr_ = std::to_string(power_) + "%";
+        out = &dialPowerStr_;
+        strNum = 1;
+        return true;
+    }
+
+    void DialModelPowerStr::UpdateTimeStr(const std::string dialPowerStr)
+    {
+        dialPowerStr_.clear();
+        dialPowerStr_ = dialPowerStr; // 更新字符串
+        if (onChangeListener_ != nullptr)
+        {
+            onChangeListener_->OnDialTextDataUpdate(DialDataType::DATA_TYPE_POWER_STR, &dialPowerStr_, 1);
+        }
+    }
+}
\ No newline at end of file
index 5d9e924..9ad880d 100644 (file)
Binary files a/tools/dial_converter_tool/dial_lzma/105/kitty.lzma and b/tools/dial_converter_tool/dial_lzma/105/kitty.lzma differ
index fa9264e..d4db162 100644 (file)
@@ -14,7 +14,7 @@
     <!-- 电池图像 -->
     <option_img position="173 52" img_names="./instance/105/Battery/Battery.png,./instance/105/Battery/BatteryCharge.png" bind_data="20" period="10"></option_img>
     <!-- 电池百分比标签 -->
-    <label id="battery_label" color="0xFFFFFFFF" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="adapt" rect="228 52 200 62" text="%2.0f%%" font_size="26" align="center" bind_data="8" period="10"></label>
+    <label id="battery_label" color="0xFFFFFFFF" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="adapt" rect="228 52 200 62" text="%s" font_size="26" align="center" bind_data="20485" period="10"></label>
 
 
     <!-- <label id="hour_label" color="0xFFFFFFFF" font="HarmonyOS_Sans_SC_Regular.ttf" break_mode="adapt" rect="101 295 200 60" text="%02.0f" font_size="90" align="center" bind_data="15" period="10"></label>