优化心率持续测试无法正常更新的问题 3220/1 3220/head
authorCaisking <Casiking@zhihuishixun.com>
Wed, 25 Feb 2026 13:10:55 +0000 (21:10 +0800)
committerCaisking <Casiking@zhihuishixun.com>
Wed, 25 Feb 2026 13:10:55 +0000 (21:10 +0800)
code/sdk/application/wearable/fd272/nativeapp/nativeui/heartrate/src/HeartModel.cpp

index 5c0a9f1..280ea99 100644 (file)
@@ -525,7 +525,6 @@ void HeartModel::Heart_Stop() {
     // 取消常亮屏\r
     ScreenAlwaysOnCtr(CANCEL_SCREEN_ALWAYS_ON);\r
     //设置runtime\r
-\r
     Heart_Result(); // 处理结果\r
 \r
     //为了防止主界面卡片一直重复开传感器\r
@@ -683,10 +682,10 @@ void HeartModel::SetWearStatus() {
                 unwear_counter_);\r
 \r
   // 如果处于训练模式,提前返回\r
-  if (uapi_dev_runtime_get_train_status() == 1 ||\r
-      // uapi_dev_runtime_get_heartrate_detect_status() == 0 ||\r
-      uapi_dev_runtime_get_respiratory_training_status())\r
+  if (uapi_dev_runtime_get_train_status() == 1 ||  // uapi_dev_runtime_get_heartrate_detect_status() == 0 ||\r
+  uapi_dev_runtime_get_respiratory_training_status()){\r
     return;\r
+  }\r
 \r
   unwear_counter_++;\r
 #ifdef SYSTEM_LOG_SERVICE\r
@@ -1046,17 +1045,19 @@ void HeartModel::reset_heart_screen60s_timer_time() {
 static osTimerId_t g_data_timer = nullptr;\r
 \r
 static void heart_data_callbackProc(int data) {\r
-  //更新佩戴\r
   uint8_t wear = 1;\r
+  uint8_t hrs = 0;\r
+  //更新佩戴\r
 #ifdef SUPPORT_PPG_SERVICE\r
   wear = ppg_get_wear_status();\r
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"heart_data_callbackProc::hrs = %d\n", hrs);\r
 #endif\r
   if (wear == 0) {\r
     OHOS::HeartModel::GetInstance()->SetWearStatus();\r
+    OHOS::HeartModel::GetInstance()->UpHeartdata(0);\r
+    return;\r
   }\r
   //更新心率\r
-  uint8_t hrs = 0;\r
 #ifdef SUPPORT_PPG_SERVICE\r
   hrs = ppg_get_hrs();\r
   WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,"heart_data_callbackProc::hrs = %d\n", hrs);\r