From: Caisking <3449750381@qq.com> Date: Wed, 2 Oct 2024 09:24:40 +0000 (+0800) Subject: 运动:增加读写锁状态 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=d51e093f07fc8a5351c4539abfbbc1ef0cb1d430;p=mirrors%2FFD230.git 运动:增加读写锁状态 --- 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; }