训练:增加使用文件读写队列操作 1082/target/2 1085/target/2 1086/1 1086/head 1087/target/1
authorCaisking <3449750381@qq.com>
Thu, 3 Oct 2024 09:01:40 +0000 (17:01 +0800)
committerCaisking <3449750381@qq.com>
Thu, 3 Oct 2024 09:01:40 +0000 (17:01 +0800)
code/sdk/application/wearable/fd230app/nativeui/safemodemanager/include/SafeModeManagerModelC.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/drivers/peripheral/utils/custom_fileoperate_service.c
code/sdk/drivers/peripheral/utils/custom_utils.h

index 1a6fb97..eff80f7 100644 (file)
@@ -8,6 +8,7 @@
 #include "traing/include/TraingModel.h"
 #include "cmsis_os.h"
 #include "custom_utils.h"
+#include "safemodemanager/include/SafeModeManagerModelC.h"
 #include "thread_adapter.h"
 #include "traing/training_card/include/TraingCardPresenter.h"
 #include "uicomponents/UIComponents.h"
@@ -175,6 +176,11 @@ static void Notify(void *args, const Topic topic, Request *request) {
 }
 #endif
 
+void store_sport_data() {
+  printf("运动数据存储!\r\n");
+  OHOS::TraingModel::GetInstance()->RecordSportData();
+  return;
+}
 namespace OHOS {
 #if TIMER
 // 声明定时器变量
@@ -624,7 +630,9 @@ void TraingModel::SetTimestamp() {
     Openstate = false; // 关闭运动标志位
 
     // 记录运动数据
-    RecordSportData();
+    // RecordSportData();
+    do_custom_fileoperate_service_check_msg(
+        CUSTOM_FILEOPERATE_MSG_TYPE_SPORTDATA_SAVE, nullptr, 0);
 
     Startstate = false;
     Endstate = true;
@@ -1205,7 +1213,7 @@ bool TraingModel::SaveHeartTable() {
   }
 
   heartRateFile.close();
-
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Heart Rate Table Saved.");
   return true; // 返回成功
 }
 
@@ -1219,10 +1227,13 @@ bool TraingModel::SavePaceTable() {
     return false;
   }
 
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "paceCount = %d", paceCount);
+
   std::string filePath =
       TRAINING_PACE_FILE + std::to_string(sportdata->starttime) + ".bin";
   WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SavePaceTable filePath: %s",
                 filePath.c_str());
+
   std::ofstream paceFile(filePath, std::ios::binary);
   if (!paceFile) {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "无法打开文件: %s",
@@ -1230,7 +1241,10 @@ bool TraingModel::SavePaceTable() {
     return false; // 返回失败
   }
 
+  // 写入 paceCount
   paceFile.write(reinterpret_cast<const char *>(&paceCount), sizeof(paceCount));
+
+  // 写入配速数据
   if (!paceFile.write(reinterpret_cast<const char *>(paceTable.data()),
                       paceCount * sizeof(PaceEntry))) {
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "写入配速数据失败。");
@@ -1238,7 +1252,7 @@ bool TraingModel::SavePaceTable() {
   }
 
   paceFile.close();
-
+  WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SavePaceTable Success.");
   return true; // 返回成功
 }
 // 返回心率表路径
index 1449dee..f4dcf82 100644 (file)
@@ -107,8 +107,14 @@ static void custom_fileoperate_service_check_task(void const *arg)
         switch (mail.cmd)
         {
         case CUSTOM_FILEOPERATE_MSG_TYPE_SPORTDATA_SAVE:
+            store_sport_data();
+            break;
+        case CUSTOM_FILEOPERATE_MSG_TYPE_HEARTRATE_SAVE:
+            break;
+        case CUSTOM_FILEOPERATE_MSG_TYPE_BLOODXYGEN_SAVE:
+            break;
+        case CUSTOM_FILEOPERATE_MSG_TYPE_MESSAGEDATA_SAVE:
             break;
-      
         default:
             PRINT("Unknown CUSTOM_FILE_OPERATE_MSG cmd 0x%02X \r\n", mail.cmd);
             break;
index e0efd53..5bfabe8 100644 (file)
@@ -233,7 +233,11 @@ errcode_t uapi_custom_cmd_service_init(void);
 errcode_t do_custom_cmd_service_check_msg(int cmd, void *params, int paramlen);
 
 /***custom file operate cmd service*/
-#define CUSTOM_FILEOPERATE_MSG_TYPE_SPORTDATA_SAVE 0x01
+#define CUSTOM_FILEOPERATE_MSG_TYPE_SPORTDATA_SAVE 0x01 //运动数据
+#define CUSTOM_FILEOPERATE_MSG_TYPE_HEARTRATE_SAVE 0x02 //心率数据
+#define CUSTOM_FILEOPERATE_MSG_TYPE_BLOODXYGEN_SAVE 0x03//血氧数据
+#define CUSTOM_FILEOPERATE_MSG_TYPE_MESSAGEDATA_SAVE 0x04//消息数据
+
 errcode_t uapi_custom_fileoperate_service_init(void);
 errcode_t do_custom_fileoperate_service_check_msg(int cmd, void *params, int paramlen);