uint16_t valid_counter_ = 0; // 有效数计数器\r
uint16_t disvalid_counter_ = 0; // 无效数计数器\r
uint16_t unwear_counter_ = 0; // 佩戴错误计数器\r
+ uint16_t display_counter_ = 0; //显示计数器\r
\r
HeartResult heartresult_ = HeartResult::NOT_TESTED; // 检测结果\r
HeartCheck checkstate = HeartCheck::RESTSTSTE; // 目前检测状态\r
#endif\r
\r
#define MAX_UNWEAR_COUNT 30\r
-#define MAX_VALID_HRS_COUNT 40\r
+#define MAX_VALID_HRS_COUNT 60\r
#define MAX_DISVALID_HRS_COUNT 70\r
#define MIN_DISPLAY_HEART 60\r
+#define DISPLAY_COUNT 20\r
#define HEARTTEST 1 //[0 开启测试 1 关闭]\r
\r
/*佩戴检测结果*/\r
HeartResult HeartModel::GetResult() { return heartresult_; }\r
// 控制心率检测\r
void HeartModel::Heart_Control(HeartState state, HeartCheck check) {\r
+ //优先级低不对高优先级处理\r
if (check < checkstate) {\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
"Higher execution instruction exists");\r
return;\r
}\r
+\r
if (state == HeartState::End && heartstate == true) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState End");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState End");\r
+ //状态数全部清空\r
+ valid_counter_ = 0;\r
+ disvalid_counter_ = 0;\r
+ unwear_counter_ = 0;\r
+ display_counter_ = 0;\r
+ displayheart = 0;\r
uint8_t md = PPG_SERVICE_CMD_TYPE_STOP_PPG_TEST;\r
send_ppg_cmd_msg(md);\r
heartstate = false;\r
valid_counter_ = 0;\r
disvalid_counter_ = 0;\r
unwear_counter_ = 0;\r
+ display_counter_ = 0;\r
+ displayheart = 0;\r
\r
/*主界面卡片检测 或者 被动检测*/\r
if (checkstate == HeartCheck::CARDCHECK ||\r
if (uapi_dev_runtime_get_train_status() == 1)\r
return;\r
\r
- displayheart = heart;\r
+ if (heart != 0) {\r
+ if (display_counter_ >= DISPLAY_COUNT) {\r
+ displayheart = heart;\r
+ } else {\r
+ displayheart = 0;\r
+ }\r
+ display_counter_++;\r
+ }\r
\r
// 更新心率和计数器\r
if (displayheart != 0) {\r