From 96b2ca2d266f7e83daf1046214e3163df1cd752a Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=A2=81=E6=B8=85=E6=A2=A6?= <3449750381@qq.com> Date: Tue, 17 Jun 2025 11:25:13 +0000 Subject: [PATCH] Merge #1853 into sdk602patch0911 from refs/changes/1853/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 袁清梦 * refs/changes/1853/head: (7 commits squashed) - 删除applist不需要的应用 - 关闭错误宏 - 修改血压检测Slice位置 - Merge branch 'sdk602patch0911' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911 - 增加血压到达预警值界面 - 增加血压检测失败UI - 修改检测失败退出逻辑 Signed-off-by: Caisking <3449750381@qq.com> Reviewed-by: Caisking <3449750381@qq.com> Reviewed-by: 罗正 <1732036298@qq.com> Reviewed-by: aliyun8003852482 <1224667075@qq.com> Reviewed-by: snickersun@163.com Reviewed-by: aliyun6865282430 <1624952103@qq.com> Reviewed-by: 薛文强 Merged-by: Caisking <3449750381@qq.com> CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1853 --- .../wearable/fd230app/CMakeLists.txt | 2 + .../include/detection/BPDetectErrorView.h | 39 +++++ .../include/detection/BPDetectFailView.h | 35 +++++ .../include/detection/BPDetectionView.h | 15 +- .../nativeui/bloodpressure/src/BPModel.cpp | 17 ++- .../src/detection/BPDetectErrorView.cpp | 137 ++++++++++++++++++ .../src/detection/BPDetectFailView.cpp | 90 ++++++++++++ .../src/detection/BPDetectionPresenter.cpp | 20 ++- .../src/detection/BPDetectionView.cpp | 55 +++++++ 9 files changed, 402 insertions(+), 8 deletions(-) create mode 100644 code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h create mode 100644 code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp create mode 100644 code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index f353a939c..e65e91a2b 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -242,6 +242,8 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectSOSView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectBeginView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectEndView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPCalPosReqView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodpressure/src/BPLastCalibrationTimeView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectErrorView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectErrorView.h index e69de29bb..616585d18 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectErrorView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectErrorView.h @@ -0,0 +1,39 @@ + +#ifndef BP_DetectError_VIEW_H +#define BP_DetectError_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 BPDetectErrorView + { + public: + BPDetectErrorView(); + ~BPDetectErrorView(); + static BPDetectErrorView *GetInstance(); + UIViewGroup * BPDetectErrorInit(); + + + void UpdateText(); + + private: + UIImageView *background = nullptr; + + UILabelExt *notelabel = nullptr; + UILabelExt *alertlabel = nullptr; + UILabelExt *titlelabel = nullptr; + UILabelExt *soslabel = nullptr; + UILabelExt *exitlabel = nullptr; + + UIViewGroup *group{nullptr}; + }; +} + +#endif // 血压主界面 \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h new file mode 100644 index 000000000..2bc9e4078 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectFailView.h @@ -0,0 +1,35 @@ + +#ifndef BP_DetectFial_VIEW_H +#define BP_DetectFial_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_label_ext.h" +#include "components/ui_button.h" +#include "components/ui_label_button.h" +#include "components/ui_view_group.h" +#include "components/ui_scroll_view.h" +#include "components/ui_label_button_ext.h" +namespace OHOS +{ + + class BPDetectFailView + { + public: + BPDetectFailView(); + ~BPDetectFailView(); + static BPDetectFailView *GetInstance(); + UIViewGroup * BPDetectFailInit(); + + + void UpdateText(); + + private: + UIImageView *icon_fail = nullptr; + UILabelExt *titlefail = nullptr; + UILabelButtonExt *ReCheckButton{nullptr}; + + UIViewGroup *group{nullptr}; + }; +} + +#endif // 血压主界面 \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h index 469a4b818..640d75461 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/include/detection/BPDetectionView.h @@ -34,9 +34,14 @@ #include "bloodpressure/include/detection/BPDetectSOSView.h" #include "bloodpressure/include/detection/BPDetectBeginView.h" #include "bloodpressure/include/detection/BPDetectEndView.h" +#include "bloodpressure/include/detection/BPDetectErrorView.h" +#include "bloodpressure/include/detection/BPDetectFailView.h" #define CLICK_BLOOD_PRESSURE "click_bloodpressure" #define RE_CLICK_BLOOD_PRESSURE "re_click_bloodpressure" +#define BP_SOS_CLICK "sos_click" +#define EXIE_CLICK "exit_click" +#define RE_CLICK_FAIL "re_click_fail" namespace OHOS { @@ -49,10 +54,12 @@ typedef enum : uint8_t { UNDER_CALIBRATION_BPVIEW, //结果界面 RESULT_BPVIEW, - //检测异常界面 - CALIBRATION_EXCEPTION_BPVIEW, + //预警值界面 + ERROR_BPVIEW, //sos求救界面 SOS_BPVIEW, + //测量失败界面 + FAIL_BPVIEW, MAX_BPDECETVIEW, } BPDETECTVIEWID; @@ -78,6 +85,8 @@ public: bool ChangeBPDetectSOSView(int16_t thisView); bool ChangeBPDetectBeginView(int16_t thisView); bool ChangeBPDetectEndView(int16_t thisView); + bool ChangeBPDetectErrorView(int16_t thisView); + bool ChangeBPDetectFailView(int16_t thisView); private: UIViewGroup *group[MAX_BPDECETVIEW]{nullptr}; @@ -85,6 +94,8 @@ private: BPDetectSOSView *g_pBPDetectSOSView = nullptr; BPDetectBeginView *g_pBPDetectBeginView = nullptr; BPDetectEndView *g_pBPDetectEndView = nullptr; + BPDetectErrorView *g_pBPDetectErrorView = nullptr; + BPDetectFailView *g_pBPDetectFailView = nullptr; }; diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp index d78783ed4..07fccb154 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp @@ -106,6 +106,7 @@ void BPModel::BP_Control(BPState state) break; } case BPState::BP_DETECTING: + { /* 开启定时器 开启传感器 @@ -113,7 +114,12 @@ void BPModel::BP_Control(BPState state) */ BP_StartTimer(); ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);//后期 周期被动状态 需要做区别 + + if(Time != BP_CHECK_TIME_MAX) + Time = BP_CHECK_TIME_MAX;//重置时间 + break; + } case BPState::BP_CALIBRATING_FIRSTTIME: break; case BPState::BP_CALIBRATING_SECONDTIME: @@ -140,15 +146,16 @@ static void BP_TimerCallbackProc(int data) { { BPModel::GetInstance()->BP_StopTimer(); BPModel::GetInstance()->BP_SetState(BPState::BP_NORMAL); - BPMainView* mainView = BPMainView::GetInstance(); - if (mainView) + if (BPMainView::GetInstance()) { - mainView->ChangeView(BPUNDERCALIBRATIONVIEW, BPVALUEVIEW); + BPMainView::GetInstance()->ChangeView(BPUNDERCALIBRATIONVIEW, BPVALUEVIEW); } else if (BPDetectionView::GetInstance()) { - //到达结果界面 - BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, RESULT_BPVIEW); + //测试成功 -> 进入结果界面 + // BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, RESULT_BPVIEW); + //测试失败 -> 进入错误界面 + BPDetectionView::GetInstance()->ChangeView(CALIBRATION_BPVIEW, ERROR_BPVIEW); } return; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp new file mode 100644 index 000000000..6b1ed91c8 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectErrorView.cpp @@ -0,0 +1,137 @@ +/*** + * @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/BPDetectErrorView.cpp + */ + +#include "ui_resource_image.h" +#include "UiConfig.h" +#include "wearable_log.h" +#include "uicomponents/UIComponents.h" +#include "bloodpressure/include/detection/BPDetectionPresenter.h" +#include "bloodpressure/include/detection/BPDetectErrorView.h" +#include "bloodpressure/include/BPModel.h" +namespace OHOS +{ + static BPDetectErrorView *g_pBPDetectErrorView{nullptr}; + static const char* image_bp = "/user/res/BPCalibration/error_bg.bin"; + + BPDetectErrorView::BPDetectErrorView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectErrorView::BPDetectErrorView"); + g_pBPDetectErrorView = this; + } + BPDetectErrorView::~BPDetectErrorView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectErrorView::~BPDetectErrorView"); + if(group) + { + group->RemoveAll(); + if(background) + { + delete background; + background = nullptr; + } + if(titlelabel) + { + delete titlelabel; + titlelabel = nullptr; + } + if(alertlabel) + { + delete alertlabel; + alertlabel = nullptr; + } + if(notelabel) + { + delete notelabel; + notelabel = nullptr; + } + if(soslabel) + { + delete soslabel; + soslabel = nullptr; + } + if(exitlabel) + { + delete exitlabel; + exitlabel = nullptr; + } + } + delete group; + group = nullptr; + g_pBPDetectErrorView = nullptr; + } + + BPDetectErrorView *BPDetectErrorView::GetInstance() + { + return g_pBPDetectErrorView; + } + + void BPDetectErrorView::UpdateText() + { + if(titlelabel == nullptr ||alertlabel ==nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectErrorView::UpdateText titlelabel or alertlabel is nullptr"); + return; + } + //进行label更新 需要判断是什么警报 + /* + //if(错误判断) + { + titlelabel->SetText("收缩压偏高"); + } + else + { + titlelabel->SetText("舒张压偏低"); + } + + //预警值拼接 + uint8_t systolic = 0; + systolic = BPModel::GetInstance()->GetSystolic(); + alertlabel->SetText("预警值:" + (std::to_string(systolic).c_str())); + */ + } + + /*** + * @description: + * @return 是否初始化成功 + */ + UIViewGroup *BPDetectErrorView::BPDetectErrorInit() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool BPDetectErrorView::InitView()"); + group = new UIViewGroup(); + group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + + InitImageView(background, 0, 0, 466, 466, "image_bp", image_bp); + group->Add(background); + + /*初始化label*/ + InitLabel(titlelabel, 133, 57, 200, 60, "titlelabel", "收缩压偏高", DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(alertlabel, 133, 115, 200, 60, "alertlabel", "预警值:120", DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(notelabel, 58, 180, 350, 150, "notelabel", "血压达到预警值,请密切关注 自身情况,如有不适或必要时, 请询问医生。", DEFAULT_VECTOR_FONT_FILENAME, 26); + + InitLabel(soslabel, 54, 366, 200, 60, BP_SOS_CLICK, "SOS", DEFAULT_VECTOR_FONT_FILENAME, 30); + InitLabel(exitlabel, 215, 366, 200, 60, EXIE_CLICK, "知道了", DEFAULT_VECTOR_FONT_FILENAME, 30); + soslabel->SetTouchable(true); + exitlabel->SetTouchable(true); + + UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::BPDetectionPresenter::GetInstance(); + soslabel->SetOnClickListener(clickListener);//设置按键监听 + exitlabel->SetOnClickListener(clickListener); + + alertlabel->SetTextColor(Color::Red()); + + group->Add(titlelabel); + group->Add(alertlabel); + group->Add(notelabel); + group->Add(soslabel); + group->Add(exitlabel); + + return group; + } + + + +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp new file mode 100644 index 000000000..449064229 --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectFailView.cpp @@ -0,0 +1,90 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 14:36:25 + * @FilePath: /FD230/code/sdk/application/wearable/fd230/nativeapp/nativeui/bloodpressure/src/BPDetectFailView.cpp + */ + +#include "ui_resource_image.h" +#include "UiConfig.h" +#include "wearable_log.h" +#include "uicomponents/UIComponents.h" +#include "bloodpressure/include/detection/BPDetectionPresenter.h" +#include "bloodpressure/include/detection/BPDetectFailView.h" +#include "bloodpressure/include/BPModel.h" +namespace OHOS +{ + static BPDetectFailView *g_pBPDetectFailView{nullptr}; + static const char* image_bp = "/user/res/BPCalibration/error.bin"; + + BPDetectFailView::BPDetectFailView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::BPDetectFailView"); + g_pBPDetectFailView = this; + } + BPDetectFailView::~BPDetectFailView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BPDetectFailView::~BPDetectFailView"); + if(group) + { + group->RemoveAll(); + if(icon_fail) + { + delete icon_fail; + icon_fail = nullptr; + } + if(titlefail) + { + delete titlefail; + titlefail = nullptr; + } + if(ReCheckButton) + { + delete ReCheckButton; + ReCheckButton = nullptr; + } + } + delete group; + group = nullptr; + g_pBPDetectFailView = nullptr; + } + + BPDetectFailView *BPDetectFailView::GetInstance() + { + return g_pBPDetectFailView; + } + + + + /*** + * @description: + * @return 是否初始化成功 + */ + UIViewGroup *BPDetectFailView::BPDetectFailInit() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bool BPDetectFailView::InitView()"); + group = new UIViewGroup(); + group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + + + InitImageView(icon_fail, 131, 131, 100, 100, "image_bp", image_bp); + + InitLabel(titlefail, 133, 57, 200, 50, "titlefail","测量失败", DEFAULT_VECTOR_FONT_FILENAME, 30); + + InitButtonExt(ReCheckButton, 118, 360, 230, 80, RE_CLICK_FAIL,STR_RECHECK, 30); + ReCheckButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色 + UIView::OnClickListener *clickListener = (UIView::OnClickListener *)OHOS::BPDetectionPresenter::GetInstance(); + ReCheckButton->SetOnClickListener(clickListener);//设置按键监听 + + + group->Add(icon_fail); + group->Add(titlefail); + group->Add(ReCheckButton); + + + return group; + } + + + +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp index 59a83a181..b518561b6 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionPresenter.cpp @@ -95,7 +95,25 @@ namespace OHOS BPDetectionView::GetInstance()->ChangeView(RESULT_BPVIEW,CALIBRATION_BPVIEW); BPModel::GetInstance()->BP_StartTimer();//开始计时器,计时结束后自动切换到主界面 } - + //预警界面->SOS + else if (strcmp(view.GetViewId(), BP_SOS_CLICK) == 0) + { + BPDetectionView::GetInstance()->ChangeView(ERROR_BPVIEW,SOS_BPVIEW); + } + //预警界面->退出 + else if (strcmp(view.GetViewId(), EXIE_CLICK) == 0) + { + NavigateBack(); + // BPDetectionView::GetInstance()->ChangeView(ERROR_BPVIEW,FAIL_BPVIEW);//test + } + //检测失败界面->重新检测 + else if (strcmp(view.GetViewId(), RE_CLICK_FAIL) == 0) + { + //设置状态为检测状态 + BPModel::GetInstance()->BP_Control(BPState::BP_DETECTING); + BPDetectionView::GetInstance()->ChangeView(FAIL_BPVIEW,CALIBRATION_BPVIEW); + BPModel::GetInstance()->BP_StartTimer();//开始计时器,计时结束后自动切换到主界面 + } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp index 623187863..02d92e722 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/detection/BPDetectionView.cpp @@ -56,6 +56,17 @@ namespace OHOS g_pBPDetectEndView = nullptr; } + if(g_pBPDetectErrorView) + { + delete g_pBPDetectErrorView; + g_pBPDetectErrorView = nullptr; + } + + if(g_pBPDetectFailView) + { + delete g_pBPDetectFailView; + g_pBPDetectFailView = nullptr; + } for(int i = 0; i < MAX_BPDECETVIEW; ++i) @@ -208,6 +219,47 @@ namespace OHOS return true; } + bool BPDetectionView::ChangeBPDetectErrorView(int16_t thisView) + { + // 检查视图是否已初始化,避免重复创建 + if (group[thisView] == nullptr) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodPressureView::ChangeBPDetectErrorView"); + // 创建首次校准视图实例 + g_pBPDetectErrorView = new BPDetectErrorView(); + if (g_pBPDetectErrorView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "BloodPressureView::ChangeBPDetectErrorView new BPDetectErrorView fail"); + return false; + } + // 初始化视图并添加到视图组 + group[thisView] = g_pBPDetectErrorView->BPDetectErrorInit(); + container_->Add(group[thisView]); + } + return true; + } + + bool BPDetectionView::ChangeBPDetectFailView(int16_t thisView) + { + // 检查视图是否已初始化,避免重复创建 + if (group[thisView] == nullptr) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodPressureView::ChangeBPDetectFailView"); + // 创建首次校准视图实例 + g_pBPDetectFailView = new BPDetectFailView(); + if (g_pBPDetectFailView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, + "BloodPressureView::ChangeBPDetectFailView new BPDetectFailView fail"); + return false; + } + // 初始化视图并添加到视图组 + group[thisView] = g_pBPDetectFailView->BPDetectFailInit(); + container_->Add(group[thisView]); + } + return true; + } /** * 视图映射结构体 - 将视图ID映射到对应的视图切换函数 @@ -223,6 +275,9 @@ namespace OHOS {SOS_BPVIEW, &BPDetectionView::ChangeBPDetectSOSView}, {CALIBRATION_BPVIEW, &BPDetectionView::ChangeBPDetectBeginView}, {RESULT_BPVIEW, &BPDetectionView::ChangeBPDetectEndView}, + {ERROR_BPVIEW, &BPDetectionView::ChangeBPDetectErrorView}, + {FAIL_BPVIEW, &BPDetectionView::ChangeBPDetectFailView}, + }; bool BPDetectionView::ClickFunc(int16_t interface) -- 2.17.1