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
maxheart_dynamic_3_->SetTextColor(
Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
//动态心率2/4
- InitLabel(maxheart_dynamic_2_, 30, 247, 50, 20, "label", "100",
+ InitLabel(maxheart_dynamic_2_, 30, 247, 50, 20, "label", "110",
DEFAULT_VECTOR_FONT_FILENAME, 20);
maxheart_dynamic_2_->SetTextColor(
Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
//动态心率1/4
- InitLabel(maxheart_dynamic_1_, 30, 277, 50, 20, "label", "40",
+ InitLabel(maxheart_dynamic_1_, 30, 277, 50, 20, "label", "50",
DEFAULT_VECTOR_FONT_FILENAME, 20);
maxheart_dynamic_1_->SetTextColor(
Color::GetColorFromRGBA(0x33, 0x33, 0x33, 0xff));
#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
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "充电不能检测");\r
return;\r
}\r
-\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartState Start");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartState Start");\r
uint8_t md = PPG_SERVICE_CMD_TYPE_DO_PPG_TEST;\r
send_ppg_cmd_msg(md);\r
heartstate = true;\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
return int(sportdata->duration / 60); // 时间是秒需要转换为目标的分钟
break;
case ExerciseTag::Calories:
- return sportdata->calories;
- break;
+ return sportdata->calories; //卡路里是kcal
+ break;
case ExerciseTag::Distance:
- return sportdata->distance;
- break;
+ return int(sportdata->distance / 1000); //距离是米需要转换为km
+ break;
case ExerciseTag::Steps:
- return sportdata->steps;
- break;
+ return sportdata->steps; //步数是步
+ break;
default:
break;
}