#include "ActivityWeekView.h"
#include "graphic_service.h"
#include "DialModelSteps.h"
+#include "DialModelCalorie.h"
+#include "DialModelDistance.h"
#include "cywee_service.h"
using namespace std;
set_step_data(counter);
counter = get_step_data();//*(uint32_t *)request->data;
OHOS::ActivityModel::GetInstance()->ReviseStepCounter(counter);
+
OHOS::DialModelSteps::GetInstance() ->UpdateSteps(counter);//更新表盘步数
+ OHOS::DialModelDistance::GetInstance() ->UpdateDistance(get_distance_data());//更新表盘距离
+ OHOS::DialModelCalorie::GetInstance() ->UpdateCalorie(get_calories_data());//更新表盘卡路里
+
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&ActivityModel::SetStepData, ActivityModel::GetInstance(), counter));
RefreshStepControls(counter, TOPIC_EVENT_STEPDATA_UPDATE);
-/***
+/***
+ * @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
+ */
+/***
* @Date: 2024-04-15 10:55:58
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-07-31 18:36:06
#include "wearable_log.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_);
+ // 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)
{
-/***
- * @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
- * Author:
- * Create: 2023-12
- */
#include "RegisterDialModel.h"
#include "DialModelDistance.h"
#include "wearable_log.h"
REGIST_DIAL_MODULE(DialDataType::DATA_TYPE_DISTANCE, OHOS::DialModelDistance::GetInstance());
+#include "cywee_hal.h"
+extern "C" int get_distance_data();
+
namespace OHOS
{
bool DialModelDistance::GetDialFloatData(DialDataType &type, float &out)
{
(void)type;
+ distance_ = static_cast<float>(get_distance_data()) / 1000.0f;
out = distance_;
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DialModelDistance %d", distance_);
return true;
}
void DialModelDistance::UpdateDistance(int16_t distance)
{
// 将距离从米(m)转换为公里(km)并保留一位小数
- distance_ = static_cast<float>(distance) / 1000.0f; // 假设 distance 米
+ distance_ = static_cast<float>(distance) / 1000.0f; // distance 米
if (onChangeListener_ != nullptr)
{
{
set_calories_data(c_activity_result_t->calories);
#if DIALDATASET
- DialModelCalorie::GetInstance()->UpdateCalorie(c_activity_result_t->calories);
+ DialModelCalorie::GetInstance()->UpdateCalorie(get_calories_data());
#endif
}
{
set_distance_data(c_activity_result_t->distance);
#if DIALDATASET
- DialModelDistance::GetInstance()->UpdateDistance(c_activity_result_t->distance);
+ DialModelDistance::GetInstance()->UpdateDistance(get_distance_data());
#endif
}