增加界面与图片
authorxue <2144439972@qq.com>
Fri, 20 Jun 2025 10:30:26 +0000 (18:30 +0800)
committerxue <2144439972@qq.com>
Fri, 20 Jun 2025 10:30:26 +0000 (18:30 +0800)
47 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressAnalysisView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressFailView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMainView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMeasureView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressResultView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressUnderMeasureView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/include/StressWearView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressAnalysisView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressFailView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMainView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMeasureView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressResultView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressUnderMeasureView.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/stress/src/StressWearView.cpp [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_00.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_01.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_02.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_03.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_04.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_05.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_06.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_07.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_08.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_09.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_10.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_11.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_12.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_13.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_14.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_15.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_16.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_17.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_18.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_19.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_20.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_21.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_22.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_23.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_24.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_25.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_26.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_27.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_28.bin [new file with mode: 0644]
code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_29.bin [new file with mode: 0644]

index e9510d6..01f16ca 100644 (file)
@@ -499,7 +499,39 @@ namespace OHOS
     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";
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressAnalysisView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressAnalysisView.h
new file mode 100644 (file)
index 0000000..c91dcca
--- /dev/null
@@ -0,0 +1,44 @@
+/***
+ * @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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressFailView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressFailView.h
new file mode 100644 (file)
index 0000000..c28e8e0
--- /dev/null
@@ -0,0 +1,36 @@
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMainView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMainView.h
new file mode 100644 (file)
index 0000000..8b3d164
--- /dev/null
@@ -0,0 +1,60 @@
+
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMeasureView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressMeasureView.h
new file mode 100644 (file)
index 0000000..ba4d1b2
--- /dev/null
@@ -0,0 +1,38 @@
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressPresenter.h
new file mode 100644 (file)
index 0000000..1d996c0
--- /dev/null
@@ -0,0 +1,40 @@
+
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressResultView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressResultView.h
new file mode 100644 (file)
index 0000000..8f97fa3
--- /dev/null
@@ -0,0 +1,37 @@
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressUnderMeasureView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressUnderMeasureView.h
new file mode 100644 (file)
index 0000000..c54b34b
--- /dev/null
@@ -0,0 +1,38 @@
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressWearView.h b/code/sdk/application/wearable/fd230app/nativeui/stress/include/StressWearView.h
new file mode 100644 (file)
index 0000000..60ec5a0
--- /dev/null
@@ -0,0 +1,37 @@
+
+#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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressAnalysisView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressAnalysisView.cpp
new file mode 100644 (file)
index 0000000..3fcbed1
--- /dev/null
@@ -0,0 +1,113 @@
+/***
+ * @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;
+    }
+
+    
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressFailView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressFailView.cpp
new file mode 100644 (file)
index 0000000..19e60f2
--- /dev/null
@@ -0,0 +1,134 @@
+/***
+ * @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;
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMainView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMainView.cpp
new file mode 100644 (file)
index 0000000..edc4a4e
--- /dev/null
@@ -0,0 +1,259 @@
+/***
+ * @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();
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMeasureView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressMeasureView.cpp
new file mode 100644 (file)
index 0000000..514794f
--- /dev/null
@@ -0,0 +1,142 @@
+/***
+ * @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;
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressPresenter.cpp
new file mode 100644 (file)
index 0000000..d4027e8
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * 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
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressResultView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressResultView.cpp
new file mode 100644 (file)
index 0000000..7b243e1
--- /dev/null
@@ -0,0 +1,124 @@
+/***
+ * @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;
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressUnderMeasureView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressUnderMeasureView.cpp
new file mode 100644 (file)
index 0000000..bb4bf6b
--- /dev/null
@@ -0,0 +1,142 @@
+/***
+ * @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;
+    }
+
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressWearView.cpp b/code/sdk/application/wearable/fd230app/nativeui/stress/src/StressWearView.cpp
new file mode 100644 (file)
index 0000000..a034bce
--- /dev/null
@@ -0,0 +1,133 @@
+/***
+ * @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;
+    }
+
+}
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_00.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_00.bin
new file mode 100644 (file)
index 0000000..48462a3
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9d7604113bcc6b2e6a41be1f6478a094cc08e0c80eeff546f833a1b35b874d0
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_01.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_01.bin
new file mode 100644 (file)
index 0000000..a63b74b
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b3141f95a4b303bbda64e194faf90733bdadd8014bd06a060bbd59c30e8bf63
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_02.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_02.bin
new file mode 100644 (file)
index 0000000..ed13289
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed1564bb9b65f263c31abcb393d3f8b5088cef7561b0dd8cc3e51653feb8337a
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_03.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_03.bin
new file mode 100644 (file)
index 0000000..aaef3cc
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9d733af599d1a1e40c46c5dd89cfab4d3374b8e4666479ef3e0b2a47d6ab60c
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_04.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_04.bin
new file mode 100644 (file)
index 0000000..e7afbbe
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f3ef5265949c4db8513c2b97c6d0049708d72d24f28a0043a158cf0b070bb70
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_05.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_05.bin
new file mode 100644 (file)
index 0000000..41eb0f6
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:138db122c9c446b72b9219ceb4b195ffe7d75e711a62b87f651145aa5842b281
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_06.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_06.bin
new file mode 100644 (file)
index 0000000..687229f
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afd17edf81ab8b131b2da4154fb28aa29c98ec05e6c0b394df64dab217752851
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_07.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_07.bin
new file mode 100644 (file)
index 0000000..d7cbacd
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:48c32cd7213901a0d9e64ecc8af97e16390d53fea702590668b1e7b325c9eefa
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_08.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_08.bin
new file mode 100644 (file)
index 0000000..16dfb49
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f53b1f0b33c0ad392c21091091bcb9bb6e388a54bff085677a185c72d8c0a526
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_09.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_09.bin
new file mode 100644 (file)
index 0000000..3f860b9
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd1656c72d419ed44920387ec89efeae9ec301ac40a177e60e2c7d6617807424
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_10.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_10.bin
new file mode 100644 (file)
index 0000000..4a14d6e
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4cf3bf0805298cf4dcc7a0a3ae04d82096ca8d748271df94c881d6f3646a6854
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_11.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_11.bin
new file mode 100644 (file)
index 0000000..1795f10
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c3c89873225f9164bb4f9b7506ae35746831a24638825a8f00c095435e994c3
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_12.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_12.bin
new file mode 100644 (file)
index 0000000..948d474
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9051d128188af135bf752da137142cf97b16c7730acc755b47801ff3a639bb10
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_13.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_13.bin
new file mode 100644 (file)
index 0000000..4060620
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c6005ccf612332f6f868e452190225b73ab2f07bab03b4e0a6ebf80c033349b
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_14.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_14.bin
new file mode 100644 (file)
index 0000000..991a1c5
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4682ecec3f478bd9034f55750a54e5b72a77406defda95040367319fd2cd175b
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_15.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_15.bin
new file mode 100644 (file)
index 0000000..edb2612
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0ed40e565a4b205759331c0a354501f3a7f0bb1f2ca123437deebe6c299b7ef
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_16.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_16.bin
new file mode 100644 (file)
index 0000000..a0ed73c
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17581632c94085ebf3628bca6e2223ec3c825a531997f356d768b96c65b0c4dd
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_17.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_17.bin
new file mode 100644 (file)
index 0000000..021bcb8
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:adc9e9ba5f6ad16e7f218859726007dad5c89878330fa844521f5262dda42ea6
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_18.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_18.bin
new file mode 100644 (file)
index 0000000..c24fe24
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:50c57db19698bbeb0d400a544d089a507d8e13621eb9ac8ea62e043aad0352c3
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_19.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_19.bin
new file mode 100644 (file)
index 0000000..c206bf3
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0abfc64a1aaacf1cecbb54d4d4f2d650978333a99f5e1e67f5e4e2940a9bdcfa
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_20.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_20.bin
new file mode 100644 (file)
index 0000000..62c708e
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92b5526c3a1865abdd5638ca4f743166e83dc6055f7f57d82467a6b712fec5d8
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_21.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_21.bin
new file mode 100644 (file)
index 0000000..c25aed7
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c720ab4d3c10a36fa892c641366544d35465aa9ce416b38c44faa5461cb0be90
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_22.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_22.bin
new file mode 100644 (file)
index 0000000..ab66670
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2df31c1a6df966f79d738b1819cba8c4e1c7cb040ca0e8f60ec3293d9a60faf
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_23.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_23.bin
new file mode 100644 (file)
index 0000000..cf89274
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c84b27300bffd76a07a995780059141659cb5ff9cb982188efba0d9374388efb
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_24.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_24.bin
new file mode 100644 (file)
index 0000000..aa4c46e
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93577b43f89031ba0db09f26ec86f8a6afc7caf18cf97769b016c190984250cd
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_25.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_25.bin
new file mode 100644 (file)
index 0000000..548de22
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:40bb152d6c6caea8818591856e666965e95a09b45fbb788df9738bcfe343106e
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_26.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_26.bin
new file mode 100644 (file)
index 0000000..06b72c8
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bffab80ded7ec0a0849f5c85ee353fd95ad0828879aaaf880335efad8da1a3d
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_27.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_27.bin
new file mode 100644 (file)
index 0000000..c445750
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:73503ffa9f90324b1357c44d6d8d158d817ed18fdbef4fa92545e723005db978
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_28.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_28.bin
new file mode 100644 (file)
index 0000000..839ec59
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3487ce8c9384a8a29c0b22294c9b52da240e72a0922dc8269d143e12b7bb4056
+size 146040
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_29.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/w9/fs/user/res/Stress/Stress_GIF/analysis_29.bin
new file mode 100644 (file)
index 0000000..6492cdb
--- /dev/null
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:212ac5d9993e747307e95199bbd3aa645701cd4b6703c1da94de079359f70cb0
+size 146040