#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());
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;
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;
#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());
(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个为类型
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");
#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
{
{
(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;