From 15bc498de7ec085b4eba97c5f31f9763df8041b9 Mon Sep 17 00:00:00 2001 From: Caisking <3449750381@qq.com> Date: Wed, 2 Oct 2024 17:24:40 +0800 Subject: [PATCH] =?utf8?q?=E8=BF=90=E5=8A=A8=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?utf8?q?=E8=AF=BB=E5=86=99=E9=94=81=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/traing/src/TraingModel.cpp | 115 ++++++++++-------- 1 file changed, 63 insertions(+), 52 deletions(-) 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 63c617c65..e9a8e3393 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp @@ -1014,58 +1014,69 @@ int TraingModel::GetGoaldegree() { 超高强度 uint32_t cir; // 圈数 uint32_t alt; // 最高海拔高度 */ /*保存数据*/ -bool TraingModel::SaveSportData() { - Trainingdata data; - data.src = Openingway; - data.bt = static_cast(sportdata->sportType); - data.ty = static_cast( - GetBleSportId(sportdata->sportType, sportdata->sportId)); - data.st = static_cast(sportdata->starttime); - data.sp = static_cast(sportdata->endtime); - data.tgt = static_cast(sportdata->sportTagType); - data.tg = static_cast(sportdata->tag); - data.pg = static_cast(sportdata->goaldegree); - data.du = static_cast(sportdata->duration); - data.ca = static_cast(sportdata->calories * 10); - data.di = static_cast(sportdata->distance); - data.hr = static_cast(sportdata->avgheart); - data.stp = static_cast(sportdata->steps); - data.ti = static_cast(sportdata->intensity); - /*230目前不支持【圈数】【最高海拔高度】*/ - data.cir = 0; - data.alt = 0; - /*配速相关还未处理 暂时保存0*/ - data.apc = static_cast(sportdata->apc); - data.fpc = static_cast(sportdata->fpc); - data.spc = static_cast(sportdata->spc); - data.std = static_cast(sportdata->std); - data.cdc = static_cast(sportdata->cdc); - - // 保存数据到bin - if (write_Trainingdata_data(data) != 1) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "write_Trainingdata_data is error!"); - // return false; - } - // 保存数据到json - if (SaveDataToJson(sportdata) != true) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveDataToJson is error!"); - return false; - } - if (isspecialsport_) { - //保存心率表 - if (SaveHeartTable() != true) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveHeartRateData is error!"); - return false; - } - //保存速度表 - if (SavePaceTable() != true) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSpeedData is error!"); - return false; - } - } - - return true; - // delete data; +bool TraingModel::SaveSportData() { + + // 配置训练存储状态 + uapi_dev_runtime_set_train_storage_status(1); + + Trainingdata data; + data.src = Openingway; + data.bt = static_cast(sportdata->sportType); + data.ty = static_cast( + GetBleSportId(sportdata->sportType, sportdata->sportId)); + data.st = static_cast(sportdata->starttime); + data.sp = static_cast(sportdata->endtime); + data.tgt = static_cast(sportdata->sportTagType); + data.tg = static_cast(sportdata->tag); + data.pg = static_cast(sportdata->goaldegree); + data.du = static_cast(sportdata->duration); + data.ca = static_cast(sportdata->calories * 10); + data.di = static_cast(sportdata->distance); + data.hr = static_cast(sportdata->avgheart); + data.stp = static_cast(sportdata->steps); + data.ti = static_cast(sportdata->intensity); + /* 230 目前不支持【圈数】【最高海拔高度】 */ + data.cir = 0; + data.alt = 0; + /* 配速相关 */ + data.apc = static_cast(sportdata->apc); + data.fpc = static_cast(sportdata->fpc); + data.spc = static_cast(sportdata->spc); + data.std = static_cast(sportdata->std); + data.cdc = static_cast(sportdata->cdc); + + // 保存数据到 bin + if (write_Trainingdata_data(data) != 1) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "write_Trainingdata_data is error!"); + uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 + return false; + } + + // 保存数据到 json + if (!SaveDataToJson(sportdata)) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveDataToJson is error!"); + uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 + return false; + } + + if (isspecialsport_) { + // 保存心率表 + if (!SaveHeartTable()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveHeartRateData is error!"); + uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 + return false; + } + // 保存速度表 + if (!SavePaceTable()) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSpeedData is error!"); + uapi_dev_runtime_set_train_storage_status(0); // 恢复状态 + return false; + } + } + + // 如果所有操作成功,则恢复训练存储状态 + uapi_dev_runtime_set_train_storage_status(0); + return true; } /*设置进入方式*/ void TraingModel::SetEntryType(ENTEYTYPE type) { entey_type = type; } -- 2.17.1