From 91e3a3019c15e8fade5043d9fc26ee94902e2c45 Mon Sep 17 00:00:00 2001 From: xue <2144439972@qq.com> Date: Wed, 18 Jun 2025 12:03:30 +0800 Subject: [PATCH] =?utf8?q?=E5=AE=8C=E5=96=84=E7=95=8C=E9=9D=A2=E5=88=87?= =?utf8?q?=E6=8D=A2=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=AE=9A?= =?utf8?q?=E6=97=B6=E5=99=A8=E6=9C=AA=E9=87=8D=E7=BD=AEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../bloodpressure/src/BPMainPresenter.cpp | 26 ++++------ .../nativeui/bloodpressure/src/BPModel.cpp | 50 ++++++++++++------- 2 files changed, 42 insertions(+), 34 deletions(-) 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 fb93e4cb2..71b2357e4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPMainPresenter.cpp @@ -138,11 +138,12 @@ namespace OHOS bool BPMainPresenter::OnClick(UIView &view, const ClickEvent &event) { - static int16_t flag = 0; std::string viewId = view.GetViewId(); std::map> viewIdMap = { - {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到输入血压界面 + {MINDCHECKBUTTON, {BPCALIBRATIONMINDVIEW, BPVALUEVIEW}}, // 提醒界面到血压值界面 {ERRORCHECKBUTTON, {BPCALIBRATIONERRORVIEW, BPUNDERCALIBRATIONVIEW}}, // 失败界面到校准界面 + {VALUECHECKBUTTON, {BPVALUEVIEW, BPRESULTANALYSISVIEW}}, // 血压值界面到结果分析界面 + }; auto it = viewIdMap.find(viewId); if (it != viewIdMap.end()) @@ -150,7 +151,7 @@ namespace OHOS 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"); @@ -158,18 +159,12 @@ namespace OHOS 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) { @@ -190,10 +185,7 @@ namespace OHOS 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"); 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 b702b170b..5ee2e60ba 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp @@ -114,24 +114,38 @@ namespace OHOS 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"); @@ -143,7 +157,7 @@ namespace OHOS // 更新状态 BP_SetState(state); } - + void BPModel::SetSBPValue(int flag) { if (flag == 0) @@ -163,7 +177,10 @@ namespace OHOS /*定时器到期时的处理*/ static void BP_TimerCallbackProc(int data) { - static uint16 CalibrationFlag = 0; + static uint16 CalibrationFlag = 0; + + // 倒计时 + Time--; // 提前检查无效时间 if (Time < 0) { @@ -172,7 +189,7 @@ namespace OHOS 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) @@ -182,16 +199,15 @@ namespace OHOS } 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(); // 根据状态处理 @@ -213,7 +229,7 @@ namespace OHOS } case BPState::BP_CALIBRATING_FIRSTTIME: - { + { BPUnderCalibrationView *view = BPUnderCalibrationView::GetInstance(); if (view) { -- 2.17.1