修复电量显示异常 547/target/3 551/3 551/head 552/target/1 553/target/1
authorCaisking <3449750381@qq.com>
Fri, 19 Jul 2024 03:52:15 +0000 (11:52 +0800)
committerCaisking <3449750381@qq.com>
Fri, 19 Jul 2024 03:52:15 +0000 (11:52 +0800)
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPower.h
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPower.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp

index 67ad319..247f6f4 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-05-30 15:59:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-19 11:44:23
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPower.h
+ */
 /***
  * @Date: 2024-04-15 10:55:58
  * @LastEditors: Caisking 3449750381@qq.com
@@ -33,7 +39,7 @@ namespace OHOS
         void NotifyPowerUpdate();
 
     private:
-        uint8_t power_ = 0;
+        int16_t power_ = 0;
         bool powerUpdated_{false};
     };
 }
index dc126c8..a6ef377 100644 (file)
@@ -65,7 +65,7 @@ namespace OHOS
         if (onChangeListener_ != nullptr)
         {
             onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_POWER, power_);
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"[UpdatePower!]\r\n");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[UpdatePower!]\r\n");
         }
     }
 }
index a696773..a06e203 100644 (file)
@@ -1,3 +1,9 @@
+/*** 
+ * @Date: 2024-07-06 16:27:31
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-19 11:47:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelPowerStandby.cpp
+ */
 /***
  * @Date: 2024-04-27 11:56:33
  * @LastEditors: Caisking 3449750381@qq.com
@@ -29,12 +35,27 @@ namespace OHOS
         if (!PowerStanbyUpdated_)
         {
             UpdatePowerStanby();
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdatePowerStanby %d", PowerStanby_);
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdatePower %d", PowerStanby_);
             return false;
         }
+
         float voltage = 0.0F;
         PowerStanby_ = battery_get_voltage(&voltage);
-        out = static_cast<float>(PowerStanby_);
+
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Battery voltage obtained: %.2f", voltage);
+
+        // 计算映射值
+        float minPower = 0;                                                                // 最小电量映射值
+        float maxPower = 100;                                                              // 最大电量映射值
+        float mappedValue = static_cast<float>(PowerStanby_ - minPower) / (maxPower - minPower); // 进行映射计算
+
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raw power value: %d, Mapped value: %.2f", PowerStanby_, mappedValue);
+
+        // 如果需要在 0 到 1 范围映射
+        out = mappedValue;
+
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Mapped value sent to caller: %.2f", out);
+
         return true;
     }