void SetResult(HeartResult result);\r
HeartResult GetResult();\r
\r
- void Heart_Start(void);\r
+ void Heart_Start(HeartCheck check);\r
void Heart_Stop(void);\r
void Heart_Save(void);\r
void Heart_Result(void);\r
uint16_t displayheart_max = 0; // 显示最大心率\r
uint16_t displayheart_min = 0; // 显示最小心率\r
\r
- uint32\r
- timestamp_ms; // 检测时间(存(时、分),大于24小时,改为1天前,小于1分钟为刚刚)\r
+ uint32 timestamp_ms; // 检测时间(存(时、分),大于24小时,改为1天前,小于1分钟为刚刚)\r
\r
bool initstatus = true;\r
bool heartstate = false;\r
}\r
}\r
// 开始检测\r
-void HeartModel::Heart_Start() {\r
+void HeartModel::Heart_Start(HeartCheck check) {\r
if (!sensorstate) {\r
displayheart = 0;\r
SetResult(HeartResult::NOT_TESTED); // 重置检测\r
- Heart_Control(HeartState::Start, HeartCheck::INITIATIVE);\r
+ Heart_Control(HeartState::Start, check);\r
// ScreenTurnOn(60 * 1000); // 亮屏操作 600000ms 60秒关闭\r
sensorstate = true;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "开始心率检测");\r
+ // 设置runtime\r
+ uapi_dev_runtime_set_heartrate_detect_status(1);\r
}\r
}\r
\r
return;\r
}\r
\r
+ //设置runtime\r
+ uapi_dev_runtime_set_heartrate_detect_status(0);\r
+\r
sensorstate = false;\r
Heart_Result(); // 处理结果\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "本次心率检测结束");\r
}\r
// 设置佩戴状态\r
void HeartModel::SetWearStatus() {\r
+\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "佩戴状态 %d %d",\r
+ uapi_dev_runtime_get_heartrate_detect_status(),\r
+ unwear_counter_);\r
+\r
// 如果处于训练模式,提前返回\r
- if (uapi_dev_runtime_get_train_status() == 1)\r
+ if (uapi_dev_runtime_get_train_status() == 1 ||\r
+ uapi_dev_runtime_get_heartrate_detect_status() == 0)\r
return;\r
+\r
+ unwear_counter_++;\r
+\r
// 设置佩戴状态\r
- SetResult(HeartResult::NOT_WORN);\r
- Heart_Stop();\r
+ if (checkstate == HeartCheck::CARDCHECK) {\r
+ if (unwear_counter_ > MAX_UNWEAR_COUNT) {\r
+ if (MainViewSample::GetInstance()) {\r
+ //只有在心率卡片界面才触发\r
+ if (MainViewSample::GetInstance()->GetHorCurrentCard() == HEART_RATE) {\r
+ SetResult(HeartResult::NOT_WORN);\r
+ Heart_Stop();\r
+ }\r
+ }\r
+ }\r
+ } else {\r
+ SetResult(HeartResult::NOT_WORN);\r
+ Heart_Stop();\r
+ }\r
}\r
\r
void HeartModel::UpHeartdata(uint16_t heart) {\r