${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
+/***
+ * @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
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, // 压力
DATA_TYPE_CHARGE, // 充电状态
DATA_TYPE_DIALPATH, // 表盘路径
DATA_TYPE_SPO2, // 血氧
- DATA_TYPE_DISTANCE, // 距离
+ DATA_TYPE_DISTANCE, // è¿\90å\8a¨è·\9d离
DATA_TYPE_WEATHER, // 天气
DATA_TYPE_POWER_STANDBY, // 备用电量数据类型
--- /dev/null
+/***
+ * @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
+/***
+ * @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
--- /dev/null
+/***
+ * @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<float>(calorie);
+ if (onChangeListener_ != nullptr)
+ {
+ onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_CALORIE, calorie_);
+ }
+ }
+}
+/***
+ * @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
{
(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<float>(distance);
+ // 将距离从米(m)转换为公里(km)并保留一位小数
+ distance_ = static_cast<float>(distance) / 1000.0f; // 假设 distance 米
+
if (onChangeListener_ != nullptr)
{
+ // 通知改变监听器更新距离数据
onChangeListener_->OnDialFloatDataUpdate(DialDataType::DATA_TYPE_DISTANCE, distance_);
}
}
#include "DialModelCharge.h"
#include "DialModelHeartRate.h"
#include "DialModelSPO2.h"
+#include "DialModelDistance.h"
+#include "DialModelCalorie.h"
#include "BloodOxygenModel.h"
#include "HeartModel.h"
#include "SaveEleModel.h"
#include "goalother.h"
#include "heart_blood/health_service/health_service.h"
+
+#define DIALDATASET 1
//#include "Systemupgrade.h"
namespace OHOS {
{
display_api->turn_on_screen();
}
+#if DIALDATASET
DialModelCharge::GetInstance()->UpdateChargeStuaut(1);
+#endif
SaveEleModel::GetInstance()->SetChargeStuaut(1);
unused(req);
unused(topic);
WEARABLE_LOGI(WEARABLE_LOG_MODULE_APP, "MsgCenterNotifyProc:: CHarger UnPlug !");
+#if DIALDATASET
DialModelCharge::GetInstance()->UpdateChargeStuaut(0);
+#endif
SaveEleModel::GetInstance()->SetChargeStuaut(0);
//未设置睡眠监控 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
}
{
uint8_t spo2 = *((uint8_t*)(req->data)); // 进行类型转换
#ifdef FD230
+#if DIALDATASET
DialModelSPO2::GetInstance()->UpdateSPO2(spo2);
+#endif
BloodOxygenModel::GetInstance()->UpSPO2data(spo2);
#endif
}
u_int8_t heart = *((u_int8_t*)(req->data)); // 进行类型转换
//通知对应信息进行更新
#ifdef FD230
+#if DIALDATASET
DialModelHeartRate::GetInstance()->UpdateHeartRate(heart);
+#endif
HeartModel::GetInstance()->UpHeartdata(heart);
#endif
}
DrinkReminderViewEventListener::GetInstance().set_screen_on_and_vibration();
NotificationManager::GetInstance()->ShowNotify(showDrinkReminderNotify, (uint16_t)topic, true);
}
-//每日训练
+//每日训练数据刷新
void MsgCenterNotifyActivityProc(const Topic topic, Request* req)
{
unused(topic);
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;