static constexpr const char *PNG_ECG_IMAGE_26 = APP_RES_PATH "/ECG/ECG_GIF/ECG_26.bin";
static constexpr const char *PNG_ECG_IMAGE_27 = APP_RES_PATH "/ECG/ECG_GIF/ECG_27.bin";
static constexpr const char *PNG_ECG_IMAGE_28 = APP_RES_PATH "/ECG/ECG_GIF/ECG_28.bin";
- static constexpr const char *PNG_ECG_IMAGE_29 = APP_RES_PATH "/ECG/ECG_GIF/ECG_29.bin";
+ static constexpr const char *PNG_ECG_IMAGE_29 = APP_RES_PATH "/ECG/ECG_GIF/ECG_29.bin";
+
+ /*压力,情绪,疲劳度动画 30张*/
+ static constexpr const char *PNG_STRESS_IMAGE_00 = APP_RES_PATH "/Stress/Stress_GIF/analysis_00.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_01 = APP_RES_PATH "/Stress/Stress_GIF/analysis_01.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_02 = APP_RES_PATH "/Stress/Stress_GIF/analysis_02.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_03 = APP_RES_PATH "/Stress/Stress_GIF/analysis_03.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_04 = APP_RES_PATH "/Stress/Stress_GIF/analysis_04.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_05 = APP_RES_PATH "/Stress/Stress_GIF/analysis_05.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_06 = APP_RES_PATH "/Stress/Stress_GIF/analysis_06.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_07 = APP_RES_PATH "/Stress/Stress_GIF/analysis_07.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_08 = APP_RES_PATH "/Stress/Stress_GIF/analysis_08.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_09 = APP_RES_PATH "/Stress/Stress_GIF/analysis_09.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_10 = APP_RES_PATH "/Stress/Stress_GIF/analysis_10.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_11 = APP_RES_PATH "/Stress/Stress_GIF/analysis_11.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_12 = APP_RES_PATH "/Stress/Stress_GIF/analysis_12.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_13 = APP_RES_PATH "/Stress/Stress_GIF/analysis_13.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_14 = APP_RES_PATH "/Stress/Stress_GIF/analysis_14.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_15 = APP_RES_PATH "/Stress/Stress_GIF/analysis_15.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_16 = APP_RES_PATH "/Stress/Stress_GIF/analysis_16.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_17 = APP_RES_PATH "/Stress/Stress_GIF/analysis_17.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_18 = APP_RES_PATH "/Stress/Stress_GIF/analysis_18.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_19 = APP_RES_PATH "/Stress/Stress_GIF/analysis_19.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_20 = APP_RES_PATH "/Stress/Stress_GIF/analysis_20.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_21 = APP_RES_PATH "/Stress/Stress_GIF/analysis_21.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_22 = APP_RES_PATH "/Stress/Stress_GIF/analysis_22.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_23 = APP_RES_PATH "/Stress/Stress_GIF/analysis_23.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_24 = APP_RES_PATH "/Stress/Stress_GIF/analysis_24.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_25 = APP_RES_PATH "/Stress/Stress_GIF/analysis_25.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_26 = APP_RES_PATH "/Stress/Stress_GIF/analysis_26.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_27 = APP_RES_PATH "/Stress/Stress_GIF/analysis_27.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_28 = APP_RES_PATH "/Stress/Stress_GIF/analysis_28.bin";
+ static constexpr const char *PNG_STRESS_IMAGE_29 = APP_RES_PATH "/Stress/Stress_GIF/analysis_29.bin";
/* -------------------------------------------------------------------------- */
static constexpr const char *PNG_ALIPAY_BIND_FAILURE = APP_RES_PATH "/alipay/ALIPAY_BIND_FAILURE.bin";
--- /dev/null
+/***
+ * @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/fd230app/nativeui/bloodoxygen/include/StressAnalysisViewView.cpp
+ */
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: StressAnalysisView view
+ * Author:
+ * Create: 2021-08-01
+ */
+
+#ifndef STRESS_ANALYSIS_VIEW_H
+#define STRESS_ANALYSIS_VIEW_H
+
+#include "View.h"
+#include "BaseView.h"
+#include "wearable_log.h"
+#include "UiConfig.h"
+
+#include "components/ui_image_animator.h"
+
+#define STOP_SOS "stop_sos"
+
+namespace OHOS
+{
+ class StressAnalysisViewView
+ {
+ public:
+ StressAnalysisViewView();
+ virtual ~StressAnalysisViewView();
+ static StressAnalysisViewView *GetInstance(void);
+
+ UIViewGroup *StressAnalysisViewInit();
+ UIImageAnimatorView *GetImageAnimator();
+
+ private:
+ UIImageAnimatorView *imageAnimator{nullptr};
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 血氧主界面
\ No newline at end of file
--- /dev/null
+#ifndef BP_STRESSFAIL_VIEW_H
+#define BP_STRESSFAIL_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
+{
+ static constexpr const char *FAILBUTTON = "FailButton"; // 开始测量按钮
+
+ class StressFailView
+ {
+ public:
+ StressFailView();
+ ~StressFailView();
+ static StressFailView *GetInstance();
+ UIViewGroup * StressFailInit();
+ void DeInit();
+ bool AddButton();
+ bool InitLable();
+ bool Initbackground();
+
+
+ private:
+ UIImageView *error = nullptr;
+ UILabelExt *titleLable = nullptr;
+ UILabelButton *checkButton{nullptr};
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 校准失败界面
\ No newline at end of file
--- /dev/null
+
+
+#ifndef Stress_MAIN_VIEW_H
+#define Stress_MAIN_VIEW_H
+
+#include "View.h"
+#include "BaseView.h"
+#include "components/ui_view_group.h"
+#include "stress/include/StressMeasureView.h"
+#include "stress/include/StressUnderMeasureView.h"
+#include "stress/include/StressResultView.h"
+#include "stress/include/StressWearView.h"
+#include "stress/include/StressFailView.h"
+#include "stress/include/StressResultView.h"
+
+namespace OHOS
+{
+ typedef enum : uint8_t
+ {
+ STRESSMEASUREVIEW = 0, // 压力测量界面
+ STRESSUNDERMEASUREVIEW, // 测量中界面
+ STRESSRESULTVIEW, // 测量结果界面
+ MAX_STRESSVIEW,
+ } StressVIEWID;
+
+ class StressPresenter;
+ class StressMainView : public View<StressPresenter>
+ {
+ public:
+ StressMainView();
+ virtual ~StressMainView();
+ static StressMainView *GetInstance(void);
+ void OnStop() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStart() override;
+
+ bool ChangeStressMeasureView(int16_t);
+ bool ChangeStressUnderMeasureView(int16_t);
+ bool ChangeStressResultView(int16_t);
+ bool ChangeStressWearView(int16_t);
+ bool ChangeStressFailView(int16_t);
+
+ bool ClickFunc(int16_t interface);
+ void ChangeView(int16_t hideView, int16_t showView);
+
+ private:
+ StressMeasureView *g_pStressMeasureView{nullptr};
+ StressUnderMeasureView *g_pStressUnderMeasureView{nullptr};
+ StressResultView *g_pStressResultView{nullptr};
+ StressFailView *g_pStressFailView{nullptr};
+ StressWearView *g_pStressWearView{nullptr};
+
+ private:
+ void DeInit();
+ UIViewGroup *group[MAX_STRESSVIEW]{nullptr};
+ };
+}
+
+#endif // 血压主界面
\ No newline at end of file
--- /dev/null
+
+#ifndef BP_STRESSMEASURE_VIEW_H
+#define BP_STRESSMEASURE_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
+{
+ static constexpr const char *STARTBUTTON = "startkButton"; // 开始测量按钮
+
+ class StressMeasureView
+ {
+ public:
+ StressMeasureView();
+ ~StressMeasureView();
+ static StressMeasureView *GetInstance();
+ UIViewGroup * StressMeasureInit();
+ void DeInit();
+ bool AddButton();
+ bool InitLable();
+ bool Initbackground();
+
+
+ private:
+ UIImageView *error = nullptr;
+ UILabelExt *titleLable = nullptr;
+ UILabelExt *resultremindLable = nullptr;
+ UILabelButton *checkButton{nullptr};
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 校准失败界面
\ No newline at end of file
--- /dev/null
+
+
+#ifndef Stress_RESULT_PRESENTER_H
+#define Stress_RESULT_PRESENTER_H
+
+#include "Presenter.h"
+#include "ModelListenerSample.h"
+#include "components/ui_circle_progress.h"
+#include "ohos_types.h"
+#include "KeyInputListener.h"
+#include "common/key_code.h"
+#include "stress/include/StressMainView.h"
+
+namespace OHOS
+{
+ class StressView;
+ class StressPresenter : public Presenter<StressView>,
+ public UIView::OnClickListener,
+ public RootView::OnKeyActListener,
+ public UIView::OnDragListener
+ {
+ public:
+ StressPresenter();
+ virtual ~StressPresenter();
+ static StressPresenter *GetInstance(void);
+
+ void OnStart() override;
+ void OnPause() override;
+ void OnResume() override;
+ void OnStop() override;
+
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+
+ };
+}
+
+#endif
--- /dev/null
+
+#ifndef BP_STRESSRESULT_VIEW_H
+#define BP_STRESSRESULT_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 StressResultView
+ {
+ public:
+ StressResultView();
+ ~StressResultView();
+ static StressResultView *GetInstance();
+ UIViewGroup * StressResultInit();
+ void DeInit();
+ bool AddButton();
+ bool InitLable();
+ bool Initbackground();
+
+
+ private:
+ UIImageView *error = nullptr;
+ UILabelExt *titleLable = nullptr;
+ UILabelExt *resultremindLable = nullptr;
+ UILabelExt *resultLable = nullptr;
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 校准失败界面
\ No newline at end of file
--- /dev/null
+
+#ifndef BP_StressUnderMeasureView_VIEW_H
+#define BP_StressUnderMeasureView_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
+{
+ static constexpr const char *UNDERBUTTON = "undermeasureButton"; // 开始测量按钮
+
+ class StressUnderMeasureView
+ {
+ public:
+ StressUnderMeasureView();
+ ~StressUnderMeasureView();
+ static StressUnderMeasureView *GetInstance();
+ UIViewGroup * StressUnderMeasureInit();
+ void DeInit();
+ bool AddButton();
+ bool InitLable();
+ bool Initbackground();
+
+
+ private:
+ UIImageView *error = nullptr;
+ UILabelExt *titleLable = nullptr;
+ UILabelExt *resultremindLable = nullptr;
+ UILabelButton *checkButton{nullptr};
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 校准失败界面
\ No newline at end of file
--- /dev/null
+
+#ifndef BP_STRESSWEAR_VIEW_H
+#define BP_STRESSWEAR_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
+{
+ static constexpr const char *WEARBUTTON = "WearButton"; // 开始测量按钮
+
+ class StressWearView
+ {
+ public:
+ StressWearView();
+ ~StressWearView();
+ static StressWearView *GetInstance();
+ UIViewGroup * StressWearInit();
+ void DeInit();
+ bool AddButton();
+ bool InitLable();
+ bool Initbackground();
+
+
+ private:
+ UIImageView *error = nullptr;
+ UILabelExt *titleLable = nullptr;
+ UILabelButton *checkButton{nullptr};
+ UIViewGroup *group{nullptr};
+ };
+}
+
+#endif // 校准失败界面
\ No newline at end of file
--- /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/StressAnalysisViewView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "bloodpressure/include/detection/StressPresenter.h"
+#include "bloodpressure/include/detection/StressAnalysisViewView.h"
+#include "bloodpressure/include/BPModel.h"
+namespace OHOS
+{
+ // 动态刷新设置
+ static constexpr uint16_t IMAGE_SIZE = 466;
+ static constexpr uint16_t IMAGE_POSITION_Y = 0;
+ static constexpr uint16_t IMAGE_POSITION_X = 0;
+ static constexpr uint16_t BP_SOS_IMAGE_SIZE = 30;
+ static constexpr uint16_t BP_SOS_IMAGE_SPEED = 40;
+
+ static ImageAnimatorInfo g_imageAnimatorInfo_blood[30] = {
+ {PNG_BP_SOS_IMAGE_01, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_02, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_03, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_04, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_05, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_06, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_07, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_08, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_09, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ {PNG_BP_SOS_IMAGE_30, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH},
+ };
+
+ static StressAnalysisViewView *g_pStressAnalysisViewView{nullptr};
+
+ StressAnalysisViewView::StressAnalysisViewView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressAnalysisViewView::StressAnalysisViewView");
+ g_pStressAnalysisViewView = this;
+ }
+ StressAnalysisViewView::~StressAnalysisViewView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressAnalysisViewView::~StressAnalysisViewView");
+ if(group)
+ {
+ group->RemoveAll();
+ if(imageAnimator)
+ {
+ imageAnimator->Stop();
+ delete imageAnimator;
+ imageAnimator = nullptr;
+ }
+ }
+ delete group;
+ group = nullptr;
+ g_pStressAnalysisViewView = nullptr;
+ }
+
+ StressAnalysisViewView *StressAnalysisViewView::GetInstance()
+ {
+ return g_pStressAnalysisViewView;
+ }
+
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressAnalysisViewView::StressAnalysisViewInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressAnalysisViewView::InitView()");
+ group = new UIViewGroup();
+ group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+
+ imageAnimator = new UIImageAnimatorView();
+ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_blood, BP_SOS_IMAGE_SIZE, BP_SOS_IMAGE_SPEED);
+ imageAnimator->SetRepeat(true);
+ group->Add(imageAnimator);
+
+
+
+ return group;
+ }
+
+ UIImageAnimatorView *StressAnalysisViewView::GetImageAnimator()
+ {
+ return imageAnimator;
+ }
+
+
+}
--- /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/stress/src/StressFailView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressFailView.h"
+namespace OHOS
+{
+ static StressFailView *g_pStressFailView{nullptr};
+ static const char *BPBACKPATH = "/user/res/BPCalibration/error.bin";
+
+ StressFailView::StressFailView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressFailView::StressFailView");
+ g_pStressFailView = this;
+ }
+ StressFailView::~StressFailView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressFailView::~StressFailView");
+ DeInit();
+ g_pStressFailView = nullptr;
+ }
+ StressFailView *StressFailView::GetInstance()
+ {
+ return g_pStressFailView;
+ }
+ void StressFailView::DeInit()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if (error != nullptr)
+ {
+ delete error;
+ error = nullptr;
+ }
+ if (titleLable != nullptr)
+ {
+ delete titleLable;
+ titleLable = nullptr;
+ }
+
+ if (checkButton != nullptr)
+ {
+ delete checkButton;
+ checkButton = nullptr;
+ }
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @description:
+ * @return 添加按键是否成功
+ */
+ bool StressFailView::AddButton()
+ {
+ InitLabelButton(checkButton, 124, 352, 217, 63, "errorcheckButton", "重新测量", 35);
+ checkButton->SetViewId(WEARBUTTON);
+ checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+ checkButton->SetTextColor(Color::White());
+ // 设置按键监听
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::StressPresenter::GetInstance();
+ checkButton->SetOnClickListener(clickListener);
+
+ group->Add(checkButton);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+ bool StressFailView::InitLable()
+ {
+
+ InitLabel(titleLable, 87, 85, 272, 45, "titleLable", "测量失败", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ /*初始化检测时间*/
+ group->Add(titleLable);
+
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+ bool StressFailView::Initbackground()
+ {
+ error = new UIImageView();
+ error->SetPosition(163, 170, 140, 140);
+ error->SetSrc(BPBACKPATH);
+ group->Add(error);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressFailView::StressFailInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressFailView::InitView()");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ if (!Initbackground())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ return nullptr;
+ };
+ if (!InitLable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ return nullptr;
+ };
+ if (!AddButton())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
+ return nullptr;
+ };
+ return group;
+ }
+
+}
--- /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/stress/src/StressMainView.cpp
+ */
+
+#include "common/image_cache_manager.h"
+#include "ui_resource_image.h"
+#include <ui_scroll_view.h>
+#include "components/ui_button.h"
+#include "MainViewSample.h"
+#include "components/ui_view_group.h"
+#include "DialModelSPO2.h"
+#include "DialModelHeartRate.h"
+
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
+#include "MainPresenterSample.h"
+
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressMainView.h"
+#include "wearable_log.h"
+namespace OHOS
+{
+ static StressMainView *g_pStressMainView{nullptr};
+
+ StressMainView::StressMainView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StressMainView::StressMainView");
+ g_pStressMainView = this;
+ }
+
+ StressMainView::~StressMainView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StressMainView::~StressMainView");
+ DeInit();
+ g_pStressMainView = nullptr;
+ }
+
+ StressMainView *StressMainView::GetInstance()
+ {
+ return g_pStressMainView;
+ }
+
+ void StressMainView::DeInit()
+ {
+
+ if (g_pStressMeasureView)
+ {
+ delete g_pStressMeasureView;
+ g_pStressMeasureView = nullptr;
+ }
+ if (g_pStressUnderMeasureView)
+ {
+ delete g_pStressUnderMeasureView;
+ g_pStressUnderMeasureView = nullptr;
+ }
+ if (g_pStressResultView)
+ {
+ delete g_pStressResultView;
+ g_pStressResultView = nullptr;
+ }
+ }
+
+ void StressMainView::OnStart()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StressMainView::OnStart");
+ View<StressPresenter>::OnStart();
+ SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+ return;
+ }
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ container_->SetDraggable(true);
+ container_->SetTouchable(true);
+ container_->SetOnDragListener(presenter_);
+
+ ChangeView(MAX_STRESSVIEW, STRESSMEASUREVIEW); // 切换到第一个界面
+
+ // 增加按键监听
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::StressPresenter::GetInstance();
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ }
+ void StressMainView::OnSetUpView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMainView::OnSetUpView");
+ View<StressPresenter>::OnSetUpView();
+ Draw();
+ }
+ void StressMainView::OnTearDownView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMainView::OnTearDownView");
+ View<StressPresenter>::OnTearDownView();
+ return;
+ }
+
+ void StressMainView::OnStop()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMainView::OnStop");
+ View<StressPresenter>::OnStop();
+ if (container_ != nullptr)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
+ return;
+ }
+
+ bool StressMainView::ChangeStressMeasureView(int16_t thisView)
+ {
+ // 检查视图是否已初始化
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stressView::ChangeStressMeasureView");
+ g_pStressMeasureView = new StressMeasureView();
+ if (g_pStressMeasureView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stressView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pStressMeasureView->StressMeasureInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
+ bool StressMainView::ChangeStressUnderMeasureView(int16_t thisView)
+ {
+ // 检查视图是否已初始化
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stressView::ChangeStressUnderMeasureView");
+ g_pStressUnderMeasureView = new StressUnderMeasureView();
+ if (g_pStressUnderMeasureView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stressView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pStressUnderMeasureView->StressUnderMeasureInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
+ bool StressMainView::ChangeStressResultView(int16_t thisView)
+ {
+ // 检查视图是否已初始化
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stressView::ChangeStressResultView");
+ g_pStressResultView = new StressResultView();
+ if (g_pStressResultView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stressView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pStressResultView->StressResultInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
+ bool StressMainView::ChangeStressWearView(int16_t thisView)
+ {
+ // 检查视图是否已初始化
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stressView::ChangeStressWearView");
+ g_pStressWearView = new StressWearView();
+ if (g_pStressWearView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stressView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pStressWearView->StressWearInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
+ bool StressMainView::ChangeStressFailView(int16_t thisView)
+ {
+ // 检查视图是否已初始化
+ if (group[thisView] == nullptr)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "stressView::ChangeStressResultView");
+ g_pStressFailView = new StressFailView();
+ if (g_pStressFailView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "stressView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ // 初始化视图并添加到视图组
+ group[thisView] = g_pStressFailView->StressFailInit();
+ container_->Add(group[thisView]);
+ }
+ return true;
+ }
+
+ /**
+ * 视图映射结构体 - 将视图ID映射到对应的视图切换函数
+ */
+ struct StressViewMapper
+ {
+ const int16_t viewId; // 视图ID
+ bool (StressMainView::*func)(int16_t); // 对应的视图切换函数指针
+ };
+
+ static const StressViewMapper ViewMapper[] = {
+ {STRESSMEASUREVIEW, &StressMainView::ChangeStressMeasureView},
+ {STRESSUNDERMEASUREVIEW, &StressMainView::ChangeStressUnderMeasureView},
+
+ };
+
+ bool StressMainView::ClickFunc(int16_t interface)
+ {
+ int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);
+
+ for (int i = 0; i < funcSize; i++)
+ {
+ if (interface == ViewMapper[i].viewId)
+ {
+ bool jug = (this->*(ViewMapper[i].func))(interface);
+ if (jug == false)
+ {
+ return false;
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ void StressMainView::ChangeView(int16_t hideView, int16_t showView)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMainView::ChangeView");
+ if (hideView > MAX_STRESSVIEW)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "StressMainView:: SystemViewId Overstep ones bounds");
+ return;
+ }
+ if (hideView != MAX_STRESSVIEW)
+ {
+ if (group[hideView] == nullptr)
+ {
+ return;
+ }
+ group[hideView]->SetVisible(false);
+ }
+ ClickFunc(showView);
+ group[showView]->SetVisible(true);
+ container_->Invalidate();
+ }
+
+}
--- /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/stress/src/StressMeasureView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressMeasureView.h"
+namespace OHOS
+{
+ static StressMeasureView *g_pStressMeasureView{nullptr};
+ static const char *BPBACKPATH = "/user/res/BPCalibration/J3.bin";
+
+ StressMeasureView::StressMeasureView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMeasureView::StressMeasureView");
+ g_pStressMeasureView = this;
+ }
+ StressMeasureView::~StressMeasureView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressMeasureView::~StressMeasureView");
+ DeInit();
+ g_pStressMeasureView = nullptr;
+ }
+ StressMeasureView *StressMeasureView::GetInstance()
+ {
+ return g_pStressMeasureView;
+ }
+ void StressMeasureView::DeInit()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if (error != nullptr)
+ {
+ delete error;
+ error = nullptr;
+ }
+ if (titleLable != nullptr)
+ {
+ delete titleLable;
+ titleLable = nullptr;
+ }
+ if (resultremindLable != nullptr)
+ {
+ delete resultremindLable;
+ resultremindLable = nullptr;
+ }
+ if (checkButton != nullptr)
+ {
+ delete checkButton;
+ checkButton = nullptr;
+ }
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @description:
+ * @return 添加按键是否成功
+ */
+ bool StressMeasureView::AddButton()
+ {
+ InitLabelButton(checkButton, 124, 352, 217, 63, "errorcheckButton", "测量", 35);
+ checkButton->SetViewId(STARTBUTTON);
+ checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffff7a22); // 设置按键颜色
+ checkButton->SetTextColor(Color::White());
+ // 设置按键监听
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::StressPresenter::GetInstance();
+ checkButton->SetOnClickListener(clickListener);
+
+ group->Add(checkButton);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+ bool StressMeasureView::InitLable()
+ {
+
+ InitLabel(titleLable, 200, 30, 70, 45, "titleLable", "压力", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ InitLabel(resultremindLable, 68, 211, 337, 100, "resultremindLable", "---", DEFAULT_VECTOR_FONT_FILENAME, 100);
+ resultremindLable->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ resultremindLable->SetTextColor(Color::White());
+ /*初始化检测时间*/
+ group->Add(titleLable);
+ group->Add(resultremindLable);
+
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+ bool StressMeasureView::Initbackground()
+ {
+ error = new UIImageView();
+ error->SetPosition(145, 75, 200, 200);
+ error->SetSrc(BPBACKPATH);
+ group->Add(error);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressMeasureView::StressMeasureInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressMeasureView::InitView()");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ if (!Initbackground())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ return nullptr;
+ };
+ if (!InitLable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ return nullptr;
+ };
+ if (!AddButton())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
+ return nullptr;
+ };
+ return group;
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: bloodOxygen view
+ * Author:
+ * Create: 2021-08-01
+ */
+
+#include "stress/include/StressPresenter.h"
+#include "common/task_manager.h"
+
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+
+#include "ChangeSliceListener.h"
+#include "broadcast_service.h"
+#include <fstream>
+#include "iostream"
+#include <sstream>
+#include <string>
+#include <cstdlib>
+#include <ctime>
+#include "wearable_log.h"
+#include "cmsis_os.h"
+#include "securec.h"
+#include "broadcast_service.h"
+#include "graphic_service.h"
+#include <chrono>
+#include <thread>
+#include <sys/time.h>
+
+#include "ppg_service.h"
+#include "displaybrightness/include/DisplayBrightnessModel.h"
+#include "power_display_service.h"
+#include "custom_utils.h"
+#include "cywee_service.h"
+#include "battery_hal.h"
+
+#include "gfx_utils/mem_check.h"
+#include "map"
+
+#define StressKEYABLE 1
+namespace OHOS
+{
+ static constexpr uint16_t PROGRESS_VALUE_MIN = 0;
+ static constexpr uint16_t PROGRESS_VALUE_MAX = 10;
+ static int16_t passflag = 0; // 第几次校准成功标志位
+
+ static StressPresenter *g_pStressPresenter;
+ /* -------------------------------------------------------------------------- */
+ StressPresenter::StressPresenter()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressPresenter::new StressPresenter");
+ g_pStressPresenter = this;
+#ifdef MEM_CHECK
+ MemCheck::GetInstance()->EnableLeakCheck(true);
+#endif
+ }
+ StressPresenter::~StressPresenter()
+ {
+ g_pStressPresenter = nullptr;
+#ifdef MEM_CHECK
+ MemCheck::GetInstance()->EnableLeakCheck(false);
+#endif
+ }
+ StressPresenter *StressPresenter::GetInstance()
+ {
+ return g_pStressPresenter;
+ }
+ void StressPresenter::OnStart()
+ {
+ Presenter<StressView>::OnStart();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressPresenter::On Start ");
+ }
+ void StressPresenter::OnPause(void) {}
+
+ void StressPresenter::OnResume(void) {}
+
+ void StressPresenter::OnStop(void)
+ {
+
+ }
+
+ bool StressPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ return true;
+ }
+ bool StressPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+ {
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ return true;
+ }
+ return false;
+ }
+ bool StressPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ unsigned short keyID = event.GetKeyId();
+ unsigned short keyState = event.GetState();
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) &&
+ keyState == 1 && uapi_get_screen_state() == 0)
+ {
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
+ }
+ return true;
+ }
+
+ bool StressPresenter::OnClick(UIView &view, const ClickEvent &event)
+ {
+
+ std::string viewId = view.GetViewId();
+
+ std::map<std::string, std::pair<int16_t, int16_t>> viewIdMap = {
+ {STARTBUTTON, {STRESSMEASUREVIEW, STRESSUNDERMEASUREVIEW}},
+ {UNDERBUTTON, {STRESSMEASUREVIEW, STRESSUNDERMEASUREVIEW}},
+
+ };
+ auto it = viewIdMap.find(viewId);
+ if (it != viewIdMap.end())
+ {
+ StressMainView::GetInstance()->ChangeView(it->second.first, it->second.second);
+ return true;
+ }
+ return true;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressPresenter::OnClick");
+ }
+
+}
\ No newline at end of file
--- /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/stress/src/StressResultView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressResultView.h"
+namespace OHOS
+{
+ static StressResultView *g_pStressResultView{nullptr};
+ static const char *BPBACKPATH = "/user/res/BPCalibration/J3.bin";
+
+ StressResultView::StressResultView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressResultView::StressResultView");
+ g_pStressResultView = this;
+ }
+ StressResultView::~StressResultView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressResultView::~StressResultView");
+ DeInit();
+ g_pStressResultView = nullptr;
+ }
+ StressResultView *StressResultView::GetInstance()
+ {
+ return g_pStressResultView;
+ }
+ void StressResultView::DeInit()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if (error != nullptr)
+ {
+ delete error;
+ error = nullptr;
+ }
+ if (titleLable != nullptr)
+ {
+ delete titleLable;
+ titleLable = nullptr;
+ }
+ if (resultremindLable != nullptr)
+ {
+ delete resultremindLable;
+ resultremindLable = nullptr;
+ }
+ if (resultLable != nullptr)
+ {
+ delete resultLable;
+ resultLable = nullptr;
+ }
+
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+ bool StressResultView::InitLable()
+ {
+
+ InitLabel(titleLable, 200, 30, 70, 45, "titleLable", "压力", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ InitLabel(resultremindLable, 68, 211, 337, 100, "resultremindLable", "30", DEFAULT_VECTOR_FONT_FILENAME, 100);
+ resultremindLable->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ resultremindLable->SetTextColor(Color::White());
+ InitLabel(resultLable, 200, 352, 337, 45, "resultremindLable", "正常", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ /*初始化检测时间*/
+ group->Add(titleLable);
+ group->Add(resultremindLable);
+ group->Add(resultLable);
+
+
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+ bool StressResultView::Initbackground()
+ {
+ error = new UIImageView();
+ error->SetPosition(145, 75, 200, 200);
+ error->SetSrc(BPBACKPATH);
+ group->Add(error);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressResultView::StressResultInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressResultView::InitView()");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ if (!Initbackground())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ return nullptr;
+ };
+ if (!InitLable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ return nullptr;
+ };
+ return group;
+ }
+
+}
--- /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/stress/src/StressUnderMeasureView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressUnderMeasureView.h"
+namespace OHOS
+{
+ static StressUnderMeasureView *g_pStressUnderMeasureView{nullptr};
+ static const char *BPBACKPATH = "/user/res/BPCalibration/J3.bin";
+
+ StressUnderMeasureView::StressUnderMeasureView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressUnderMeasureView::StressUnderMeasureView");
+ g_pStressUnderMeasureView = this;
+ }
+ StressUnderMeasureView::~StressUnderMeasureView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressUnderMeasureView::~StressUnderMeasureView");
+ DeInit();
+ g_pStressUnderMeasureView = nullptr;
+ }
+ StressUnderMeasureView *StressUnderMeasureView::GetInstance()
+ {
+ return g_pStressUnderMeasureView;
+ }
+ void StressUnderMeasureView::DeInit()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if (error != nullptr)
+ {
+ delete error;
+ error = nullptr;
+ }
+ if (titleLable != nullptr)
+ {
+ delete titleLable;
+ titleLable = nullptr;
+ }
+ if (resultremindLable != nullptr)
+ {
+ delete resultremindLable;
+ resultremindLable = nullptr;
+ }
+ if (checkButton != nullptr)
+ {
+ delete checkButton;
+ checkButton = nullptr;
+ }
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @description:
+ * @return 添加按键是否成功
+ */
+ bool StressUnderMeasureView::AddButton()
+ {
+ InitLabelButton(checkButton, 124, 352, 217, 63, "errorcheckButton", "测量中", 35);
+ checkButton->SetViewId(UNDERBUTTON);
+ checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffff7a22); // 设置按键颜色
+ checkButton->SetTextColor(Color::White());
+ // 设置按键监听
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::StressPresenter::GetInstance();
+ checkButton->SetOnClickListener(clickListener);
+
+ group->Add(checkButton);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+ bool StressUnderMeasureView::InitLable()
+ {
+
+ InitLabel(titleLable, 200, 30, 70, 45, "titleLable", "压力", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ InitLabel(resultremindLable, 68, 211, 337, 100, "resultremindLable", "---", DEFAULT_VECTOR_FONT_FILENAME, 100);
+ resultremindLable->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ resultremindLable->SetTextColor(Color::White());
+ /*初始化检测时间*/
+ group->Add(titleLable);
+ group->Add(resultremindLable);
+
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+ bool StressUnderMeasureView::Initbackground()
+ {
+ error = new UIImageView();
+ error->SetPosition(145, 75, 111, 118);
+ error->SetSrc(BPBACKPATH);
+ group->Add(error);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressUnderMeasureView::StressUnderMeasureInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressUnderMeasureView::InitView()");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ if (!Initbackground())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ return nullptr;
+ };
+ if (!InitLable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ return nullptr;
+ };
+ if (!AddButton())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
+ return nullptr;
+ };
+ return group;
+ }
+
+}
--- /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/stress/src/StressWearView.cpp
+ */
+
+#include "ui_resource_image.h"
+#include "UiConfig.h"
+#include "wearable_log.h"
+#include "uicomponents/UIComponents.h"
+#include "stress/include/StressPresenter.h"
+#include "stress/include/StressWearView.h"
+namespace OHOS
+{
+ static StressWearView *g_pStressWearView{nullptr};
+ static const char *BPBACKPATH = "/user/res/BPCalibration/error.bin";
+
+ StressWearView::StressWearView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressWearView::StressWearView");
+ g_pStressWearView = this;
+ }
+ StressWearView::~StressWearView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "StressWearView::~StressWearView");
+ DeInit();
+ g_pStressWearView = nullptr;
+ }
+ StressWearView *StressWearView::GetInstance()
+ {
+ return g_pStressWearView;
+ }
+ void StressWearView::DeInit()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ }
+ if (error != nullptr)
+ {
+ delete error;
+ error = nullptr;
+ }
+ if (titleLable != nullptr)
+ {
+ delete titleLable;
+ titleLable = nullptr;
+ }
+ if (checkButton != nullptr)
+ {
+ delete checkButton;
+ checkButton = nullptr;
+ }
+ }
+ /* -------------------------------------------------------------------------- */
+ /***
+ * @description:
+ * @return 添加按键是否成功
+ */
+ bool StressWearView::AddButton()
+ {
+ InitLabelButton(checkButton, 124, 352, 217, 63, "errorcheckButton", "重新测量", 35);
+ checkButton->SetViewId(WEARBUTTON);
+ checkButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+ checkButton->SetTextColor(Color::White());
+ // 设置按键监听
+ UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::StressPresenter::GetInstance();
+ checkButton->SetOnClickListener(clickListener);
+
+ group->Add(checkButton);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化标签是否成功
+ */
+ bool StressWearView::InitLable()
+ {
+
+ InitLabel(titleLable, 87, 85, 272, 45, "titleLable", "请正确佩戴手表检测", DEFAULT_VECTOR_FONT_FILENAME, 35);
+ /*初始化检测时间*/
+ group->Add(titleLable);
+
+ return true;
+ }
+ /***
+ * @description:
+ * @return 初始化背景是否成功
+ */
+ bool StressWearView::Initbackground()
+ {
+ error = new UIImageView();
+ error->SetPosition(163, 170, 140, 140);
+ error->SetSrc(BPBACKPATH);
+ group->Add(error);
+ return true;
+ }
+ /***
+ * @description:
+ * @return 是否初始化成功
+ */
+ UIViewGroup *StressWearView::StressWearInit()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool StressWearView::InitView()");
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmPopUpView::group null!");
+ return nullptr;
+ }
+ group->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ if (!Initbackground())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
+ return nullptr;
+ };
+ if (!InitLable())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLable error!");
+ return nullptr;
+ };
+ if (!AddButton())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
+ return nullptr;
+ };
+ return group;
+ }
+
+}
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9d7604113bcc6b2e6a41be1f6478a094cc08e0c80eeff546f833a1b35b874d0
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b3141f95a4b303bbda64e194faf90733bdadd8014bd06a060bbd59c30e8bf63
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed1564bb9b65f263c31abcb393d3f8b5088cef7561b0dd8cc3e51653feb8337a
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9d733af599d1a1e40c46c5dd89cfab4d3374b8e4666479ef3e0b2a47d6ab60c
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f3ef5265949c4db8513c2b97c6d0049708d72d24f28a0043a158cf0b070bb70
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:138db122c9c446b72b9219ceb4b195ffe7d75e711a62b87f651145aa5842b281
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:afd17edf81ab8b131b2da4154fb28aa29c98ec05e6c0b394df64dab217752851
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:48c32cd7213901a0d9e64ecc8af97e16390d53fea702590668b1e7b325c9eefa
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:f53b1f0b33c0ad392c21091091bcb9bb6e388a54bff085677a185c72d8c0a526
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd1656c72d419ed44920387ec89efeae9ec301ac40a177e60e2c7d6617807424
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:4cf3bf0805298cf4dcc7a0a3ae04d82096ca8d748271df94c881d6f3646a6854
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c3c89873225f9164bb4f9b7506ae35746831a24638825a8f00c095435e994c3
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:9051d128188af135bf752da137142cf97b16c7730acc755b47801ff3a639bb10
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c6005ccf612332f6f868e452190225b73ab2f07bab03b4e0a6ebf80c033349b
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:4682ecec3f478bd9034f55750a54e5b72a77406defda95040367319fd2cd175b
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0ed40e565a4b205759331c0a354501f3a7f0bb1f2ca123437deebe6c299b7ef
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:17581632c94085ebf3628bca6e2223ec3c825a531997f356d768b96c65b0c4dd
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:adc9e9ba5f6ad16e7f218859726007dad5c89878330fa844521f5262dda42ea6
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:50c57db19698bbeb0d400a544d089a507d8e13621eb9ac8ea62e043aad0352c3
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:0abfc64a1aaacf1cecbb54d4d4f2d650978333a99f5e1e67f5e4e2940a9bdcfa
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:92b5526c3a1865abdd5638ca4f743166e83dc6055f7f57d82467a6b712fec5d8
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:c720ab4d3c10a36fa892c641366544d35465aa9ce416b38c44faa5461cb0be90
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2df31c1a6df966f79d738b1819cba8c4e1c7cb040ca0e8f60ec3293d9a60faf
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:c84b27300bffd76a07a995780059141659cb5ff9cb982188efba0d9374388efb
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:93577b43f89031ba0db09f26ec86f8a6afc7caf18cf97769b016c190984250cd
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:40bb152d6c6caea8818591856e666965e95a09b45fbb788df9738bcfe343106e
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bffab80ded7ec0a0849f5c85ee353fd95ad0828879aaaf880335efad8da1a3d
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:73503ffa9f90324b1357c44d6d8d158d817ed18fdbef4fa92545e723005db978
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:3487ce8c9384a8a29c0b22294c9b52da240e72a0922dc8269d143e12b7bb4056
+size 146040
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:212ac5d9993e747307e95199bbd3aa645701cd4b6703c1da94de079359f70cb0
+size 146040