From 6fc86894648e796e101db3c48a2e6888665dce7d Mon Sep 17 00:00:00 2001 From: Caisking Date: Sat, 7 Feb 2026 10:42:32 +0800 Subject: [PATCH] =?utf8?q?=E4=BC=98=E5=8C=96=E9=AA=91=E8=A1=8C=E5=8F=AF?= =?utf8?q?=E4=BB=A5=E5=AD=98=E5=82=A8=E5=BF=83=E7=8E=87=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingModel.cpp | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp index 04e1d08b5..4890703c4 100644 --- a/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd272/nativeapp/nativeui/traing/src/TraingModel.cpp @@ -378,7 +378,7 @@ void TraingModel::IsSpecialSport(UIResourceTextId sportId_) { switch (sportId_) { case UIResourceTextId::STR_EXERCISE_OUTDOORRUNNING: // 室外跑步 室外走路 - case UIResourceTextId::STR_EXERCISE_OUTDOORWALKING: + case UIResourceTextId::STR_EXERCISE_OUTDOORWALKING: case UIResourceTextId::STR_EXERCISE_INDOORRUNNING: // 室内跑步 室内走路 case UIResourceTextId::STR_EXERCISE_INDOORWALKING: case UIResourceTextId::STR_EXERCISE_TREADMILL: // 跑步机 @@ -1745,24 +1745,21 @@ bool TraingModel::GetMomentum() { std::string exactFilePath = TRAINING_HEART_FILE + std::to_string(timestamp) + ".bin"; if (IsFileAccessibleAndNotEmpty(exactFilePath)) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "找到心率表: %s", - exactFilePath.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "找到心率表: %s", exactFilePath.c_str()); return exactFilePath; // 返回完全匹配的文件路径 } - // 如果未找到,检查时间戳相差1到2秒的文件 - for (int i = -2; i <= 2; ++i) { + // 如果未找到,检查时间戳相差5秒的文件 + for (int i = -5; i <= 5; ++i) { uint32_t checkTimestamp = timestamp + i; - std::string filePath = - TRAINING_HEART_FILE + std::to_string(checkTimestamp) + ".bin"; + std::string filePath = TRAINING_HEART_FILE + std::to_string(checkTimestamp) + ".bin"; if (IsFileAccessibleAndNotEmpty(filePath)) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "找到心率表: %s", - filePath.c_str()); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "找到心率表: %s", filePath.c_str()); return filePath; // 返回找到的文件路径 } } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "未找到与时间戳相关的心率表。"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "未找到与时间戳相关的心率表。%d", timestamp); return ""; // 未找到文件 } @@ -1777,8 +1774,8 @@ bool TraingModel::GetMomentum() { return exactFilePath; // 返回完全匹配的文件路径 } - // 如果未找到,检查时间戳相差1到2秒的文件 - for (int i = -2; i <= 2; ++i) { + // 如果未找到,检查时间戳相差5秒的文件 + for (int i = -5; i <= 5; ++i) { uint32_t checkTimestamp = timestamp + i; std::string filePath = TRAINING_PACE_FILE + std::to_string(checkTimestamp) + ".bin"; @@ -1789,7 +1786,7 @@ bool TraingModel::GetMomentum() { } } - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "未找到与时间戳相关的配速表。"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "未找到与时间戳相关的配速表。%d", timestamp); return ""; // 未找到文件 } /*发送实时数据*/ @@ -1916,8 +1913,11 @@ bool TraingModel::GetMomentum() { if (uapi_get_timestampe_ss(×tamp) == ERRCODE_SUCC) { if (sportdata->heart != 0) AddHeartRateData(timestamp, sportdata->heart); - if (sportdata->apc != 0) - AddPaceData(timestamp, sportdata->apc); + //特殊运动才存储配速数据 + if (OHOS::TraingModel::GetInstance()->GetIsSpecial()) { + if (sportdata->apc != 0) + AddPaceData(timestamp, sportdata->apc); + } } } @@ -1965,9 +1965,8 @@ bool TraingModel::GetMomentum() { OHOS::TraingModel::GetInstance()->CheckTimeTag(); // 记录特殊活动的心率/配速数据 - if (OHOS::TraingModel::GetInstance()->GetIsSpecial()) { - OHOS::TraingModel::GetInstance()->StoreDataIfMinutePassed(); - } + OHOS::TraingModel::GetInstance()->StoreDataIfMinutePassed(); + // 振动反馈 if ((sportdata->goaldegree >= 100) && (shock_count < 4)) { -- 2.17.1