${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
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, // 数据类型的最大值
};
--- /dev/null
+/*
+ * @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
--- /dev/null
+#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
<!-- 电池图像 -->
<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>