From 0fa2f745aacfb400bcaf50fd20f59575ae07ae8d Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Thu, 25 Jul 2024 16:08:21 +0800 Subject: [PATCH] =?utf8?q?#113=20=20=E6=9A=82=E6=97=B6=E4=BC=98=E5=8C=96?= =?utf8?q?=E5=BF=83=E7=8E=87=E6=95=B0=E6=8D=AE=E5=87=BA=E6=95=B0=E6=8D=AE?= =?utf8?q?=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/include/TraingModel.h | 2 ++ .../nativeui/traing/src/TraingModel.cpp | 32 ++++++++++++------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index c50131dda..1599148cf 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -297,6 +297,8 @@ namespace OHOS int CalculateAverageHeartRate(int newHeartRate); /*显示心率计算*/ int CalculateFilteredHeartRate(int newHeartRate); + + int Averageheartrate(int newHeartRate); /*保存训练记录到json文件*/ bool CheckDataJson(); diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp index d04880b9a..06f15764a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -306,11 +306,13 @@ namespace OHOS /*设置运动Id*/ void TraingModel::SetSportEvent(UIResourceTextId id) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SetSportType %d", sportId_); sportId_ = id; } /*获取运动Id*/ UIResourceTextId TraingModel::GetSportEvent() { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " GetSportEvent %d", sportId_); return sportId_; } /*获取运动项目*/ @@ -401,8 +403,6 @@ namespace OHOS void TraingModel::AnalysisData(cywee_activity_result_t *cyweeInfo) { // 不同的运动类型解析不同的数据 - ExerciseClass type = GetSportId(); - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " AnalysisData %d", type); // 通用数据 sportdata->steps = cyweeInfo->steps; @@ -417,16 +417,17 @@ namespace OHOS { sportdata->spc = sportdata->pc; } + + sportdata->heart = cyweeInfo->hrs; + if (cyweeInfo->hrs > 50) { - sportdata->heart = CalculateFilteredHeartRate(cyweeInfo->hrs); // 处理显示心率 - sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理正常的平均心率 - SetIntensity(sportdata->heart); // 设置训练强度 - } - else - { - sportdata->heart = cyweeInfo->hrs; + // sportdata->heart = CalculateFilteredHeartRate(cyweeInfo->hrs); // 处理显示心率 + // sportdata->avgheart = CalculateAverageHeartRate(cyweeInfo->hrs); // 处理正常的平均心率 + sportdata->avgheart = Averageheartrate(sportdata->heart); + SetIntensity(sportdata->heart); // 设置训练强度 } + // 达到最高心率进行心率提醒弹窗 if (sportdata->heart >= ConfigModel::GetInstance()->get_configData_int(ConfigModel::CONFIGMODEL_ITEM_TRAINING_HEART_MAX)) { @@ -596,6 +597,7 @@ namespace OHOS printf("SetTimestamp::time:%u \r\n", time); sportdata->starttime = time; sportdata->sportType = sportType_; // 训练类型 + sportdata->sportId = sportId_; if (sportTag_) // 有值才设置[训练目标] { @@ -806,7 +808,6 @@ namespace OHOS return average; } - // 显示心率 int TraingModel::CalculateFilteredHeartRate(int newHeartRate) { @@ -828,7 +829,16 @@ namespace OHOS return total / recentHeartRates.size(); // 返回计算后的平均值 } - + int TraingModel::Averageheartrate(int newHeartRate) + { + if (totalHeartRate == 0) + { + totalHeartRate = newHeartRate; + } + totalHeartRate = (totalHeartRate + newHeartRate) / 2; + + return totalHeartRate; + } // 设置训练目标类型以及训练目标 void TraingModel::SetSportTag(ExerciseTag tagtpye, int tag) { -- 2.17.1