运动:增加读写锁状态
authorCaisking <3449750381@qq.com>
Wed, 2 Oct 2024 09:24:40 +0000 (17:24 +0800)
committerCaisking <3449750381@qq.com>
Wed, 2 Oct 2024 09:24:40 +0000 (17:24 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp

index 63c617c..e9a8e33 100644 (file)
@@ -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<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; }