${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectBeginView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectEndView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPCalPosReqView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPLastCalibrationTimeView.cpp
--- /dev/null
+
+#ifndef BP_DetectFial_VIEW_H
+#define BP_DetectFial_VIEW_H
+
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_button.h"
+#include "components/ui_label_button.h"
+#include "components/ui_view_group.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_button_ext.h"
+namespace OHOS
+{
+
+ class BPDetectFailView
+ {
+ public:
+ BPDetectFailView();
+ ~BPDetectFailView();
+ static BPDetectFailView *GetInstance();
+ UIViewGroup * BPDetectFailInit();
+
+
+ void UpdateText();
+
+ private:
+ UIImageView *icon_fail = nullptr;
+ UILabelExt *titlefail = nullptr;
+ UILabelButtonExt *ReCheckButton{nullptr};
+
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 血压主界面
\ No newline at end of file
#include "bloodpressure/include/detection/BPDetectBeginView.h"
#include "bloodpressure/include/detection/BPDetectEndView.h"
#include "bloodpressure/include/detection/BPDetectErrorView.h"
+#include "bloodpressure/include/detection/BPDetectFailView.h"
#define CLICK_BLOOD_PRESSURE "click_bloodpressure"
#define RE_CLICK_BLOOD_PRESSURE "re_click_bloodpressure"
UNDER_CALIBRATION_BPVIEW,
//结果界面
RESULT_BPVIEW,
- //检测异常界面
+ //预警值界面
ERROR_BPVIEW,
//sos求救界面
SOS_BPVIEW,
+ //测量失败界面
+ FAIL_BPVIEW,
MAX_BPDECETVIEW,
} BPDETECTVIEWID;
bool ChangeBPDetectBeginView(int16_t thisView);
bool ChangeBPDetectEndView(int16_t thisView);
bool ChangeBPDetectErrorView(int16_t thisView);
+ bool ChangeBPDetectFailView(int16_t thisView);
private:
UIViewGroup *group[MAX_BPDECETVIEW]{nullptr};
BPDetectBeginView *g_pBPDetectBeginView = nullptr;
BPDetectEndView *g_pBPDetectEndView = nullptr;
BPDetectErrorView *g_pBPDetectErrorView = nullptr;
+ BPDetectFailView *g_pBPDetectFailView = nullptr;
};
--- /dev/null
+/***
+ * @Date: 2024-04-15 10:55:58
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-31 14:36:25
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodpressure/src/BPDetectFailView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "bloodpressure/include/detection/BPDetectionPresenter.h"
+#include "bloodpressure/include/detection/BPDetectFailView.h"
+#include "bloodpressure/include/BPModel.h"
+namespace OHOS
+{
+ static BPDetectFailView *g_pBPDetectFailView{nullptr};
+ static const char* image_bp = "/user/res/BPCalibration/error.bin";
+
+ BPDetectFailView::BPDetectFailView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::BPDetectFailView");
+ g_pBPDetectFailView = this;
+ }
+ BPDetectFailView::~BPDetectFailView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::~BPDetectFailView");
+ if(group)
+ {
+ group->RemoveAll();
+ if(icon_fail)
+ {
+ delete icon_fail;
+ icon_fail = nullptr;
+ }
+ if(titlefail)
+ {
+ delete titlefail;
+ titlefail = nullptr;
+ }
+ if(ReCheckButton)
+ {
+ delete ReCheckButton;
+ ReCheckButton = nullptr;
+ }
+ }
+ delete group;
+ group = nullptr;
+ g_pBPDetectFailView = nullptr;
+ }
+
+ BPDetectFailView *BPDetectFailView::GetInstance()
+ {
+ return g_pBPDetectFailView;
+ }
+
+
+
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *BPDetectFailView::BPDetectFailInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool BPDetectFailView::InitView()");
+ group = new UIViewGroup();
+ group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+
+
+ InitImageView(icon_fail, 131, 131, 100, 100, "image_bp", image_bp);
+
+ InitLabel(titlefail, 133, 57, 230, 80, "titlefail","测量失败", DEFAULT_VECTOR_FONT_FILENAME, 30);
+
+ InitButtonExt(ReCheckButton, 118, 360, 230, 80, RE_CLICK_BLOOD_PRESSURE,STR_RECHECK, 30);
+ ReCheckButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::BPDetectionPresenter::GetInstance();
+ ReCheckButton->SetOnClickListener(clickListener);//设置按键监听
+
+
+ group->Add(icon_fail);
+ group->Add(titlefail);
+ group->Add(ReCheckButton);
+
+
+ return group;
+ }
+
+
+
+}
//预警界面->退出
else if (strcmp(view.GetViewId(), EXIE_CLICK) == 0)
{
- NavigateBack();
+ // NavigateBack();
+ BPDetectionView::GetInstance()->ChangeView(ERROR_BPVIEW,FAIL_BPVIEW);//test
}
return true;
}
g_pBPDetectErrorView = nullptr;
}
+ if(g_pBPDetectFailView)
+ {
+ delete g_pBPDetectFailView;
+ g_pBPDetectFailView = nullptr;
+ }
+
for(int i = 0; i < MAX_BPDECETVIEW; ++i)
{
return true;
}
+ bool BPDetectionView::ChangeBPDetectFailView(int16_t thisView)
+ {
+ // 检查视图是否已初始化,避免重复创建
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodPressureView::ChangeBPDetectFailView");
+ // 创建首次校准视图实例
+ g_pBPDetectFailView = new BPDetectFailView();
+ if (g_pBPDetectFailView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
+ "BloodPressureView::ChangeBPDetectFailView new BPDetectFailView fail");
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pBPDetectFailView->BPDetectFailInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
/**
* 视图映射结构体 - 将视图ID映射到对应的视图切换函数
{CALIBRATION_BPVIEW, &BPDetectionView::ChangeBPDetectBeginView},
{RESULT_BPVIEW, &BPDetectionView::ChangeBPDetectEndView},
{ERROR_BPVIEW, &BPDetectionView::ChangeBPDetectErrorView},
+ {FAIL_BPVIEW, &BPDetectionView::ChangeBPDetectFailView},
+
};
bool BPDetectionView::ClickFunc(int16_t interface)