* @Date: 2024-07-29 15:38:56
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-07-29 15:42:12
- * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodpressure/include/BPDetectionView.cpp
+ * @FilePath:
+ * /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodpressure/include/BPDetectionView.cpp
*/
/*
* Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
#ifndef BP_Detection_VIEW_H
#define BP_Detection_VIEW_H
-#include "View.h"
#include "BaseView.h"
-#include "wearable_log.h"
#include "UiConfig.h"
-#include "components/ui_label.h"
-#include "components/ui_label_ext.h"
+#include "View.h"
#include "components/ui_button.h"
-#include "components/ui_label_button.h"
-#include "components/ui_image_animator.h"
#include "components/ui_circle_progress.h"
+#include "components/ui_image_animator.h"
+#include "components/ui_label.h"
+#include "components/ui_label_button.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_scroll_view.h"
#include "components/ui_view_group.h"
-
+#include "wearable_log.h"
#include "bloodpressure/include/BPDetectionPresenter.h"
-#include "components/ui_scroll_view.h"
-#include "components/ui_label_button_ext.h"
+#define CLICK_BLOOD_PRESSURE "click_bloodpressure"
+namespace OHOS {
+
+class BPDetectionPresenter;
+class BPDetectionView : public View<BPDetectionPresenter> {
+public:
+ BPDetectionView();
+ virtual ~BPDetectionView();
+ void OnStop() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStart() override;
+ static BPDetectionView *GetInstance(void);
+
+ bool BPDetectionViewInit();
+ void UpdataText(); //更新文本数据
-#include "power_display_service.h"
+private:
+ // UIImageAnimatorView *imageAnimator{nullptr};
-#define STOPCHECK "stop_check"
-namespace OHOS
-{
- class BPDetectionPresenter;
- class BPDetectionView : public View<BPDetectionPresenter>
- {
- public:
- BPDetectionView();
- virtual ~BPDetectionView();
- void OnStop() override;
- void OnSetUpView() override;
- void OnTearDownView() override;
- void OnStart() override;
- static BPDetectionView *GetInstance(void);
+ UILabelExt *DBPTitleLabel{nullptr};
+ UILabelExt *SBPTitleText{nullptr};
+ UILabel *DBPText{nullptr};
+ UILabel *SBPText{nullptr};
+ UILabel *timeLabel{nullptr};
- bool BPDetectionViewInit();
- UIImageAnimatorView *GetImageAnimator(void);
- void UpShowBPText(void);
+ UIImageView *BPImageView{nullptr};
+ UIImageView *BgWImageView{nullptr};
+ UIImageView *BgQImageView{nullptr};
- private:
- UIImageAnimatorView *imageAnimator{nullptr};
- UILabelExt *titleLabel{nullptr};
- UILabel *Spo2Text{nullptr};
- UILabelButtonExt *testButton{nullptr};
+ UILabelButtonExt *CheckButton{nullptr};
- uint32_t spo2_;
- };
-}
+ uint16_t m_dbp_{0};
+ uint16_t m_sbp_{0};
+};
+} // namespace OHOS
#endif // 血氧主界面
\ No newline at end of file
*/
#include "UiConfig.h"
#include "wearable_log.h"
-#include "BPDetectionView.h"
-#include "BPModel.h"
+
+#include "bloodpressure/include/BPDetectionView.h"
+#include "bloodpressure/include/BPModel.h"
+#include "bloodpressure/include/BPDetectionPresenter.h"
+
#include "ui_image_animator.h"
#include "BPDetectionView.h"
#include "ui_resource_string.h"
#include "power_display_service.h"
#include "uicomponents/UIComponents.h"
+
namespace OHOS
{
- // 动态刷新设置
- static constexpr uint16_t IMAGE_SIZE = 180;
- static constexpr uint16_t IMAGE_POSITION_Y = 143;
- static constexpr uint16_t IMAGE_POSITION_X = 143;
- static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SIZE = 30;
- static constexpr uint16_t DETECTION_IMAGE_ANIMATORVIEW_SPEED = 40;
-
- static ImageAnimatorInfo g_imageAnimatorInfo_blood[30] = {
- {PNG_CHECK_TIME_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- {PNG_CHECK_TIME_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
- };
-
+
static BPDetectionView *g_pBPCheckView = nullptr;
+ static const char* image_bp = "/user/res/BPCalibration/measuring.bin";
+ static const char* image_bg_w = "/user/res/BPCalibration/W.bin";
+ static const char* image_bg_q = "/user/res/BPCalibration/Q.bin";
+
+
BPDetectionView::BPDetectionView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BPBandoffView::BPBandoffView");
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BPDetectionView::~BPDetectionView");
if(container_)
container_->RemoveAll();
- if(titleLabel)
+
+ if(DBPTitleLabel)
+ {
+ delete DBPTitleLabel;
+ DBPTitleLabel = nullptr;
+ }
+ if(SBPTitleText)
{
- delete titleLabel;
- titleLabel = nullptr;
+ delete SBPTitleText;
+ SBPTitleText = nullptr;
}
- if(testButton)
+ if(DBPText)
{
- delete testButton;
- testButton = nullptr;
+ delete DBPText;
+ DBPText = nullptr;
}
- if(imageAnimator)
+ if(SBPText)
{
- imageAnimator->Stop();
- delete imageAnimator;
- imageAnimator = nullptr;
+ delete SBPText;
+ SBPText = nullptr;
}
- if(Spo2Text)
+ if(timeLabel)
{
- delete Spo2Text;
- Spo2Text = nullptr;
+ delete timeLabel;
+ timeLabel = nullptr;
}
+ if(BPImageView)
+ {
+ delete BPImageView;
+ BPImageView = nullptr;
+ }
+ if(BgWImageView)
+ {
+ delete BgWImageView;
+ BgWImageView = nullptr;
+ }
+ if(BgQImageView)
+ {
+ delete BgQImageView;
+ BgQImageView = nullptr;
+ }
+ if(CheckButton)
+ {
+ delete CheckButton;
+ CheckButton = nullptr;
+ }
+
g_pBPCheckView = nullptr;
}
BPDetectionView *BPDetectionView::GetInstance(void)
{
return g_pBPCheckView;
}
- UIImageAnimatorView *BPDetectionView::GetImageAnimator()
- {
- return imageAnimator;
- }
-
- /*更新显示数据*/
- void BPDetectionView::UpShowBPText()
- {
- uint16_t spo2_ = BPModel::GetInstance()->GetShowSPO2data();
- std::string bloodpressureStr = std::to_string(spo2_);
- if (Spo2Text != nullptr)
- Spo2Text->SetText(bloodpressureStr.c_str());
- }
/*初始化检测界面*/
bool BPDetectionView::BPDetectionViewInit()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectionViewInit is begin");
- /*初始化title*/
- InitLabelExt(titleLabel, 83, 50, 300, 35, "title", STR_CHECKON, DEFAULT_VECTOR_FONT_FILENAME, 30);
- container_->Add(titleLabel);
+ /*初始化label*/
+ InitLabel(DBPTitleLabel, 20, 66, 200, 60, "calibration", "收缩压", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitLabel(SBPTitleText, 240, 66, 200, 60, "calibration", "舒张压", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ InitUILabel(DBPText, 20, 120, 200, 60, "calibration", "---", DEFAULT_VECTOR_FONT_FILENAME, 50);
+ InitUILabel(SBPText, 240, 120, 200, 60, "calibration", "---", DEFAULT_VECTOR_FONT_FILENAME, 50);
+ InitUILabel(timeLabel, 133, 115, 200, 60, "calibration", "----/--/-- \n --:--", DEFAULT_VECTOR_FONT_FILENAME, 20);
+
+ InitImageView(BPImageView, 208, 10, 100, 100, "image_bp", image_bp);
+ InitImageView(BgWImageView, 0, -75, 100, 100, "image_bg_w", image_bg_w);
+ InitImageView(BgQImageView, 55, 196, 100, 100, "image_bg_q", image_bg_q);
+
+ InitButtonExt(CheckButton, 118, 336, 230, 80, CLICK_BLOOD_PRESSURE,STR_CHECK, 30);
+ CheckButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+ CheckButton->SetOnClickListener(presenter_);
+
+ DBPText->SetTextColor(Color::GetColorFromRGBA(0xFF, 0x35, 0x00, 0xFF));
+ SBPText->SetTextColor(Color::GetColorFromRGBA(0xFF, 0x35, 0x00, 0xFF));
+
+ container_->Add(DBPTitleLabel);
+ container_->Add(SBPTitleText);
+ container_->Add(DBPText);
+ container_->Add(SBPText);
+ container_->Add(timeLabel);
+ container_->Add(BPImageView);
+ container_->Add(BgWImageView);
+ container_->Add(BgQImageView);
+ container_->Add(CheckButton);
- /* -------------------------------------------------------------------------- */
- imageAnimator = new UIImageAnimatorView();
- if (imageAnimator == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPBandoffView::new UIImageAnimatorView fail");
- return false;
- }
- imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_blood, DETECTION_IMAGE_ANIMATORVIEW_SIZE, DETECTION_IMAGE_ANIMATORVIEW_SPEED);
- imageAnimator->SetRepeat(true);
- container_->Add(imageAnimator);
-
- /* -------------------------------------------------------------------------- */
- /*初始化血氧值label*/
- // InitUILabel(Spo2Text, 83, 83, 300, 300, "bloodtext", "--", GILROY_BOLD_FONT, 140);
- // container_->Add(Spo2Text);
-
- /* -------------------------------------------------------------------------- */
- InitButtonExt(testButton, 93, 330, 280, 90, STOPCHECK, STR_CHECKSTOP, 30);
- container_->Add(testButton);
-
- /* -------------------------------------------------------------------------- */
- UIView::OnClickListener *clickLeftListener = (UIView::OnClickListener *)OHOS::BPDetectionPresenter::GetInstance();
- if (clickLeftListener == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectionView::new clickLeftListener fail");
- return false;
- }
- testButton->SetOnClickListener(clickLeftListener);
- /* -------------------------------------------------------------------------- */
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectionViewInit is ok");
return true;
}
+
+ void BPDetectionView::UpdataText()
+ {
+ if(DBPText == nullptr || SBPText == nullptr || timeLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DBPText or SBPText or timeLabel is null");
+ return;
+ }
+ //获取时间更新时间
+ std::string timeStr = BPModel::GetInstance()->GetCurrentTimeStr();
+ timeLabel->SetText(timeStr.c_str());
+ //获取上一次检测数据 ? 待定
+
+ }
+
void BPDetectionView::OnStart()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectionView::OnStart");
if (!BPDetectionViewInit())
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectionView::InitBPView fail");
+ return;
}
- SetContainerView(container_);
container_->SetDraggable(true);
container_->SetTouchable(true);
container_->SetOnDragListener(presenter_);
// 增加按键监听
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::BPDetectionPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
}
void BPDetectionView::OnSetUpView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BPDetectionView::OnSetUpView");
View<BPDetectionPresenter>::OnSetUpView();
- if (imageAnimator != nullptr)
- {
- imageAnimator->Start();
- }
Draw();
}
void BPDetectionView::OnTearDownView()