std::string viewId = view.GetViewId();
std::map<std::string, std::pair<int16_t, int16_t>> viewIdMap = {
- {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到血压值界面
- {ERRORCHECKBUTTON, {BPCALIBRATIONERRORVIEW, BPUNDERCALIBRATIONVIEW}}, // 失败界面到校准界面
+ {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到血压值界面
};
auto it = viewIdMap.find(viewId);
BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_SECONDTIME);
BPMainView::GetInstance()->ChangeView(BPLASTCALIBRATIONTIME, BPSECUNDERCALIBRATIONVIEW);
}
+ else if (strcmp(view.GetViewId(), ERRORCHECKBUTTON) == 0) // 失败界面到校准界面
+ {
+ if (BPModel:::GetInstance()->GetCalibrationFlag() == 1) // 第一次校准失败
+ {
+ BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_FIRSTTIME);
+ BPMainView::GetInstance()->ChangeView(BPCALIBRATIONERRORVIEW, BPUNDERCALIBRATIONVIEW);
+ }
+ else if (BPModel:::GetInstance()->GetCalibrationFlag() == 3) // 第二次校准失败
+ {
+ BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_SECONDTIME);
+ BPMainView::GetInstance()->ChangeView(BPCALIBRATIONERRORVIEW, BPSECUNDERCALIBRATIONVIEW);
+ }
+ }
else if (strcmp(view.GetViewId(), VALUECHECKBUTTON) == 0) // 血压值界面到结果分析界面
{
BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_ANGLYSIS);
BPMainView::GetInstance()->ChangeView(BPCALIBRATIONPASSVIEW, BPLASTCALIBRATIONTIME);
passflag = 1;
}
- else //全部校准成功
+ else // 全部校准成功
{
if (ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
{
ConfigModel::GetInstance()->SetisFirstTimeStart(false);
NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
- NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);//如果是第一次绑定进到主界面
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN); // 如果是第一次绑定进到主界面
}
else
{
// 校准分析状态处理
void BPModel::BPControlCalibratingAnalysis()
{
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+ if (Time != BP_ANLYSISI_TIME_MAX)
+ Time = BP_ANLYSISI_TIME_MAX; // 重置时间
}
// 压力测量状态处理
void BPModel::BPControlStressMeasure()
// 压力分析状态处理
void BPModel::BPControlStressAnalysis()
{
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+ if (Time != BP_ANLYSISI_TIME_MAX)
+ Time = BP_ANLYSISI_TIME_MAX; // 重置时间
}
// 疲劳度测量状态处理
void BPModel::BPControlFatigueMeasure()
// 疲劳度分析状态处理
void BPModel::BPControlFatigueAnalysis()
{
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+ if (Time != BP_ANLYSISI_TIME_MAX)
+ Time = BP_ANLYSISI_TIME_MAX; // 重置时间
}
// ECG测量状态处理
void BPModel::BPControlECGMeasure()
// ECG分析状态处理
void BPModel::BPControlECGAnalysis()
{
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+ if (Time != BP_ANLYSISI_TIME_MAX)
+ Time = BP_ANLYSISI_TIME_MAX; // 重置时间
}
// ECG提醒状态处理
void BPModel::BPControlECGRemind()
{
BP_StartTimer();
ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
-
if (Time != BP_CHECK_TIME_MAX)
Time = BP_CHECK_TIME_MAX; // 重置时间
}
-
// 情绪测量结束状态处理
void BPModel::BPControlEMOMeasureEnd()
{
// 情绪分析状态处理
void BPModel::BPControlEMOAnalysis()
{
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+ if (Time != BP_ANLYSISI_TIME_MAX)
+ Time = BP_ANLYSISI_TIME_MAX; // 重置时间
}
/////////////////////////////////////////////////////////
// 机器校准收缩压与舒张压的数值
: BPSECUNDERCALIBRATIONVIEW,
BPCALIBRATIONMINDVIEW);
}
- LastCalibrationTime = BPModel::GetCurrentTimeStr(); // 获取校准完成时的时间
BP_STOP();
BP_SetState(BPState::BP_IDLE);
CalibrationFlag++;
return;
}
- // 处理血压分析状态
+ // 处理校准分析状态
if (current_state == BPState::BP_CALIBRATING_ANGLYSIS)
{
if (bpMainView)
{
- bpMainView->ChangeView(BPRESULTANALYSISVIEW, BPCALIBRATIONPASSVIEW);
+ if (1) // 校准结果判断,后期调用接口
+ {
+ bpMainView->ChangeView(BPRESULTANALYSISVIEW, BPCALIBRATIONPASSVIEW);
+ int configValue = static_cast<int>(GetCurrentTime());
+ if (CalibrationFlag == 1) // 第一次校准成功
+ {
+ CalibrationFlag++;
+#if defined(BOARD_W9)
+ ConfigModel::GetInstance()->set_configData_Int(ConfigModel::CONFIGMODEL_ITEM_BP_CALIBRATION_FIRST_TIME, configValue);
+#endif
+ }
+
+ else //第二次校准成功,校准完成
+ {
+#if defined(BOARD_W9)
+ ConfigModel::GetInstance()->set_configData_Int(ConfigModel::CONFIGMODEL_ITEM_BP_CALIBRATION_SECOND_TIME, configValue);
+#endif
+ CalibrationFlag = 0;
+ }
+ }
+
+ else
+ {
+ bpMainView->ChangeView(BPRESULTANALYSISVIEW, BPCALIBRATIONERRORVIEW);//失败只跳转界面,不做任何处理
+ }
}
BP_SetState(BPState::BP_IDLE);
- if (CalibrationFlag == 1)
- CalibrationFlag++;
- else
- CalibrationFlag = 0;
+
return;
}
// 处理血压检测状态