增加佩戴状态下的无效数控制
authorCaisking <3449750381@qq.com>
Tue, 7 May 2024 10:45:09 +0000 (18:45 +0800)
committerCaisking <3449750381@qq.com>
Tue, 7 May 2024 10:45:09 +0000 (18:45 +0800)
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp

index 4a14b4a..b720bbf 100644 (file)
@@ -158,8 +158,9 @@ extern "C"
 \r
             bool initstatus = true;\r
             uint8_t wear_;\r
-            uint8_t valid_counter_ = 0;//有效数计数器\r
-            uint8_t unwear_counter_ = 0;//佩戴错误计数器\r
+            uint8_t valid_counter_ = 0;    // 有效数计数器\r
+            uint8_t disvalid_counter_ = 0; // 无效数计数器\r
+            uint8_t unwear_counter_ = 0;   // 佩戴错误计数器\r
         };\r
     }\r
 \r
index e06ea4c..85a65ba 100644 (file)
@@ -19,8 +19,9 @@ extern "C"
 {\r
 #endif\r
 \r
-#define MAX_UNWEAR_COUNT 30\r
-#define MAX_VALID_HRS_COUNT 30\r
+#define MAX_UNWEAR_COUNT 20\r
+#define MAX_VALID_HRS_COUNT 40\r
+#define MAX_DISVALID_HRS_COUNT 40\r
 #define HEARTTEST 1 //[0 开启测试 1 关闭]\r
     /* 佩戴检测结果 */\r
     enum\r
@@ -475,6 +476,7 @@ namespace OHOS
     {\r
         valid_counter_ = 0;\r
         unwear_counter_ = 0;\r
+        disvalid_counter_ = 0;\r
         SetCheckStatus(false);\r
         SetWearStatus(1);\r
     }\r
@@ -482,7 +484,7 @@ namespace OHOS
     void HeartModel::SetWearStatus(int32_t wear)\r
     {\r
         // 设置佩戴状态\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartModel Weartest::%d", wear);\r
+        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartModel Weartest::%d", wear);\r
         if (wear_ != 1 && wear != 1)\r
         {\r
             unwear_counter_++; // 佩戴错误计时器计数\r
@@ -585,11 +587,21 @@ namespace OHOS
         if (Show_Heart_ != 0)\r
         {\r
             Heart_ = heart;\r
-            valid_counter_++; // 增加有效计数器\r
+            valid_counter_++;      // 增加有效计数器\r
+            disvalid_counter_ = 0; // 清零无效数\r
         }\r
         else\r
         {\r
-            valid_counter_ = 0; // 清零有效计数器\r
+            valid_counter_ = 0;  // 清零有效计数器\r
+            disvalid_counter_++; // 增加无效数\r
+        }\r
+        // 一直为无效数\r
+        if (disvalid_counter_ >= MAX_DISVALID_HRS_COUNT)\r
+        {\r
+            // 结束本次测试\r
+            PRINT("MAX_DISVALID_HRS_COUNT\r\n");\r
+            Heart_Stop();\r
+            return;\r
         }\r
 #if HEARTTEST\r
         if (valid_counter_ >= MAX_VALID_HRS_COUNT)\r