From: Caisking <3449750381@qq.com> Date: Fri, 2 Aug 2024 06:54:47 +0000 (+0800) Subject: 更新表盘数据model 距离 卡路里 更新 X-Git-Tag: release_V1.2.70_20241020_135402~690^2~28 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=8686922668e350799493dd641e15f77ed3cd9667;p=mirrors%2FFD230.git 更新表盘数据model 距离 卡路里 更新 --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 246a61211..b738edcf9 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -160,6 +160,8 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelPowerStandby.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelCharge.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelSPO2.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelDistance.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialModelCalorie.cpp #exception handling ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heart_blood/CheckAbnormalView.cpp 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 d8e476996..914dc8089 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 @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 17:52:21 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDataBase.h + */ /*** * @Date: 2024-04-15 10:55:58 * @LastEditors: Caisking 3449750381@qq.com @@ -18,9 +24,9 @@ enum class DialDataType { DATA_TYPE_FLOAT_BASE = 0, - DATA_TYPE_STEPS, // 步数 + DATA_TYPE_STEPS, // 运动步数 DATA_TYPE_HEART_RATE, // 心率 - DATA_TYPE_CALORIE, // 卡路里 + DATA_TYPE_CALORIE, // 运动卡路里 DATA_TYPE_TEMPERATURE, // 温度 DATA_TYPE_PM25, // PM2.5 DATA_TYPE_PRESSURE, // 压力 @@ -41,7 +47,7 @@ enum class DialDataType DATA_TYPE_CHARGE, // 充电状态 DATA_TYPE_DIALPATH, // 表盘路径 DATA_TYPE_SPO2, // 血氧 - DATA_TYPE_DISTANCE, // 距离 + DATA_TYPE_DISTANCE, // 运动距离 DATA_TYPE_WEATHER, // 天气 DATA_TYPE_POWER_STANDBY, // 备用电量数据类型 diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelCalorie.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelCalorie.h new file mode 100644 index 000000000..076ef595e --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelCalorie.h @@ -0,0 +1,39 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 18:20:02 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelCalorie.h + */ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelCalorie + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Calorie_H +#define DIAL_MODEL_Calorie_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelCalorie : public DialBaseModel + { + public: + DialModelCalorie() {} + virtual ~DialModelCalorie() {} + static DialModelCalorie *GetInstance() + { + static DialModelCalorie instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateCalorie(int16_t Calorie); + int GetCalorieData(void); + + private: + float calorie_ = 0; // 67.0: default Calorie value as reference + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h index a464b1b82..4a7500a52 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 18:20:02 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h + */ /* * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. * Description: DialModelDistance 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 new file mode 100644 index 000000000..3df18dc87 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp @@ -0,0 +1,38 @@ +/*** + * @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 + */ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelCalorie + * Author: + * Create: 2023-12 + */ + +#include "RegisterDialModel.h" +#include "DialModelCalorie.h" +#include "wearable_log.h" +REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_CALORIE, OHOS::DialModelCalorie::GetInstance()); + +namespace OHOS +{ + bool DialModelCalorie::GetDialFloatData(DialDataType &type, float &out) + { + (void)type; + 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_); + } + } +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp index 0b69c57c4..66eb1041e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 20:19:35 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp + */ /* * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. * Description: DialModelDistance @@ -16,15 +22,18 @@ namespace OHOS { (void)type; out = distance_; - //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelDistance %d", distance_); + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelDistance %d", distance_); return true; } void DialModelDistance::UpdateDistance(int16_t distance) { - distance_ = static_cast(distance); + // 将距离从米(m)转换为公里(km)并保留一位小数 + distance_ = static_cast(distance) / 1000.0f; // 假设 distance ç±³ + if (onChangeListener_ != nullptr) { + // 通知改变监听器更新距离数据 onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_DISTANCE, distance_); } } diff --git a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp index c15164e44..f68356635 100644 --- a/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp @@ -47,6 +47,8 @@ #include "DialModelCharge.h" #include "DialModelHeartRate.h" #include "DialModelSPO2.h" +#include "DialModelDistance.h" +#include "DialModelCalorie.h" #include "BloodOxygenModel.h" #include "HeartModel.h" #include "SaveEleModel.h" @@ -59,6 +61,8 @@ #include "goalother.h" #include "heart_blood/health_service/health_service.h" + +#define DIALDATASET 1 //#include "Systemupgrade.h" namespace OHOS { @@ -348,7 +352,9 @@ void MsgCenterNotifyChargePlugProc(const Topic topic, Request* req) { display_api->turn_on_screen(); } +#if DIALDATASET DialModelCharge::GetInstance()->UpdateChargeStuaut(1); +#endif SaveEleModel::GetInstance()->SetChargeStuaut(1); @@ -372,7 +378,9 @@ void MsgCenterNotifyChargeUnPlugProc(const Topic topic, Request* req) unused(req); unused(topic); WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyProc:: CHarger UnPlug !"); +#if DIALDATASET DialModelCharge::GetInstance()->UpdateChargeStuaut(0); +#endif SaveEleModel::GetInstance()->SetChargeStuaut(0); @@ -479,12 +487,11 @@ void MsgCenterNotifyNextDayProc(const Topic topic, Request* req) //未设置睡眠监控 nextday进行清除睡眠数据。 SleepModel::GetInstance().DeleteSleepData(); } - //清空当日的健康数据 - if(!HealthService::GetInstance()->CleanHealthData()) - { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CleanHealthData fail!"); - } + // if(!HealthService::GetInstance()->CleanHealthData()) + // { + // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CleanHealthData fail!"); + // } #endif } @@ -641,7 +648,9 @@ void MsgCenterNotifySPO2hProc(const Topic topic, Request* req) { uint8_t spo2 = *((uint8_t*)(req->data)); // 进行类型转换 #ifdef FD230 +#if DIALDATASET DialModelSPO2::GetInstance()->UpdateSPO2(spo2); +#endif BloodOxygenModel::GetInstance()->UpSPO2data(spo2); #endif } @@ -656,7 +665,9 @@ void MsgCenterNotifyHeartRateProc(const Topic topic, Request* req) u_int8_t heart = *((u_int8_t*)(req->data)); // 进行类型转换 //通知对应信息进行更新 #ifdef FD230 +#if DIALDATASET DialModelHeartRate::GetInstance()->UpdateHeartRate(heart); +#endif HeartModel::GetInstance()->UpHeartdata(heart); #endif } @@ -988,7 +999,7 @@ void MsgCenterNotifyDrinkReminderProc(const Topic topic, Request *req) DrinkReminderViewEventListener::GetInstance().set_screen_on_and_vibration(); NotificationManager::GetInstance()->ShowNotify(showDrinkReminderNotify, (uint16_t)topic, true); } -//每日训练 +//每日训练数据刷新 void MsgCenterNotifyActivityProc(const Topic topic, Request* req) { unused(topic); @@ -1007,15 +1018,31 @@ void MsgCenterNotifyActivityProc(const Topic topic, Request* req) WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "memcpy_s c_activity_result_t failed, ret = %d", rets); return; } + + /*更新卡路里数据*/ if(c_activity_result_t->calories!=0) - set_calories_data(c_activity_result_t->calories); + { + set_calories_data(c_activity_result_t->calories); +#if DIALDATASET + DialModelCalorie::GetInstance()->UpdateCalorie(c_activity_result_t->calories); +#endif + } + /*更新距离数据*/ if(c_activity_result_t->distance!=0) - set_distance_data(c_activity_result_t->distance); + { + set_distance_data(c_activity_result_t->distance); +#if DIALDATASET + DialModelDistance::GetInstance()->UpdateDistance(c_activity_result_t->distance); +#endif + } + /*更新卡路里数据*/ if(c_activity_result_t->MHR_zone>=2) - set_fat_time_data(); + { + set_fat_time_data(); + } free(c_activity_result_t); c_activity_result_t = NULL;