修改心率的刷新配置;防止在后台进行UI刷新
authorCaisking <3449750381@qq.com>
Fri, 20 Sep 2024 12:57:28 +0000 (20:57 +0800)
committerCaisking <3449750381@qq.com>
Fri, 20 Sep 2024 12:57:28 +0000 (20:57 +0800)
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartChartPresenter.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/include/HeartModel.h
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartChartView.cpp
code/sdk/application/wearable/fd230app/nativeui/heartrate/src/HeartModel.cpp

index 06e5c18..876166b 100644 (file)
@@ -23,6 +23,7 @@ namespace OHOS
 
     class HeartChartView;
     class HeartChartPresenter : public Presenter<HeartChartView>,
+                                    public ModelListenerSample,
                                     public UIView::OnClickListener,
                                     public UIView::OnDragListener,
                                     public RootView::OnKeyActListener,
@@ -36,6 +37,8 @@ namespace OHOS
         void OnStart() override;
         void OnResume() override;
         void OnStop() override;
+        void OnTickEvent() override;
+        void Notify() override {}
         bool OnClick(UIView &view, const ClickEvent &event) override;
         bool OnDrag(UIView &view, const DragEvent &event) override;
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
index 4827a8a..c67d360 100644 (file)
@@ -112,8 +112,7 @@ public:
   Point *GetMaximumHeartRate(void);\r
   void Init(void);\r
   void HeartRatePros(HeartDatas *heartInfo);\r
-  void RefreshHeartRateScreen(uint16_t perSec, uint16_t rest, uint16_t maxRate,\r
-                              uint16_t minRate);\r
+  void RefreshHeartRateScreen();\r
   void ClearHeartData(void);\r
   void HandleMaxHeart(uint16_t coord, uint16_t value);\r
   void HandleMinHeart(uint16_t coord, uint16_t value);\r
index 5643d35..49219fb 100644 (file)
@@ -99,6 +99,26 @@ namespace OHOS
         return true;
     }
 
