取消训练状态下的心率存储
authorCaisking <3449750381@qq.com>
Fri, 26 Jul 2024 09:32:29 +0000 (17:32 +0800)
committerCaisking <3449750381@qq.com>
Fri, 26 Jul 2024 09:32:29 +0000 (17:32 +0800)
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp

index d3228c1..f78e5ce 100644 (file)
@@ -13,6 +13,9 @@
 #include "health_service.h"\r
 #include "custom_utils.h"\r
 #include "ppg_service.h"\r
+#include "custom_runtime.h"\r
+#include <iostream>\r
+#include <memory>\r
 \r
 #ifdef __cplusplus\r
 extern "C"\r
@@ -82,6 +85,11 @@ extern "C"
     {\r
         UNUSED(args);\r
         UNUSED(topic);\r
+\r
+        /*训练过程中 不需要判断数据准确性 不需要存储心率数据*/\r
+        if (uapi_dev_runtime_get_train_status() == 1)\r
+            return;\r
+\r
         if (request == nullptr)\r
         {\r
             return;\r
@@ -98,7 +106,7 @@ extern "C"
                 return;\r
             }\r
 #endif\r
-            uint16_t preheart = *(uint16_t *)request->data;\r
+            uint16_t preheart = *reinterpret_cast<uint16_t *>(request->data);\r
             // 筛选出正常数据\r
             if (preheart > HEART_RATE_LIMIT_LOWER && preheart <= HEART_RATE_LIMIT_UPPER)\r
             {\r
@@ -107,6 +115,7 @@ extern "C"
                 if (heartInfo == nullptr)\r
                 {\r
                     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[Notify] malloc fail");\r
+                    return;\r
                 }\r
                 heartInfo->index = index_;\r
                 heartInfo->maxX = index_;\r
@@ -623,6 +632,10 @@ namespace OHOS
 \r
     void HeartModel::UpHeartdata(uint16_t heart)\r
     {\r
+        /*训练过程中 不需要判断数据准确性 不需要存储心率数据*/\r
+        if (uapi_dev_runtime_get_train_status() == 1)\r
+            return;\r
+\r
         Show_Heart_ = heart;\r
         if (Show_Heart_ != 0)\r
         {\r
@@ -656,7 +669,7 @@ namespace OHOS
             data->timestamp = HeartPresenter::GetInstance()->GetCurrentTime();\r
             WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " Save %d %d", data->Heart, data->timestamp);\r
             SetCheckTime(data->timestamp);\r
-            HealthService::GetInstance()->UpdateHealthData(*data);\r
+            HealthService::GetInstance()->UpdateHealthData(*data); // 心率数据存储\r
             // 关闭自动检测心率 如果有其他高级心率检测在进行,则不会进行关闭[低优先级]\r
             HeartModel::GetInstance()->Heart_Control(HeartState::End, HeartCheck::PASSIVITY);\r
         }\r