增加服务接口,完善整体流程
authorxue <2144439972@qq.com>
Thu, 17 Jul 2025 07:24:51 +0000 (15:24 +0800)
committerxue <2144439972@qq.com>
Thu, 17 Jul 2025 07:24:51 +0000 (15:24 +0800)
code/sdk/application/wearable/fd230app/nativeui/bloodpressure/src/BPModel.cpp

index 91ff557..0fa909c 100644 (file)
@@ -439,6 +439,7 @@ namespace OHOS
     if (Time != BP_CHECK_TIME_MAX)
       Time = BP_CHECK_TIME_MAX; // 重置时间90秒
     BP_StartTimer();
+    BP_Start_GetData_Timer();
     BP_SetResultState(BPRESULT::NOT_TESTED);  // 重置数据状态
     ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
@@ -451,13 +452,14 @@ namespace OHOS
   {
 
     BP_StartTimer();
+    BP_Start_GetData_Timer();
     BP_SetResultState(BPRESULT::NOT_TESTED);  // 重置数据状态
     ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
                   "start detecting");
     BP_START(); // 底层接口开启血压
     if (Time != BP_CHECK_TIME_MAX)
-      Time = BP_CHECK_TIME_MAX; // 重置时间90秒
+      Time = BP_CHECK_TIME_MAX; // 重置时间60秒
   }
 
   // 第二次校准状态处理
@@ -466,6 +468,7 @@ namespace OHOS
     if (Time != BP_CHECK_TIME_MAX)
       Time = BP_CHECK_TIME_MAX; // 重置时间90秒
     BP_StartTimer();
+    BP_Start_GetData_Timer();
     BP_SetResultState(BPRESULT::NOT_TESTED);  // 重置数据状态
     ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON); // 后期 周期被动状态 需要做区别
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,
@@ -650,7 +653,6 @@ namespace OHOS
 
       bp_data_t temp_data = {0};
       bp_get_data(&temp_data);
-      
 
       // 范围检查与赋值
       if (temp_data.sbp >= 0 && temp_data.sbp <= UINT8_MAX)
@@ -765,6 +767,9 @@ namespace OHOS
     if (current_state == BPState::BP_CALIBRATING_FIRSTTIME ||
         current_state == BPState::BP_CALIBRATING_SECONDTIME)
     {
+#ifdef ENABLE_BN02
+        do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_DATA_UPLOAD,NULL,0);   //数据采集以后发给服务器的指令 
+#endif
       if (bpMainView)
       {
         bpMainView->ChangeView(current_state == BPState::BP_CALIBRATING_FIRSTTIME
@@ -772,9 +777,8 @@ namespace OHOS
                                    : BPSECUNDERCALIBRATIONVIEW,
                                BPRESULTANALYSISVIEW);
       }
-      BP_STOP();
+      BP_StartTimer(); // 1s后发送数据 do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_DATA_UPLOAD,NULL,0); 退出页面以后 发送 BP_TCP_SERVICE_CMD_SERVER_DEINIT
       CalibrationFlag++;
-      BP_Control(BPState::BP_CALIBRATING_ANGLYSIS);
       return;
     }
     // 处理校准分析状态
@@ -789,16 +793,12 @@ namespace OHOS
           if (CalibrationFlag == 1) // 第一次校准成功
           {
             CalibrationFlag++;
-#if defined(BOARD_W9)
             ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::CONFIGMODEL_ITEM_BP_CALIBRATION_FIRST_TIME, configValue);
-#endif
           }
 
           else // 第二次校准成功,校准完成
           {
-#if defined(BOARD_W9)
             ConfigModel::GetInstance()->set_condigData_Int(ConfigModel::CONFIGMODEL_ITEM_BP_CALIBRATION_SECOND_TIME, configValue);
-#endif
             CalibrationFlag = 0;
           }
         }
@@ -815,7 +815,9 @@ namespace OHOS
     // 处理血压检测状态
     if (current_state == BPState::BP_DETECTING)
     {
-      BP_STOP();                              // 停止检测
+#ifdef ENABLE_BN02
+        do_bp_tcp_server_send_data(BP_TCP_SERVICE_CMD_DATA_UPLOAD,NULL,0);   //数据采集以后发给服务器的指令 
+#endif
       BP_Control(BPState::BP_End);            // 分析测量结果
       if (bp_resullt == BPRESULT::NOT_TESTED) // 未测量到数据
       {
@@ -951,7 +953,7 @@ namespace OHOS
     }
   }
 
-  // 每秒的处理
+  /*******************  每秒的处理 *******************/
   void BPModel::BP_timer_callback_proc(uint8_t data)
   {
 
@@ -970,7 +972,7 @@ namespace OHOS
       {
         view->UpdateTimeText(data);
       }
-      if (Time > 0 && Time < 30) // 一分钟后获取数据
+      if (Time > 1 && Time < 30) // 一分钟后获取数据,最后一秒前关闭
       {
         uint8_t sbp = 0;
         uint8_t dbp = 0;
@@ -984,6 +986,10 @@ namespace OHOS
           // 测量完成
           bp_resullt == BPRESULT::SUCCESS;
         }
+        if (Time = 1)
+        {
+          BP_STOP(); // 提前一秒关闭
+        }
       }
 
       break;
@@ -996,7 +1002,7 @@ namespace OHOS
       {
         view->UpdateTimeText(data);
       }
-      if (Time > 0 && Time < 30) // 一分钟后获取数据
+      if (Time > 1 && Time < 30) // 一分钟后获取数据,最后一秒前关闭
       {
 
         uint8_t sbp = 0;
@@ -1013,6 +1019,10 @@ namespace OHOS
           bp_resullt == BPRESULT::SUCCESS;
         }
       }
+      if (Time = 1)
+      {
+        BP_STOP(); // 提前一秒关闭
+      }
       break;
     }
     case BPState::BP_CALIBRATING_SECONDTIME:
@@ -1022,7 +1032,7 @@ namespace OHOS
       {
         view->UpdateTimeText(data);
       }
-      if (Time > 0 && Time < 30) // 一分钟后获取数据
+      if (Time > 1 && Time < 30) // 一分钟后获取数据,最后一秒前关闭
       {
 
         uint8_t sbp = 0;
@@ -1039,6 +1049,10 @@ namespace OHOS
           bp_resullt == BPRESULT::SUCCESS;
         }
       }
+      if (Time = 1)
+      {
+        BP_STOP(); // 提前一秒关闭
+      }
       break;
     }
     case BPState::BP_CALIBRATING_ANGLYSIS: