表盘增加电量显示
authorCaisking <Casiking@zhihuishixun.com>
Sat, 24 May 2025 03:19:28 +0000 (11:19 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Sat, 24 May 2025 03:19:28 +0000 (11:19 +0800)
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerMapper.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerStandby.cpp
code/sdk/application/wearable/fd230/nativeapp/nativeui/main/src/dial/DialModelPowerStr.cpp

index 779f9ef..d076ba9 100644 (file)
@@ -6,8 +6,8 @@
 #include "wearable_log.h"
 #include <string>
 
-// #include "battery_hal.h"
-// extern uint8_t battery_get_voltage(float *voltage);
+#include "battery_hal.h"
+extern uint8_t battery_get_voltage(float *voltage);
 
 REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_MAPPER,
                    OHOS::DialModelPowerMapper::GetInstance());
@@ -16,8 +16,7 @@ namespace OHOS {
 bool DialModelPowerMapper::GetDialFloatData(DialDataType &type, float &out) {
   (void)type;
   float voltage = 0.0F;
-  // powermapper_ = battery_get_voltage(&voltage);
-  powermapper_ = 0;
+  powermapper_ = battery_get_voltage(&voltage);
   //电量0~100
   //映射0~1
   powermapper_ = static_cast<float>(powermapper_) / 100.0f;
@@ -27,8 +26,7 @@ bool DialModelPowerMapper::GetDialFloatData(DialDataType &type, float &out) {
 
 void DialModelPowerMapper::UpdatePowerMapper() {
   float voltage = 0.0F;
-  // powermapper_ = battery_get_voltage(&voltage);
-  powermapper_ = 0;
+  powermapper_ = battery_get_voltage(&voltage);
   if (powermapper_ == 0) {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get battery voltage");
     return;
index a3a08ba..fa72d97 100644 (file)
@@ -7,8 +7,8 @@
 #include <string>
 
 
-// #include "battery_hal.h"
-// extern uint8_t battery_get_voltage(float *voltage);
+#include "battery_hal.h"
+extern uint8_t battery_get_voltage(float *voltage);
 
 REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_POWER_STANDBY,
                    OHOS::DialModelPowerStanby::GetInstance());
@@ -19,25 +19,24 @@ bool DialModelPowerStanby::GetDialFloatData(DialDataType &type, float &out) {
   (void)type;
 
   float voltage = 0.0F;
-  // PowerStanby_ = battery_get_voltage(&voltage);
-  PowerStanby_  = 0;
+  PowerStanby_ = battery_get_voltage(&voltage);
 
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Battery voltage obtained: %.2f",
                 voltage);
 
   // 计算映射值
-  //   float minPower = 0;
-  //   float maxPower = 100;
-
-  //   float mappedValue = 0.0F;
-  //   if (maxPower - minPower != 0) {
-  //     mappedValue = (PowerStanby_ - minPower) / (maxPower - minPower);
-  //   } else {
-  //     mappedValue = (PowerStanby_ == maxPower) ? 1.0f : 0.0f; // 边界处理
-  //   }
-  //   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-  //                 "Raw power value: %d, Mapped value: %.2f", PowerStanby_,
-  //                 mappedValue);
+  float minPower = 0;
+  float maxPower = 100;
+
+  float mappedValue = 0.0F;
+  if (maxPower - minPower != 0) {
+    mappedValue = (PowerStanby_ - minPower) / (maxPower - minPower);
+  } else {
+    mappedValue = (PowerStanby_ == maxPower) ? 1.0f : 0.0f; // 边界处理
+  }
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+                "Raw power value: %d, Mapped value: %.2f", PowerStanby_,
+                mappedValue);
   // 如果需要在 0 到 1 范围映射
 
   // 需要前4个为类型
@@ -54,8 +53,7 @@ bool DialModelPowerStanby::GetDialFloatData(DialDataType &type, float &out) {
 
 void DialModelPowerStanby::UpdatePowerStanby() {
   float voltage = 0.0F;
-  // PowerStanby_ = battery_get_voltage(&voltage);
-  PowerStanby_ = 0;
+  PowerStanby_ = battery_get_voltage(&voltage);
 
   if (PowerStanby_ == 0) {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Failed to get battery voltage");
index 402ea86..82f44ba 100644 (file)
@@ -1,8 +1,8 @@
 #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);
+#include "battery_hal.h"
+extern uint8_t battery_get_voltage(float *voltage);
 
 namespace OHOS
 {
@@ -12,8 +12,7 @@ namespace OHOS
     {
         (void)type;
         float voltage = 0.0F;
-        // uint8_t power_ = battery_get_voltage(&voltage);
-        uint8_t power_ =  0;
+        uint8_t power_ = battery_get_voltage(&voltage);
         dialPowerStr_ = std::to_string(power_) + "%";
         out = &dialPowerStr_;
         strNum = 1;