From 38dea5f28faa1b389878b2f6ab8e59bd82597699 Mon Sep 17 00:00:00 2001 From: Caisking Date: Thu, 20 Nov 2025 18:09:13 +0800 Subject: [PATCH] =?utf8?q?N9=E9=80=82=E9=85=8D=E5=BA=94=E7=94=A8=E5=B1=82?= =?utf8?q?=E8=A1=80=E6=B0=A7=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../bloodoxygen/src/BloodOxygenModel.cpp | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/code/sdk/application/wearable/n9/nativeapp/nativeui/bloodoxygen/src/BloodOxygenModel.cpp b/code/sdk/application/wearable/n9/nativeapp/nativeui/bloodoxygen/src/BloodOxygenModel.cpp index e6d67c41e..2e58ded0c 100644 --- a/code/sdk/application/wearable/n9/nativeapp/nativeui/bloodoxygen/src/BloodOxygenModel.cpp +++ b/code/sdk/application/wearable/n9/nativeapp/nativeui/bloodoxygen/src/BloodOxygenModel.cpp @@ -227,13 +227,20 @@ void BloodOxygenModel::SetWearStatus(int32_t wear) { } } -// 更新SPO2数据 +/* +-更新SPO2数据 +-原相接口更新,需要获取最大的血氧值,然后作为当前血氧值 +-最大为100,需要减1 +*/ + void BloodOxygenModel::UpSPO2data(uint8_t spo2) { - displayspo2 = spo2; // 处理有效与无效计数 - if (displayspo2 != 0) { - currentspo2 = displayspo2; // 更新 currentspo2 + if (spo2 != 0) { + if(spo2 > displayspo2) + { + displayspo2 = spo2; + } valid_counter_++; // 增加有效计数器 disvalid_counter_ = 0; // 清空无效计数器 } else { @@ -252,9 +259,12 @@ void BloodOxygenModel::UpSPO2data(uint8_t spo2) { // 检查有效计数器是否达标 if (valid_counter_ >= MAX_VALID_SPO2_COUNT) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, - "检测结果: 成功 valid_counter: %d currentspo2: %d", - valid_counter_, currentspo2); + if(displayspo2 == 100) + { + displayspo2 == 99; + } + currentspo2 = displayspo2; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "检测结果: 成功 valid_counter: %d currentspo2: %d", valid_counter_, currentspo2); SetResult(BloodResult::SUCCESS); // 成功检测 Blood_Stop(); } -- 2.17.1