+    void HeartChartPresenter::OnTickEvent()
+    {
+        // 更新显示心率数据
+        if(HeartChartView::GetInstance() == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::GetInstance()==nullptr");
+            return;
+        }
+
+        HeartChartView::GetInstance()->UpdateShowHeart(); 
+        uint64_t current_time = osKernelGetTick2ms();
+        if ((startTime != 0) && (current_time - startTime >= HEART_KEEP_TIME))
+        {
+            // 超时处理
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 超时处理 HEART_KEEP_TIME: %lld", current_time - startTime);
+            HeartModel::GetInstance()->SetResult(HeartResult::TIMEOUT);
+            HeartModel::GetInstance()->Heart_Stop();
+        }
+    }
+
     // 增加按键事件
     bool HeartChartPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
     {
index 145cb4d..7f47251 100644 (file)
@@ -224,7 +224,6 @@ void HeartChartView::UpdateShowHeart() {
   uint16_t heart_ = HeartModel::GetInstance()->GetShowHeartdata();
   std::string heartrateStr =
       (heart_ == 0) ? "--" : (heart_ < 50 ? "--" : std::to_string(heart_));
-
   // 更新当前心率显示
   if (displayheart_ != nullptr) {
     displayheart_->SetText(heartrateStr.c_str());
@@ -258,7 +257,6 @@ void HeartChartView::Update_data_Chart(int serialIndex) {
 
   //更新最大最小值
   SetDataTopAndBottom();
-
 }
 void HeartChartView::CleanAllDataView() {
   if (heartchart == nullptr || maxheart_ == nullptr || minheart_ == nullptr) {
@@ -286,8 +284,8 @@ void HeartChartView::CleanAllDataView() {
 }
 /*设置最大最小数据*/
 void HeartChartView::SetDataTopAndBottom() {
-  int MaxHeart = HeartModel::GetInstance()->GetHeartRateMax();
-  int MinHeart = HeartModel::GetInstance()->GetHeartRateMin();
+  int MaxHeart = HeartModel::GetInstance()->GetShowMaxHeartdata();
+  int MinHeart = HeartModel::GetInstance()->GetShowMinHeartdata();
 
   if (maxheart_ != nullptr) {
     maxheart_->SetText(MaxHeart > 0 ? (std::to_string(MaxHeart)).c_str()
@@ -562,7 +560,7 @@ UIViewGroup *HeartChartView::GetchartGroup() {
   }
   HeartImageAnimator(); //暂时屏蔽
   InitChartView();
-  UpdateChartConfig();
+  // UpdateChartConfig();
   SetDataChart();
   SetLastHeart();
   SetDataTopAndBottom();
@@ -585,7 +583,7 @@ void HeartChartView::OnStart() {
 
   HeartImageAnimator();
   InitChartView();
-  UpdateChartConfig();
+  // UpdateChartConfig();
   SetDataChart();
   SetLastHeart();
   SetDataTopAndBottom();
index 8966add..7e86314 100644 (file)
@@ -34,7 +34,7 @@ extern "C" {
 #define MIN_DISPLAY_HEART 60\r
 #define HEARTTEST 1 //[0 开启测试 1 关闭]\r
 \r
-/* 佩戴检测结果 */\r
+/*佩戴检测结果*/\r
 enum {\r
   SENSOR_WEAR_ON = 0,\r
   SENSOR_WEAR_OFF,\r
@@ -68,8 +68,8 @@ void HeartDataSubscribeTopic(Topic topic) {
   }\r
   int ret = broadcastApi->SubscribeTopic((IUnknown *)broadcastApi, topic,\r
                                          &heartSubscirber);\r
-  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP,\r
-                "HeartSubscribeTopic ret = %d, topic = %u", ret, topic);\r
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HeartSubscribeTopic ret=%d,topic=%u",\r
+                ret, topic);\r
   broadcastApi->Release((IUnknown *)broadcastApi);\r
 }\r
 \r
@@ -101,6 +101,9 @@ static void Notify(void *args, const Topic topic, Request *request) {
 \r
   switch (request->msgId) {\r
   case TOPIC_EVENT_HEARTRATE_UPDATA:\r
+    // 主界面刷新\r
+    GraphicService::GetInstance()->PostGraphicEvent(std::bind(\r
+        &HeartModel::RefreshHeartRateScreen, HeartModel::GetInstance()));\r
     // ProcessHeartRateUpdate(request);\r
     break;\r
 \r
@@ -136,8 +139,8 @@ static void ProcessHeartRateUpdate(Request *request) {
   /*最大最小值不为0*/\r
   heartInfo->maxValue = preheart;\r
   heartInfo->minValue = preheart;\r
-  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "heartRateData = %d %d",\r
-                heartInfo->index, preheart);\r
+  WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "heartRateData=%d%d", heartInfo->index,\r
+                preheart);\r
   OHOS::HeartModel::GetInstance()->HeartRatePros(heartInfo);\r
 \r
   free(heartInfo); // 释放内存\r
@@ -177,10 +180,11 @@ void HeartModel::ClearHeartData(void) {
     HeartRateView::GetInstance()->ClearElectrocardiogram();\r
   }\r
   SetAveHeartRateCount(0);\r
-  GraphicService::GetInstance()->PostGraphicEvent(\r
-      std::bind(&HeartModel::RefreshHeartRateScreen, HeartModel::GetInstance(),\r
-                healthDatas.heartRatePerSec, healthDatas.heartRateRest,\r
-                healthDatas.heartRateMax.y, healthDatas.heartRateMin.y));\r
+  // GraphicService::GetInstance()->PostGraphicEvent(\r
+  //     std::bind(&HeartModel::RefreshHeartRateScreen,\r
+  //     HeartModel::GetInstance(),\r
+  //               healthDatas.heartRatePerSec,healthDatas.heartRateRest,\r
+  //               healthDatas.heartRateMax.y,healthDatas.heartRateMin.y));\r
 }\r
 \r
 HeartModel::HeartModel() {\r
@@ -199,7 +203,7 @@ HeartModel::HeartModel() {
     currentheart = 0;\r
     timestamp_ms = 0;\r
   }\r
-  //配置动态数组\r
+  // 配置动态数组\r
   SetArrayData();\r
 }\r
 \r
@@ -309,10 +313,11 @@ void HeartModel::HeartRatePros(HeartDatas *heartInfo) {
     healthDatas.heartRatePerSec = perSecHeartRate;\r
   }\r
 \r
-  GraphicService::GetInstance()->PostGraphicEvent(\r
-      std::bind(&HeartModel::RefreshHeartRateScreen, HeartModel::GetInstance(),\r
-                healthDatas.heartRatePerSec, healthDatas.heartRateRest,\r
-                healthDatas.heartRateMax.y, healthDatas.heartRateMin.y));\r
+  // GraphicService::GetInstance()->PostGraphicEvent(\r
+  //     std::bind(&HeartModel::RefreshHeartRateScreen,\r
+  //     HeartModel::GetInstance(),\r
+  //               healthDatas.heartRatePerSec,healthDatas.heartRateRest,\r
+  //               healthDatas.heartRateMax.y,healthDatas.heartRateMin.y));\r
 }\r
 \r
 uint16_t HeartModel::GetAveHeartRateCount(void) { return aveCount; }\r
@@ -336,31 +341,20 @@ void HeartModel::SetHeartRatePerSec(uint32 sec) {
 \r
 void HeartModel::SetAveHeartRateCount(uint16_t value) { aveCount = value; }\r
 \r
-void HeartModel::RefreshHeartRateScreen(uint16_t perSec, uint16_t rest,\r
-                                        uint16_t maxRate, uint16_t minRate) {\r
-  uint16_t currentViewId = NativeAbility::GetInstance().GetCurSliceId();\r
-  /*主界面刷新心率*/\r
-  if (currentViewId == VIEW_MAIN && MainClockView::GetInstance() != nullptr) {\r
-    MainClockView::GetInstance()->RefreshHeartRate(perSec);\r
-  }\r
-  /*心率卡片刷新心率数据*/\r
+void HeartModel::RefreshHeartRateScreen() {\r
   if (MainViewSample::GetInstance() != nullptr &&\r
-      HeartRateView::GetInstance() != nullptr) {\r
+      HeartChartView::GetInstance() != nullptr) {\r
     if (MainViewSample::GetInstance()->GetHorCurrentCard() == HEART_RATE) {\r
-      HeartRateView::GetInstance()->RefreshHeartRatePerSec(perSec);\r
-      HeartRateView::GetInstance()->RefreshHeartRateMax(maxRate);\r
-      HeartRateView::GetInstance()->RefreshHeartRateMin(minRate);\r
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                    "HeartChartView::GetInstance() start");\r
+      HeartChartView::GetInstance()->UpdateShowHeart();\r
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                    "HeartChartView::GetInstance() end");\r
     }\r
   }\r
-  /*applist心率刷新心率数据*/\r
-  if (HeartChartView::GetInstance() != nullptr) {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::GetInstance() start");\r
-    HeartChartView::GetInstance()->UpdateShowHeart();\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HeartChartView::GetInstance() end");\r
-  }\r
 }\r
-/* ---------------------------------- 状态检测\r
- * ---------------------------------- */\r
+/*----------------------------------状态检测\r
+ *----------------------------------*/\r
 \r
 // 重新初始化\r
 void HeartModel::ClearDisplayData() {\r
@@ -414,11 +408,11 @@ void HeartModel::Heart_Control(HeartState state, HeartCheck check) {
 // 开始检测\r
 void HeartModel::Heart_Start() {\r
   displayheart = 0;\r
-  // displayheart_max = 0; // 显示最大心率 [每次检测进行清除]\r
-  // displayheart_min = 0; // 显示最小心率 [每次检测进行清除]\r
+  // displayheart_max=0;// 显示最大心率 [每次检测进行清除]\r
+  // displayheart_min=0;// 显示最小心率 [每次检测进行清除]\r
 \r
   SetResult(HeartResult::NOT_TESTED); // 重置检测\r
-  // 进行初始化操作\r
+                                      // 进行初始化操作\r
   if (!sensorstate) {\r
     Heart_Control(HeartState::Start, HeartCheck::INITIATIVE);\r
     sensorstate = true;\r
@@ -446,7 +440,7 @@ void HeartModel::Heart_Stop() {
   }\r
 \r
   if (sensorstate) {\r
-    // Heart_Control(HeartState::End, HeartCheck::INITIATIVE); 主动检测心率\r
+    // Heart_Control(HeartState::End,HeartCheck::INITIATIVE);主动检测心率\r
     // 不需要关闭\r
     sensorstate = false;\r
     Heart_Result(); // 处理结果\r
@@ -460,8 +454,8 @@ void HeartModel::Heart_Save() {
   SetCheckTime(data.timestamp);\r
   HealthService::GetInstance()->UpdateHealthData(data);\r
 \r
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存的心率数据: %d %ld",\r
-                currentheart, data.timestamp);\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "保存的心率数据:%d%ld", currentheart,\r
+                data.timestamp);\r
 }\r
 \r
 // 显示检测结果// 显示检测结果\r
@@ -481,24 +475,22 @@ void HeartModel::Heart_Result() {
         currentheart != 0) {\r
       // 当前心率低于阈值\r
       heartresult_ = HeartResult::LOW_RESULT;\r
-      WEARABLE_LOGE(\r
-          WEARABLE_LOG_MODULE_APP,\r
-          "检测结果: 低结果情况, currentheart = %d, ThresholdValue = %d",\r
-          currentheart, ThresholdValue);\r
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                    "检测结果:低结果情况,currentheart=%d,ThresholdValue=%d",\r
+                    currentheart, ThresholdValue);\r
     } else if (ThresholdState == 1 && currentheart > ThresholdValue) {\r
       // 当前心率高于阈值\r
       heartresult_ = HeartResult::HIGH_RESULT;\r
-      WEARABLE_LOGE(\r
-          WEARABLE_LOG_MODULE_APP,\r
-          "检测结果: 高结果情况, currentheart = %d, ThresholdValue = %d",\r
-          currentheart, ThresholdValue);\r
+      WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
+                    "检测结果:高结果情况,currentheart=%d,ThresholdValue=%d",\r
+                    currentheart, ThresholdValue);\r
     }\r
   }\r
 \r
   // 根据结果进行处理\r
   switch (heartresult_) {\r
   case HeartResult::SUCCESS:\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 成功");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:成功");\r
     Heart_Save();\r
     /*更新曲线*/\r
     GraphicService::GetInstance()->PostGraphicEvent(\r
@@ -508,7 +500,7 @@ void HeartModel::Heart_Result() {
   case HeartResult::NOT_WORN:     // 未佩戴状态\r
   case HeartResult::TIMEOUT:      // 超时情况\r
   case HeartResult::INVALID_DATA: // 无效数据情况\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: %s情况",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:%s情况",\r
                   heartresult_ == HeartResult::NOT_WORN\r
                       ? "未佩戴状态"\r
                       : heartresult_ == HeartResult::TIMEOUT ? "超时"\r
@@ -518,7 +510,7 @@ void HeartModel::Heart_Result() {
 \r
   case HeartResult::LOW_RESULT:\r
     // 低心率结果处理\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 低结果情况");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:低结果情况");\r
     HealthState lowHealthState;\r
     lowHealthState.checkType = BLOOD_CHECK;\r
     lowHealthState.resultStatus = LOW;\r
@@ -529,7 +521,7 @@ void HeartModel::Heart_Result() {
 \r
   case HeartResult::HIGH_RESULT:\r
     // 高心率结果处理\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 高结果情况");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:高结果情况");\r
     HealthState highHealthState;\r
     highHealthState.checkType = BLOOD_CHECK;\r
     highHealthState.resultStatus = HIGH;\r
@@ -539,7 +531,7 @@ void HeartModel::Heart_Result() {
     break;\r
 \r
   default:\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 未知状态");\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:未知状态");\r
     break;\r
   }\r
 }\r
@@ -557,8 +549,7 @@ void HeartModel::SetWearStatus(int32_t wear) {
   // 检查是否达到了最大未佩戴计数限制\r
   if (unwear_counter_ >= MAX_UNWEAR_COUNT) {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                  "检测结果: 未佩戴计数最大 unwear_counter: %d",\r
-                  unwear_counter_);\r
+                  "检测结果:未佩戴计数最大 unwear_counter:%d", unwear_counter_);\r
     SetResult(HeartResult::NOT_WORN);\r
     Heart_Stop();\r
   }\r
@@ -598,8 +589,7 @@ void HeartModel::UpHeartdata(uint16_t heart) {
   // 检查无效计数器是否达标\r
   if (disvalid_counter_ >= MAX_DISVALID_HRS_COUNT) {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                  "检测结果: 无效数达标 disvalid_counter: %d",\r
-                  disvalid_counter_);\r
+                  "检测结果:无效数达标 disvalid_counter:%d", disvalid_counter_);\r
     SetResult(HeartResult::INVALID_DATA); // 标记为无效数据\r
     Heart_Stop();\r
     return;\r
@@ -608,7 +598,7 @@ void HeartModel::UpHeartdata(uint16_t heart) {
   // 检查有效计数器是否达标\r
   if (valid_counter_ >= MAX_VALID_HRS_COUNT) {\r
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                  "检测结果: 成功 valid_counter: %d currentheart: %d",\r
+                  "检测结果:成功 valid_counter:%d currentheart:%d",\r
                   valid_counter_, currentheart);\r
     SetResult(HeartResult::SUCCESS); // 标记为成功检测\r
     Heart_Stop();\r
@@ -617,13 +607,14 @@ void HeartModel::UpHeartdata(uint16_t heart) {
 \r
   // 刷新心率显示\r
   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                "[heart data update displayheart %d displayheart_max %d "\r
-                "displayheart_min %d]",\r
+                "[heart data update displayheart%d displayheart_max%d "\r
+                "displayheart_min%d]",\r
                 displayheart, displayheart_max, displayheart_min);\r
-                \r
-  GraphicService::GetInstance()->PostGraphicEvent(\r
-      std::bind(&HeartModel::RefreshHeartRateScreen, HeartModel::GetInstance(),\r
-                displayheart, 0, displayheart_max, displayheart_min));\r
+\r
+  // GraphicService::GetInstance()->PostGraphicEvent(\r
+  //     std::bind(&HeartModel::RefreshHeartRateScreen,\r
+  //     HeartModel::GetInstance(),\r
+  //               displayheart));\r
 }\r
 \r
 void HeartModel::Heart_Update_View(void) {\r
@@ -652,8 +643,8 @@ void HeartModel::CleanAllData(void) {
   }\r
 }\r
 \r
-//配置5个动态心率数据\r
-//最大 最小\r
+// 配置5个动态心率数据\r
+// 最大 最小\r
 void HeartModel::SetArrayData() {\r
   // 如果没有进行心率检测,则默认为0-220\r
   if (displayheart_max == 0 || displayheart_min == 0) {\r
@@ -688,11 +679,11 @@ void HeartModel::SetArrayData() {
 \r
   // 打印动态心率数据\r
   for (int i = 0; i < 5; i++) {\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dynamic_heartrate[%d] = %d", i,\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dynamic_heartrate[%d]=%d", i,\r
                   dynamic_heartrate[i]);\r
   }\r
 }\r
-//获取动态心率配置数组\r
+// 获取动态心率配置数组\r
 uint16_t *HeartModel::GetArrayData() { return dynamic_heartrate; }\r
 \r
 // 获取检测字符串\r
@@ -703,7 +694,7 @@ std::string HeartModel::GetCheckString() {
   // 获取检测数据\r
   if (currentheart == 0) {\r
     check_string = "暂无检测数据";\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测数据: %s",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测数据:%s",\r
                   check_string.c_str()); // 打印无检测数据信息\r
     return check_string;                 // 直接返回,无需继续处理\r
   }\r
@@ -720,7 +711,7 @@ std::string HeartModel::GetCheckString() {
   // 检查时间戳是否有效\r
   if (timestamp_ms == 0) {\r
     check_string = std::to_string(currentheart) + " " + "时间戳无效,无法检测";\r
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "时间戳无效,无法检测: %s",\r
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "时间戳无效,无法检测:%s",\r
                   check_string.c_str());\r
     return check_string; // 直接返回,无需继续处理\r
   }\r
@@ -730,11 +721,11 @@ std::string HeartModel::GetCheckString() {
   uint32_t diff_min = diff / 60;      // 计算分钟差\r
   uint32_t diff_hour = diff_min / 60; // 计算小时差\r
 \r
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "当前时间: %d, 上次检测时间: %d",\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "当前时间:%d,上次检测时间:%d",\r
                 currentTime, timestamp_ms); // 打印时间信息\r
   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,\r
-                "时间差 (秒): %d, 时间差 (分钟): %d, 时间差 (小时): %d", diff,\r
-                diff_min, diff_hour); // 打印时间差信息\r
+                "时间差(秒):%d,时间差(分钟):%d,时间差(小时):%d", diff, diff_min,\r
+                diff_hour); // 打印时间差信息\r
 \r
   // 根据时间差生成检测字符串\r
   if (diff_min < 1) {\r
@@ -746,7 +737,7 @@ std::string HeartModel::GetCheckString() {
     check_string = std::to_string(currentheart) + "次/分 " + "超过一个小时前";\r
   }\r
 \r
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: %s",\r
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果:%s",\r
                 check_string.c_str()); // 打印最终检测结果\r
   return check_string;\r
 }\r