超高强度 uint32_t cir; // 圈数 uint32_t alt; // 最高海拔高度
*/
/*保存数据*/
-bool TraingModel::SaveSportData() {
- Trainingdata data;
- data.src = Openingway;
- data.bt = static_cast<uint32_t>(sportdata->sportType);
- data.ty = static_cast<uint32_t>(
- GetBleSportId(sportdata->sportType, sportdata->sportId));
- data.st = static_cast<uint32_t>(sportdata->starttime);
- data.sp = static_cast<uint32_t>(sportdata->endtime);
- data.tgt = static_cast<uint32_t>(sportdata->sportTagType);
- data.tg = static_cast<uint32_t>(sportdata->tag);
- data.pg = static_cast<uint32_t>(sportdata->goaldegree);
- data.du = static_cast<uint32_t>(sportdata->duration);
- data.ca = static_cast<uint32_t>(sportdata->calories * 10);
- data.di = static_cast<uint32_t>(sportdata->distance);
- data.hr = static_cast<uint32_t>(sportdata->avgheart);
- data.stp = static_cast<uint32_t>(sportdata->steps);
- data.ti = static_cast<uint32_t>(sportdata->intensity);
- /*230目前不支持【圈数】【最高海拔高度】*/
- data.cir = 0;
- data.alt = 0;
- /*配速相关还未处理 暂时保存0*/
- data.apc = static_cast<uint32_t>(sportdata->apc);
- data.fpc = static_cast<uint32_t>(sportdata->fpc);
- data.spc = static_cast<uint32_t>(sportdata->spc);
- data.std = static_cast<uint32_t>(sportdata->std);
- data.cdc = static_cast<uint32_t>(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<uint32_t>(sportdata->sportType);
+ data.ty = static_cast<uint32_t>(
+ GetBleSportId(sportdata->sportType, sportdata->sportId));
+ data.st = static_cast<uint32_t>(sportdata->starttime);
+ data.sp = static_cast<uint32_t>(sportdata->endtime);
+ data.tgt = static_cast<uint32_t>(sportdata->sportTagType);
+ data.tg = static_cast<uint32_t>(sportdata->tag);
+ data.pg = static_cast<uint32_t>(sportdata->goaldegree);
+ data.du = static_cast<uint32_t>(sportdata->duration);
+ data.ca = static_cast<uint32_t>(sportdata->calories * 10);
+ data.di = static_cast<uint32_t>(sportdata->distance);
+ data.hr = static_cast<uint32_t>(sportdata->avgheart);
+ data.stp = static_cast<uint32_t>(sportdata->steps);
+ data.ti = static_cast<uint32_t>(sportdata->intensity);
+ /* 230 目前不支持【圈数】【最高海拔高度】 */
+ data.cir = 0;
+ data.alt = 0;
+ /* 配速相关 */
+ data.apc = static_cast<uint32_t>(sportdata->apc);
+ data.fpc = static_cast<uint32_t>(sportdata->fpc);
+ data.spc = static_cast<uint32_t>(sportdata->spc);
+ data.std = static_cast<uint32_t>(sportdata->std);
+ data.cdc = static_cast<uint32_t>(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; }