解决#839手表未佩戴进行呼吸训练,完成界面会显示平均心率65bug
authorluozheng <1732036298@qq.com>
Sat, 28 Sep 2024 12:27:30 +0000 (20:27 +0800)
committerluozheng <1732036298@qq.com>
Sat, 28 Sep 2024 12:27:30 +0000 (20:27 +0800)
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/include/RespiratoryTrainingModel.h
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingCompletedView.cpp
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingView.cpp

index bb26359..fe7ac2f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-11 16:26:13
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-12 10:35:46
+ * @LastEditTime: 2024-09-28 20:13:17
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/include/RespiratoryTrainingModel.h
  */
 #ifndef RESPIRATORY_TRAINING_MODEL_H
@@ -19,7 +19,8 @@ namespace OHOS
         static RespiratoryTrainingModel &GetInstance(void);
         void AddRespiratoryTrainingTimes(void);
         std::string GetRespiratoryTrainingTotalTime(void) ;
-        std::string GetHeartRateValue(void) ;
+        int GetAverageHeartRate(void);
+        void calculateHeartrateTotal(void);
         void ResumeStatus();
         
         void RT_StartTimer(uint32_t interval);
@@ -34,6 +35,8 @@ namespace OHOS
         int RespiratoryTrainingTimes{0}; // 呼吸训练次数
         std::string RespiratoryTrainingTime{nullptr};
         std::string HeartRateValue{nullptr};
+        int count{0};
+        float heartTotal{0};
     };
 }
 
index c8c42f7..ef42461 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-05-07 11:25:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-12 10:25:32
+ * @LastEditTime: 2024-09-28 20:06:40
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/RespiratoryTrainingCompleted/src/RespiratoryTrainingCompletedView.cpp
  */
 
@@ -196,7 +196,8 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */
         int y1 = 248, y2 = 286;
         const int textId[MAX_NUM] = {STR_THIS_BREATH, STR_MEAN_HEART_RATE_MIN, STR_TODAYS_BREATHING_TRAINING};
-        std::string heartRateValue = RespiratoryTrainingModel::GetInstance().GetHeartRateValue();
+        int value = RespiratoryTrainingModel::GetInstance().GetAverageHeartRate();
+        std::string heartRateValue = std::to_string(value);
         std::string trainingTotalTime = RespiratoryTrainingModel::GetInstance().GetRespiratoryTrainingTotalTime();
         const char *text[MAX_NUM] = {"01:00", heartRateValue.c_str(), trainingTotalTime.c_str()};
         OHOS::ColorType RTCDynamicLabelTextColor[MAX_NUM] = {
index e47c749..3c15415 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-11 16:26:20
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-07 17:16:08
+ * @LastEditTime: 2024-09-28 20:12:26
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/respiratorytraining/src/RespiratoryTrainingModel.cpp
  */
 #include "respiratorytraining/include/RespiratoryTrainingModel.h"
@@ -47,12 +47,19 @@ namespace OHOS
         return RespiratoryTrainingTime;
     }
 
-    // 获取心率值
-    std::string RespiratoryTrainingModel::GetHeartRateValue(void)
+    //获取平均心率值
+    int RespiratoryTrainingModel::GetAverageHeartRate(void)
     {
-        uint16_t value = HeartModel::GetInstance()->GetHeartdata();
-        HeartRateValue = std::to_string(value);
-        return HeartRateValue;
+        if(count != 0) {
+            return heartTotal / count;
+        }
+        return 0;
+    }
+
+    void RespiratoryTrainingModel::calculateHeartrateTotal(void)
+    {
+        heartTotal += HeartModel::GetInstance()->GetShowHeartdata();
+        count++;
     }
 
     void RespiratoryTrainingModel::ResumeStatus()
index af98867..181d067 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-05-07 11:25:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-13 09:34:12
+ * @LastEditTime: 2024-09-28 20:13:37
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/RespiratoryTraining/src/RespiratoryTrainingView.cpp
  */
 
@@ -245,6 +245,7 @@ namespace OHOS
 
     void RespiratoryTrainingCallback::Callback(UIView *view)
     {
+       RespiratoryTrainingModel::GetInstance().calculateHeartrateTotal();
         // 1.计算当前时间与开始时间的差值,用于控制动画的时间。
         uint32_t currentTime = HALTick::GetInstance().GetTime();
         curTime = currentTime - startTimestamp;