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();
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();