From 7b61b0a60d2acc0c64b0a00aae8a7d84e1afcc7e Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Tue, 24 Dec 2024 21:17:45 +0800 Subject: [PATCH] =?utf8?q?=E8=A1=A8=E7=9B=98=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?utf8?q?=E6=AD=A5=E6=95=B0=E7=9B=AE=E6=A0=87=EF=BC=8C=E5=8D=A1=E8=B7=AF?= =?utf8?q?=E9=87=8C=E7=9B=AE=E6=A0=87=E5=AF=B9=E5=BA=94model?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../wearable/fd230app/CMakeLists.txt | 6 ++ .../nativeui/goal/include/goalmodel.h | 1 + .../fd230app/nativeui/goal/src/goalmodel.cpp | 5 ++ .../main/include/dial/DialBoxProgressView.h | 2 + .../nativeui/main/include/dial/DialDataBase.h | 1 + .../main/include/dial/DialModelKcalgoal.h | 29 ++++++++++ .../main/include/dial/DialModelKcalgoalStr.h | 24 ++++---- .../include/dial/DialModelKcalgoalValue.h | 29 ++++++++++ .../main/include/dial/DialModelStepgoalStr.h | 31 +++++++++++ .../include/dial/DialModelStepgoalValue.h | 29 ++++++++++ .../main/src/dial/DialArcProgressView.cpp | 4 +- .../main/src/dial/DialModelCalorie.cpp | 52 +++++++++--------- .../main/src/dial/DialModelKcalgoal.cpp | 55 +++++++++++++++++++ .../main/src/dial/DialModelKcalgoalStr.cpp | 55 +++++++++++++++++++ .../main/src/dial/DialModelKcalgoalValue.cpp | 53 ++++++++++++++++++ .../main/src/dial/DialModelStepgoal.cpp | 12 ++++ .../main/src/dial/DialModelStepgoalStr.cpp | 53 ++++++++++++++++++ .../main/src/dial/DialModelStepgoalValue.cpp | 54 ++++++++++++++++++ .../nativeui/main/src/dial/DialModelSteps.cpp | 19 ++++--- .../main/src/dial/parser/DialBinParser.cpp | 8 ++- 20 files changed, 473 insertions(+), 49 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoal.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalValue.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalValue.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoal.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalValue.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalValue.cpp diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 1df338aed..94660bd92 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -189,6 +189,12 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelWeekNum.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelDateWeekStr.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelStepgoal.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelStepgoalStr.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelStepgoalValue.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelKcalgoal.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelKcalgoalStr.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelKcalgoalValue.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 diff --git a/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h b/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h index cfcbea17d..bbe14dfa7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/goal/include/goalmodel.h @@ -47,6 +47,7 @@ namespace OHOS void updata(); void GoalModelInitdata(); uint32_t getstepgoaldata(); + uint32_t getKcalgoaldata(); uint8_t get_step_goal_show() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp b/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp index 3f4f0d213..1a62b58f0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/goal/src/goalmodel.cpp @@ -75,6 +75,11 @@ namespace OHOS { return step_goal; } + + uint32_t GoalModel::getKcalgoaldata() + { + return calories_goal; + } std::string GoalModel::getstepGoal() { diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h index b1d2c22c9..25bfeebe0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h @@ -10,6 +10,8 @@ enum DialBoxDataType { BATTERY_LEVEL = 1, // 步数目标 STEP_TARGET = 2, + // 卡路里 + CALORIE_TARGET = 3, }; namespace OHOS { class DialBoxProgressView : public UIBoxProgress, public DialView { diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h index 0e1e5cbd4..077473636 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h @@ -38,6 +38,7 @@ enum class DialDataType { DATA_TYPE_STEPS_GOAL, // 运动步数目标 DATA_TYPE_SECOND_MAPPER, // 秒映射 DATA_TYPE_POWER_MAPPER, // 电量映射 + DATA_TYPE_CALORIE_GOAL, // 运动卡路里目标 DATA_TYPE_STEPS_GOAL_INT, // 运动步数百分比 DATA_TYPE_CALORIE_GOAL_INT, // 运动卡路里目标百分比 diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoal.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoal.h new file mode 100644 index 000000000..c901d9427 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoal.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcalgoal + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Kcalgoal_H +#define DIAL_MODEL_Kcalgoal_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelKcalgoal : public DialBaseModel { +public: + DialModelKcalgoal() {} + ~DialModelKcalgoal() override {} + static DialModelKcalgoal *GetInstance() { + static DialModelKcalgoal instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateKcalgoal(uint32_t Kcalgoal); + +private: + float Kcalgoal_ = 0; // 11520.0: default Kcal value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalStr.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalStr.h index ec3a41434..4b3594f07 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalStr.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalStr.h @@ -1,29 +1,31 @@ /* * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. - * Description: DialModelCaloriegoal + * Description: DialModelKcalgoalStr * Author: * Create: 2023-12 */ -#ifndef DIAL_MODEL_Caloriegoal_H -#define DIAL_MODEL_Caloriegoal_H +#ifndef DIAL_MODEL_KcalgoalStr_H +#define DIAL_MODEL_KcalgoalStr_H #include "DialBaseModel.h" namespace OHOS { -class DialModelCaloriegoal : public DialBaseModel { +class DialModelKcalgoalStr : public DialBaseModel { public: - DialModelCaloriegoal() {} - ~DialModelCaloriegoal() override {} - static DialModelCaloriegoal *GetInstance() { - static DialModelCaloriegoal instance; + DialModelKcalgoalStr() {} + ~DialModelKcalgoalStr() override {} + static DialModelKcalgoalStr *GetInstance() { + static DialModelKcalgoalStr instance; return &instance; } - bool GetDialFloatData(DialDataType &type, float &out) override; - void UpdateCaloriegoal(uint32_t Caloriegoal); + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + + void UpdateKcalgoalStr(uint32_t KcalgoalStr); private: - float Caloriegoal_ = 0; // 11520.0: default Calorie value as reference + std::string KcalgoalStr_ = "0%"; }; } // namespace OHOS #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalValue.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalValue.h new file mode 100644 index 000000000..cbef774b7 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelKcalgoalValue.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcalgoalValue + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_KcalgoalValue_H +#define DIAL_MODEL_KcalgoalValue_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelKcalgoalValue : public DialBaseModel { +public: + DialModelKcalgoalValue() {} + ~DialModelKcalgoalValue() override {} + static DialModelKcalgoalValue *GetInstance() { + static DialModelKcalgoalValue instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateKcalgoalValue(uint32_t KcalgoalValue); + +private: + float KcalgoalValue_ = 0; // 11520.0: default Kcal value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalStr.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalStr.h index e69de29bb..29b7d7467 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalStr.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalStr.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoalStr + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_StepgoalStr_H +#define DIAL_MODEL_StepgoalStr_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoalStr : public DialBaseModel { +public: + DialModelStepgoalStr() {} + ~DialModelStepgoalStr() override {} + static DialModelStepgoalStr *GetInstance() { + static DialModelStepgoalStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + + void UpdateStepgoalStr(uint32_t StepgoalStr); + +private: + std::string StepgoalStr_ = "0%"; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalValue.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalValue.h new file mode 100644 index 000000000..2ec1b3cd4 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelStepgoalValue.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoalValue + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_StepgoalValue_H +#define DIAL_MODEL_StepgoalValue_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoalValue : public DialBaseModel { +public: + DialModelStepgoalValue() {} + ~DialModelStepgoalValue() override {} + static DialModelStepgoalValue *GetInstance() { + static DialModelStepgoalValue instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateStepgoalValue(uint32_t StepgoalValue); + +private: + float stepgoalValue_ = 0; // 11520.0: default Step value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialArcProgressView.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialArcProgressView.cpp index 67dadd4c7..e6b4418a8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialArcProgressView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialArcProgressView.cpp @@ -13,8 +13,8 @@ DialArcProgressView::~DialArcProgressView(void) { } -void DialArcProgressView::HandleFloatData(float data) -{ +void DialArcProgressView::HandleFloatData(float data) { + printf("HandleFloatData: %f\n", data); float ratio = data; if (ratio > 1.0f) { ratio = 1.0f; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp index e3df568d4..3cf5541ad 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp @@ -2,13 +2,15 @@ * @Date: 2024-07-31 18:33:13 * @LastEditors: Caisking 3449750381@qq.com * @LastEditTime: 2024-08-02 18:54:18 - * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp + * @FilePath: + * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp */ /*** * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com * @LastEditTime: 2024-07-31 18:36:06 - * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp + * @FilePath: + * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp */ /* * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. @@ -17,35 +19,33 @@ * Create: 2023-12 */ -#include "RegisterDialModel.h" #include "DialModelCalorie.h" +#include "RegisterDialModel.h" #include "wearable_log.h" -REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE, OHOS::DialModelCalorie::GetInstance()); +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE, + OHOS::DialModelCalorie::GetInstance()); #include "cywee_hal.h" extern "C" int get_calories_data(); -namespace OHOS -{ - bool DialModelCalorie::GetDialFloatData(DialDataType &type, float &out) - { - (void)type; - if (calorie_ == 0) - { - calorie_ = get_calories_data(); - } - out = calorie_; - // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelCalorie %d", calorie_); - return true; - } +namespace OHOS { +bool DialModelCalorie::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + + calorie_ = static_cast(GoalModel::GetInstance().show_data_calories_refresh()); + out = calorie_; + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelCalorie %d", calorie_); + return true; +} - void DialModelCalorie::UpdateCalorie(int16_t calorie) - { - // 更新表盘卡路里数据 - calorie_ = static_cast(calorie); - if (onChangeListener_ != nullptr) - { - onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CALORIE, calorie_); - } - } +void DialModelCalorie::UpdateCalorie(int16_t calorie) { + // 更新表盘卡路里数据 + calorie_ = static_cast(calorie); + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CALORIE, + calorie_); + } } +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoal.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoal.cpp new file mode 100644 index 000000000..c7f66d0f5 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoal.cpp @@ -0,0 +1,55 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcals + * Author: + * Create: 2023-12 + */ + +#include "DialModelKcalgoal.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL, + OHOS::DialModelKcalgoal::GetInstance()); + +namespace OHOS { +bool DialModelKcalgoal::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + uint32_t goal = GoalModel::GetInstance().getKcalgoaldata(); + uint32_t Kcal_ = GoalModel::GetInstance().show_data_calories_refresh(); + + if (goal > 0) { + Kcalgoal_ = (static_cast(Kcal_) / goal) * 100; + if (Kcalgoal_ > 100) + Kcalgoal_ = 100; + Kcalgoal_ = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::CALORIE_TARGET, Kcalgoal_); + } else { + Kcalgoal_ = 0; + } + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialFloatDataUpdate( + DialDataType::DATA_TYPE_CALORIE_GOAL, Kcalgoal_); + } + out = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::CALORIE_TARGET, Kcalgoal_); + return true; +} + +void DialModelKcalgoal::UpdateKcalgoal(uint32_t Kcals) { + uint32_t Kcal_ = static_cast(Kcals); + uint32_t goal = GoalModel::GetInstance().getKcalgoaldata(); + if (goal > 0) { + Kcalgoal_ = (static_cast(Kcal_) / goal) * 100; + if (Kcalgoal_ > 100) + Kcalgoal_ = 100; + Kcalgoal_ = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::CALORIE_TARGET, Kcalgoal_); + } + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialFloatDataUpdate( + DialDataType::DATA_TYPE_CALORIE_GOAL, Kcalgoal_); + } +} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalStr.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalStr.cpp index e69de29bb..a5889b37e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalStr.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalStr.cpp @@ -0,0 +1,55 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcals + * Author: + * Create: 2023-12 + */ + +#include "DialModelKcalgoalStr.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL_STR, + OHOS::DialModelKcalgoalStr::GetInstance()); + +namespace OHOS { +bool DialModelKcalgoalStr::GetDialTextData(DialDataType &type, + std::string *&out, int16_t &strNum) { + (void)type; + uint32_t goal = GoalModel::GetInstance().getKcalgoaldata(); + uint32_t Kcal_ = GoalModel::GetInstance().show_data_calories_refresh(); + + uint32_t Kcalgoal = 0; //百分比 + if (goal > 0) { + Kcalgoal = (static_cast(Kcal_) / goal) * 100; + if (Kcalgoal > 100) + Kcalgoal = 100; + } + KcalgoalStr_.clear(); + KcalgoalStr_ = std::to_string(Kcalgoal) + "%"; //百分比字符串 + + out = &KcalgoalStr_; + strNum = 1; + return true; +} + +void DialModelKcalgoalStr::UpdateKcalgoalStr(uint32_t Kcals) { + uint32_t Kcal_ = static_cast(Kcals); + uint32_t goal = GoalModel::GetInstance().getKcalgoaldata(); + uint32_t Kcalgoal = 0; //百分比 + if (goal > 0) { + Kcalgoal = (static_cast(Kcal_) / goal) * 100; + if (Kcalgoal > 100) + Kcalgoal = 100; + } + KcalgoalStr_.clear(); + KcalgoalStr_ = std::to_string(Kcalgoal) + "%"; //百分比字符串 + + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialTextDataUpdate( + DialDataType::DATA_TYPE_CALORIE_GOAL_STR, &KcalgoalStr_, + KcalgoalStr_.size()); + } +} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalValue.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalValue.cpp new file mode 100644 index 000000000..d2f02eced --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelKcalgoalValue.cpp @@ -0,0 +1,53 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcals + * Author: + * Create: 2023-12 + */ + +#include "DialModelKcalgoalValue.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE_GOAL_INT, + OHOS::DialModelKcalgoalValue::GetInstance()); + +namespace OHOS { +bool DialModelKcalgoalValue::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + uint32_t goal = GoalModel::GetInstance().getKcalgoaldata(); + uint32_t Kcal_ = GoalModel::GetInstance().show_data_calories_refresh(); + if (goal > 0) { + KcalgoalValue_ = (static_cast(Kcal_) / static_cast(goal)); + if (KcalgoalValue_ > 1.0f) { + KcalgoalValue_ = 1.0f; + } + } else { + KcalgoalValue_ = 0; + } + printf(" KcalgoalValue_:%f\n", KcalgoalValue_); + out = static_cast(KcalgoalValue_); + return true; +} + +void DialModelKcalgoalValue::UpdateKcalgoalValue(uint32_t caloriesInput) { + uint32_t goalValue = GoalModel::GetInstance().getKcalgoaldata(); + if (goalValue > 0) { + KcalgoalValue_ = + (static_cast(caloriesInput) / static_cast(goalValue)); + if (KcalgoalValue_ > 1.0f) { + KcalgoalValue_ = 1.0f; + } + } else { + KcalgoalValue_ = 0; + } + + printf(" KcalgoalValue_:%f\n", KcalgoalValue_); + + if (onChangeListener_) { + onChangeListener_->OnDialFloatDataUpdate( + DialDataType::DATA_TYPE_CALORIE_GOAL_INT, KcalgoalValue_); + } +} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp index a07e2a643..12e0ed912 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoal.cpp @@ -16,6 +16,18 @@ REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL, namespace OHOS { bool DialModelStepgoal::GetDialFloatData(DialDataType &type, float &out) { (void)type; + + uint32_t step_ = GoalModel::GetInstance().show_data_step_refresh(); + uint32_t goal = GoalModel::GetInstance().getstepgoaldata(); + if (goal > 0) { + stepgoal_ = (static_cast(step_) / goal) * 100; + if (stepgoal_ > 100) + stepgoal_ = 100; + stepgoal_ = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( + DialBoxDataType::STEP_TARGET, stepgoal_); + } else { + stepgoal_ = 0; + } out = DialBoxProgressView::GetInstance()->ConvertToRequiredFormat( DialBoxDataType::STEP_TARGET, stepgoal_); return true; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalStr.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalStr.cpp index e69de29bb..8425232d9 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalStr.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalStr.cpp @@ -0,0 +1,53 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelSteps + * Author: + * Create: 2023-12 + */ + +#include "DialModelStepgoalStr.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL_STR, + OHOS::DialModelStepgoalStr::GetInstance()); + +namespace OHOS { +bool DialModelStepgoalStr::GetDialTextData(DialDataType &type, + std::string *&out, int16_t &strNum) { + (void)type; + uint32_t step_ = GoalModel::GetInstance().show_data_step_refresh(); + uint32_t goal = GoalModel::GetInstance().getstepgoaldata(); + uint32_t stepgoal = 0; //百分比 + if (goal > 0) { + stepgoal = (static_cast(step_) / goal) * 100; + if (stepgoal > 100) + stepgoal = 100; + } + StepgoalStr_.clear(); + StepgoalStr_ = std::to_string(stepgoal) + "%"; //百分比字符串 + out = &StepgoalStr_; + strNum = 1; + return true; +} + +void DialModelStepgoalStr::UpdateStepgoalStr(uint32_t steps) { + uint32_t step_ = static_cast(steps); + uint32_t goal = GoalModel::GetInstance().getstepgoaldata(); + uint32_t stepgoal = 0; //百分比 + if (goal > 0) { + stepgoal = (static_cast(step_) / goal) * 100; + if (stepgoal > 100) + stepgoal = 100; + } + StepgoalStr_.clear(); + StepgoalStr_ = std::to_string(stepgoal) + "%"; //百分比字符串 + + if (onChangeListener_ != nullptr) { + onChangeListener_->OnDialTextDataUpdate( + DialDataType::DATA_TYPE_STEPS_GOAL_STR, &StepgoalStr_, + StepgoalStr_.size()); + } +} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalValue.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalValue.cpp new file mode 100644 index 000000000..0a0ca52d4 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelStepgoalValue.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelSteps + * Author: + * Create: 2023-12 + */ + +#include "DialModelStepgoalValue.h" +#include "DialBoxProgressView.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" + +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS_GOAL_INT, + OHOS::DialModelStepgoalValue::GetInstance()); + +namespace OHOS { +bool DialModelStepgoalValue::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + //更新步数 + uint32_t goalValue = GoalModel::GetInstance().getstepgoaldata(); + uint32_t steps = GoalModel::GetInstance().show_data_step_refresh(); + if (goalValue > 0) { + stepgoalValue_ = + (static_cast(steps) / static_cast(goalValue)); + if (stepgoalValue_ > 1.0f) + stepgoalValue_ = 1.0; + } else { + stepgoalValue_ = 0; + } + + printf("stepgoalValue_ %f\n", stepgoalValue_); + out = static_cast(stepgoalValue_); + return true; +} + +void DialModelStepgoalValue::UpdateStepgoalValue(uint32_t steps) { + uint32_t goalValue = GoalModel::GetInstance().getstepgoaldata(); + if (goalValue > 0) { + stepgoalValue_ = + (static_cast(steps) / static_cast(goalValue)); + if (stepgoalValue_ > 1.0f) + stepgoalValue_ = 1.0; + } else { + stepgoalValue_ = 0; + } + printf("steps %d goalValue %d stepgoalValue_ %f\n", steps, goalValue, + stepgoalValue_); + if (onChangeListener_ != nullptr) { + //更新百分比 实际值 + onChangeListener_->OnDialFloatDataUpdate( + DialDataType::DATA_TYPE_STEPS_GOAL_INT, stepgoalValue_); + } +} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelSteps.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelSteps.cpp index 4fd12b98a..c54ebec59 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelSteps.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelSteps.cpp @@ -5,17 +5,20 @@ * Create: 2023-12 */ -#include "RegisterDialModel.h" #include "DialModelSteps.h" +#include "RegisterDialModel.h" +#include "goal/include/goalmodel.h" -REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS, OHOS::DialModelSteps::GetInstance()); +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_STEPS, + OHOS::DialModelSteps::GetInstance()); namespace OHOS { -bool DialModelSteps::GetDialFloatData(DialDataType& type, float& out) -{ - (void)type; - out = steps_; - return true; +bool DialModelSteps::GetDialFloatData(DialDataType &type, float &out) { + (void)type; + //更新步数 + steps_ = GoalModel::GetInstance().show_data_step_refresh(); + out = steps_; + return true; } void DialModelSteps::UpdateSteps(uint32_t steps) { @@ -25,4 +28,4 @@ void DialModelSteps::UpdateSteps(uint32_t steps) { steps_); } } -} +} // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp index 63d6fbfa1..c78db89bb 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp @@ -542,9 +542,13 @@ int32_t DialBinParser::ParserDialArcProgress(FILE* fp) } DialArcProgressView* view = new DialArcProgressView(); - view->SetPosition(data->typeData.rect.x, data->typeData.rect.y, data->typeData.rect.w, data->typeData.rect.h); - view->SetCenterPosition(data->typeData.rect.x + data->typeData.rect.w / 2, // 2: half + view->SetPosition(data->typeData.rect.x, data->typeData.rect.y, + data->typeData.rect.w, data->typeData.rect.h); + GRAPHIC_LOGE("SetPosition: %d, %d, %d ,%d \n", data->typeData.rect.x , data->typeData.rect.w ,data->typeData.rect.y ,data->typeData.rect.h); + view->SetCenterPosition( + data->typeData.rect.x + data->typeData.rect.w / 2, // 2: half data->typeData.rect.y + data->typeData.rect.h / 2); // 2: half + GRAPHIC_LOGE("SetCenterPosition: %d, %d\n", data->typeData.rect.x + data->typeData.rect.w / 2,data->typeData.rect.y + data->typeData.rect.h / 2); view->SetRadius(data->radius); view->SetStartAngle(data->startAngle); view->SetEndAngle(data->endAngle); -- 2.17.1