更新运动表盘重启数据恢复
authorCaisking <3449750381@qq.com>
Fri, 2 Aug 2024 11:38:42 +0000 (19:38 +0800)
committerCaisking <3449750381@qq.com>
Fri, 2 Aug 2024 11:38:42 +0000 (19:38 +0800)
code/sdk/application/wearable/fd230app/nativeui/activity/src/ActivityModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelCalorie.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialModelDistance.cpp
code/sdk/application/wearable/service/msg_center/src/msg_center_customer.cpp

index cbd4cc5..64371d4 100644 (file)
@@ -21,6 +21,8 @@
 #include "ActivityWeekView.h"
 #include "graphic_service.h"
 #include "DialModelSteps.h"
+#include "DialModelCalorie.h"
+#include "DialModelDistance.h"
 #include "cywee_service.h"
 using namespace std;
 
@@ -127,7 +129,11 @@ static void Notify(void *args, const Topic topic, Request* request)
         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);
index 3df18dc..e3df568 100644 (file)
@@ -1,4 +1,10 @@
-/*** 
+/***
+ * @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)
         {
index 66eb104..38f2466 100644 (file)
@@ -1,35 +1,26 @@
-/***
- * @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)
         {
index f683566..1f8eca0 100644 (file)
@@ -1024,7 +1024,7 @@ void MsgCenterNotifyActivityProc(const Topic topic, Request* req)
     {
         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
     }
 
@@ -1034,7 +1034,7 @@ void MsgCenterNotifyActivityProc(const Topic topic, Request* req)
     {
         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 
     }