get接口增加状态
authorxue <2144439972@qq.com>
Fri, 12 Jun 2026 05:59:24 +0000 (13:59 +0800)
committerxue <2144439972@qq.com>
Fri, 12 Jun 2026 05:59:24 +0000 (13:59 +0800)
code/sdk/application/wearable/n9/nativeapp/nativeui/bloodpressure/src/BPMainPresenter.cpp
code/sdk/application/wearable/n9/nativeapp/nativeui/ecg/src/ECGMainPresenter.cpp

index 8fe76e0..2e7b85b 100644 (file)
@@ -222,10 +222,15 @@ bool BPMainPresenter::PollPpgResult() {
   int sbp = 0;
   int dbp = 0;
   uint8_t status = 0;
-  // ppg_get_bp(&sbp, &dbp);
-  ppg_get_ecg_bp(&sbp, &dbp, &status);
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BP] PollPpgResult mode=%d status=%u sbp=%d dbp=%d",
-                static_cast<int>(progressMode_), status, sbp, dbp);
+  uint8_t touchFlag = 0;
+  ppg_get_ecg_bp(&sbp, &dbp, &status, &touchFlag);
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BP] PollPpgResult mode=%d status=%u touch=%u sbp=%d dbp=%d",
+                static_cast<int>(progressMode_), status, touchFlag, sbp, dbp);
+
+  // if (status == PPG_ECG_BP_STATUS_MEASURING && touchFlag == 0) {
+  //   OnWeakSignalDetected();
+  //   return true;
+  // }
 
   if (status == PPG_ECG_BP_STATUS_WEAK_SIGNAL) {
     OnWeakSignalDetected();
index f76da9a..241a12d 100644 (file)
@@ -237,15 +237,22 @@ bool ECGMainPresenter::PollAfibResult() {
   uint8_t ecgHr = 0;
   uint8_t afibResult = PPG_ECG_AFIB_RESULT_INVALID;
   uint8_t status = PPG_ECG_AFIB_STATUS_IDLE;
-  ppg_get_ecg_afib(&ecgHr, &afibResult, &status);
-  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ECG] poll hr=%u afib=%u status=%u", ecgHr,
-                afibResult, status);
+  uint8_t touchFlag = 0;
+  ppg_get_ecg_afib(&ecgHr, &afibResult, &status, &touchFlag);
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ECG] poll hr=%u afib=%u status=%u touch=%u", ecgHr,
+                afibResult, status, touchFlag);
 
   ECGMeasuringView *view = ECGMeasuringView::GetInstance();
   if (view != nullptr && ecgHr > 0) {
     view->AppendHeartRatePoint(ecgHr);
   }
 
+  // if (status == PPG_ECG_AFIB_STATUS_MEASURING && touchFlag == 0) {
+  //   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ECG] touch lost during measure");
+  //   OnMeasureTimeout();
+  //   return false;
+  // }
+
   if (status == PPG_ECG_AFIB_STATUS_FAILED) {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[ECG] measure failed (status=2)");
     OnMeasureTimeout();