From: xue <2144439972@qq.com> Date: Tue, 8 Jul 2025 09:17:12 +0000 (+0800) Subject: 增加校准成功与失败逻辑 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=c01588c4322d53148b2b071169a7d50fbf969b63;p=mirrors%2FFD230.git 增加校准成功与失败逻辑 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp index 07bbc9129..b807cc262 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp @@ -126,8 +126,7 @@ namespace OHOS std::string viewId = view.GetViewId(); std::map> viewIdMap = { - {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到血压值界面 - {ERRORCHECKBUTTON, {BPCALIBRATIONERRORVIEW, BPUNDERCALIBRATIONVIEW}}, // 失败界面到校准界面 + {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到血压值界面 }; auto it = viewIdMap.find(viewId); @@ -151,6 +150,19 @@ namespace OHOS 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); @@ -163,13 +175,13 @@ namespace OHOS 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 { diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp index 47c939d7a..9ffb2546a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp @@ -443,6 +443,10 @@ namespace OHOS // 校准分析状态处理 void BPModel::BPControlCalibratingAnalysis() { + BP_StartTimer(); + ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别 + if (Time != BP_ANLYSISI_TIME_MAX) + Time = BP_ANLYSISI_TIME_MAX; // 重置时间 } // 压力测量状态处理 void BPModel::BPControlStressMeasure() @@ -462,6 +466,10 @@ namespace OHOS // 压力分析状态处理 void BPModel::BPControlStressAnalysis() { + BP_StartTimer(); + ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别 + if (Time != BP_ANLYSISI_TIME_MAX) + Time = BP_ANLYSISI_TIME_MAX; // 重置时间 } // 疲劳度测量状态处理 void BPModel::BPControlFatigueMeasure() @@ -481,6 +489,10 @@ namespace OHOS // 疲劳度分析状态处理 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() @@ -500,6 +512,10 @@ namespace OHOS // 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() @@ -514,11 +530,9 @@ namespace OHOS { BP_StartTimer(); ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别 - if (Time != BP_CHECK_TIME_MAX) Time = BP_CHECK_TIME_MAX; // 重置时间 } - // 情绪测量结束状态处理 void BPModel::BPControlEMOMeasureEnd() { @@ -527,6 +541,10 @@ namespace OHOS // 情绪分析状态处理 void BPModel::BPControlEMOAnalysis() { + BP_StartTimer(); + ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别 + if (Time != BP_ANLYSISI_TIME_MAX) + Time = BP_ANLYSISI_TIME_MAX; // 重置时间 } ///////////////////////////////////////////////////////// // 机器校准收缩压与舒张压的数值 @@ -688,24 +706,44 @@ namespace OHOS : 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(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; } // 处理血压检测状态