增加校准完成有效期与过期逻辑
authorxue <2144439972@qq.com>
Tue, 8 Jul 2025 08:01:24 +0000 (16:01 +0800)
committerxue <2144439972@qq.com>
Tue, 8 Jul 2025 08:01:24 +0000 (16:01 +0800)
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/BPModel.h
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp

index 0e14b19..639cf39 100644 (file)
@@ -172,7 +172,6 @@ namespace OHOS
     uint8_t CalibrationFlag = 0;
     LAST_CHECK_DATA lastData;                   // 上一次测量的数据
     BPRESULT bp_resullt = BPRESULT::NOT_TESTED; // 测量状态
-    bool NeedCalibrationFlag = ture;            // 是否需要校准标志位
   };
 } // namespace OHOS
 
index 1ef124b..b16a34b 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "bloodpressure/include/detection/BPDetectionView.h"
 #include "bloodpressure/include/BPModel.h"
+#include "bloodpressure/include/BPMainView.h"
 #include "bloodpressure/include/detection/BPDetectionPresenter.h"
 
 #include "ui_image_animator.h"
@@ -21,7 +22,7 @@
 #endif
 namespace OHOS
 {
-    
+
     static BPDetectionView *g_pBPCheckView = nullptr;
 
     BPDetectionView::BPDetectionView()
@@ -32,58 +33,56 @@ namespace OHOS
     BPDetectionView::~BPDetectionView()
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BPDetectionView::~BPDetectionView");
-        #ifdef ENABLE_BN02
-        do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_SERVER_DEINIT,NULL,0);
-        #endif
-        if(container_)
+#ifdef ENABLE_BN02
+        do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_SERVER_DEINIT, NULL, 0);
+#endif
+        if (container_)
             container_->RemoveAll();
 
-         if(g_pBPDetectFirstView)
-         {
+        if (g_pBPDetectFirstView)
+        {
             delete g_pBPDetectFirstView;
             g_pBPDetectFirstView = nullptr;
-         }   
+        }
 
-         if(g_pBPDetectSOSView)
-         {
+        if (g_pBPDetectSOSView)
+        {
             delete g_pBPDetectSOSView;
             g_pBPDetectSOSView = nullptr;
-         }
+        }
 
-         if(g_pBPDetectBeginView)
-         {
+        if (g_pBPDetectBeginView)
+        {
             delete g_pBPDetectBeginView;
             g_pBPDetectBeginView = nullptr;
-         }
+        }
 
-         if(g_pBPDetectEndView)
-         {
+        if (g_pBPDetectEndView)
+        {
             delete g_pBPDetectEndView;
             g_pBPDetectEndView = nullptr;
-         }
-         
-         if(g_pBPDetectErrorView)
-         {
+        }
+
+        if (g_pBPDetectErrorView)
+        {
             delete g_pBPDetectErrorView;
             g_pBPDetectErrorView = nullptr;
-         }
+        }
 
-         if(g_pBPDetectFailView)
-         {
+        if (g_pBPDetectFailView)
+        {
             delete g_pBPDetectFailView;
             g_pBPDetectFailView = nullptr;
-         }
+        }
 
-         
-        for(int i = 0; i < MAX_BPDECETVIEW; ++i)
+        for (int i = 0; i < MAX_BPDECETVIEW; ++i)
         {
-            if(group[i])
+            if (group[i])
             {
                 group[i] = nullptr;
             }
         }
 
-
         g_pBPCheckView = nullptr;
     }
     BPDetectionView *BPDetectionView::GetInstance(void)
@@ -99,13 +98,22 @@ namespace OHOS
         SetContainerView(new UIViewGroup());
         container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
 
-
         container_->SetDraggable(true);
         container_->SetTouchable(true);
         container_->SetOnDragListener(presenter_);
 
         // 切换到第一个界面
-        ChangeView(MAX_BPDECETVIEW, MAIN_BPVIEW);
+        // 校准时间失效或者未校准则先进入校准界面
+        if (BPModel::GetInstance()->needMeasure()) // 是否需要校准
+        {
+            // 需要校准进入校准界面
+            BPMainView::GetInstance()-> ChangeView(MAX_BPVIEW, BPCALPOSREQVIEW); 
+        }
+        else
+        {
+            //不需要校准则进入测量界面
+            ChangeView(MAX_BPDECETVIEW, MAIN_BPVIEW);
+        }
 
         // 增加按键监听
         RootView::GetInstance()->SetOnKeyActListener(presenter_);
@@ -168,14 +176,14 @@ namespace OHOS
             if (g_pBPDetectSOSView == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "BloodPressureView::ChangeBPDetectSOSView new BPDetectSOSView fail");
+                              "BloodPressureView::ChangeBPDetectSOSView new BPDetectSOSView fail");
                 return false;
             }
             // 初始化视图并添加到视图组
             group[thisView] = g_pBPDetectSOSView->BPDetectSOSInit();
-            if(group[thisView] != nullptr)
+            if (group[thisView] != nullptr)
             {
-                //开启动画
+                // 开启动画
                 g_pBPDetectSOSView->GetImageAnimator()->Start();
             }
             container_->Add(group[thisView]);
@@ -194,7 +202,7 @@ namespace OHOS
             if (g_pBPDetectBeginView == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "BloodPressureView::ChangeBPDetectBeginView new BPDetectBeginView fail");
+                              "BloodPressureView::ChangeBPDetectBeginView new BPDetectBeginView fail");
                 return false;
             }
             // 初始化视图并添加到视图组
@@ -215,7 +223,7 @@ namespace OHOS
             if (g_pBPDetectEndView == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "BloodPressureView::ChangeBPDetectEndView new BPDetectEndView fail");
+                              "BloodPressureView::ChangeBPDetectEndView new BPDetectEndView fail");
                 return false;
             }
             // 初始化视图并添加到视图组
@@ -236,7 +244,7 @@ namespace OHOS
             if (g_pBPDetectErrorView == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "BloodPressureView::ChangeBPDetectErrorView new BPDetectErrorView fail");
+                              "BloodPressureView::ChangeBPDetectErrorView new BPDetectErrorView fail");
                 return false;
             }
             // 初始化视图并添加到视图组
@@ -257,7 +265,7 @@ namespace OHOS
             if (g_pBPDetectFailView == nullptr)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
-                "BloodPressureView::ChangeBPDetectFailView new BPDetectFailView fail");
+                              "BloodPressureView::ChangeBPDetectFailView new BPDetectFailView fail");
                 return false;
             }
             // 初始化视图并添加到视图组
@@ -272,7 +280,7 @@ namespace OHOS
      */
     struct BPViewMapper
     {
-        const int16_t viewId;              // 视图ID
+        const int16_t viewId;                   // 视图ID
         bool (BPDetectionView::*func)(int16_t); // 对应的视图切换函数指针
     };