bool BPMainPresenter::OnClick(UIView &view, const ClickEvent &event)
{
- static int16_t flag = 0;
std::string viewId = view.GetViewId();
std::map<std::string, std::pair<int16_t, int16_t>> viewIdMap = {
- {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // æ\8f\90é\86\92ç\95\8cé\9d¢å\88°è¾\93å\85¥è¡\80å\8e\8b界面
+ {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // æ\8f\90é\86\92ç\95\8cé\9d¢å\88°è¡\80å\8e\8bå\80¼界面
{ERRORCHECKBUTTON, {BPCALIBRATIONERRORVIEW, BPUNDERCALIBRATIONVIEW}}, // 失败界面到校准界面
+ {VALUECHECKBUTTON, {BPVALUEVIEW, BPRESULTANALYSISVIEW}}, // 血压值界面到结果分析界面
+
};
auto it = viewIdMap.find(viewId);
if (it != viewIdMap.end())
BPMainView::GetInstance()->ChangeView(it->second.first, it->second.second);
return true;
}
- if (strcmp(view.GetViewId(), STARTCALIBRATIONBUTTON) == 0)
+ if (strcmp(view.GetViewId(), STARTCALIBRATIONBUTTON) == 0) // 首界面到校准界面 第一步
{
BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_FIRSTTIME);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "STARTCALIBRATIONBUTTON");
BPModel::GetInstance()->BP_StartTimer(); // 开始计时器,计时结束后自动切换到主界面
}
- if (strcmp(view.GetViewId(), "value_check") == 0 && flag == 0)
+ if (strcmp(view.GetViewId(),CALIBRATIONBUTTON) == 0) // 上次校准时间界面到二次校准界面
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "value_check");
- BPMainView::GetInstance()->ChangeView(BPVALUEVIEW, BPSECUNDERCALIBRATIONVIEW);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CALIBRATIONBUTTON");
+ BPModel::GetInstance()->BP_Control(BPState::BP_CALIBRATING_SECONDTIME);
+ BPMainView::GetInstance()->ChangeView(BPLASTCALIBRATIONTIME, BPSECUNDERCALIBRATIONVIEW);
BPModel::GetInstance()->BP_StartTimer(); // 开始计时器,计时结束后自动切换到主界面
- flag++;
- }
- else if (strcmp(view.GetViewId(), "value_check") == 0 && flag == 1)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "value_check");
- BPMainView::GetInstance()->ChangeView(BPVALUEVIEW, BPRESULTANALYSISVIEW);
- flag = 0;
}
if (strcmp(view.GetViewId(), "SBPLeft") == 0)
{
else if (strcmp(view.GetViewId(), CALIBRATIONLATTERBUTTON) == 0)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CALIBRATIONLATTERBUTTON");
- }
- else if (strcmp(view.GetViewId(), CALIBRATIONBUTTON) == 0)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CALIBRATIONBUTTON");
+ //退出
}
return true;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPPresenter::OnClick");
break;
}
case BPState::BP_DETECTING:
- {
+ {
/*
开启定时器
开启传感器
开启常亮
*/
BP_StartTimer();
- ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);//后期 周期被动状态 需要做区别
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
- if(Time != BP_CHECK_TIME_MAX)
- Time = BP_CHECK_TIME_MAX;//重置时间
+ if (Time != BP_CHECK_TIME_MAX)
+ Time = BP_CHECK_TIME_MAX; // 重置时间
break;
- }
+ }
case BPState::BP_CALIBRATING_FIRSTTIME:
- break;
+ {
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+
+ if (Time != BP_CHECK_TIME_MAX)
+ Time = BP_CHECK_TIME_MAX; // 重置时间
+ }
+ break;
case BPState::BP_CALIBRATING_SECONDTIME:
- break;
+ {
+ BP_StartTimer();
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
+
+ if (Time != BP_CHECK_TIME_MAX)
+ Time = BP_CHECK_TIME_MAX; // 重置时间
+ }
+ break;
default:
/*未知状态,全部状态重置*/
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BP_Control: Invalid state");
// 更新状态
BP_SetState(state);
}
-
+
void BPModel::SetSBPValue(int flag)
{
if (flag == 0)
/*定时器到期时的处理*/
static void BP_TimerCallbackProc(int data)
{
- static uint16 CalibrationFlag = 0;
+ static uint16 CalibrationFlag = 0;
+
+ // 倒计时
+ Time--;
// 提前检查无效时间
if (Time < 0)
{
BPMainView *mainView = BPMainView::GetInstance();
if (BPMainView::GetInstance() && CalibrationFlag == 0)
{
- BPMainView::GetInstance()->ChangeView(BPUNDERCALIBRATIONVIEW, BPCALIBRATIONMINDVIEW);
+ BPMainView::GetInstance()->ChangeView(BPUNDERCALIBRATIONVIEW, BPCALIBRATIONMINDVIEW);
CalibrationFlag++;
}
else if (BPMainView::GetInstance() && CalibrationFlag == 1)
}
else if (BPDetectionView::GetInstance())
{
- //测试成功 -> 进入结果界面
- // BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, RESULT_BPVIEW);
- //测试失败 -> 进入错误界面
- BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, ERROR_BPVIEW);
+ // 测试成功 -> 进入结果界面
+ // BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, RESULT_BPVIEW);
+ // 测试失败 -> 进入错误界面
+ BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, ERROR_BPVIEW);
}
return;
}
- // 倒计时
- Time--;
+
BPState current_state_time = BPModel::GetInstance()->GetCurrentState();
// 根据状态处理
}
case BPState::BP_CALIBRATING_FIRSTTIME:
- {
+ {
BPUnderCalibrationView *view = BPUnderCalibrationView::GetInstance();
if (view)
{