训练目标同步设置
authorCaisking <3449750381@qq.com>
Thu, 25 Apr 2024 10:38:34 +0000 (18:38 +0800)
committerCaisking <3449750381@qq.com>
Thu, 25 Apr 2024 10:38:34 +0000 (18:38 +0800)
code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h
code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingModel.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp

index 4eefcfb..14a780d 100644 (file)
@@ -137,8 +137,8 @@ namespace OHOS
     enum class ExerciseTag
     {
         Distance,
-        Duration,
         Calories,
+        Duration,
         STEP,
         UNKNOW,
     };
index 342e563..b408865 100644 (file)
@@ -33,6 +33,7 @@
 #define TIMER 1
 #define BLETEST 0
 #define HARD_OFF 1
+#define READTEST 0
 #define TRAINING_PATH "user/userdata/sport/TrainingData/"
 
 #define MAX_HEART_RATE 220
@@ -189,7 +190,7 @@ namespace OHOS
         TraingSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 进行消息订阅
         TraingSubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
     }
-     /*设置运动类型*/
+    /*设置运动类型*/
     void TraingModel::SetSportType(Exercisetype type)
     {
         sportType_ = type;
@@ -386,12 +387,12 @@ namespace OHOS
 
             free(end_time); // 释放内存
             PRINT("sportdata->end_time [%s]\r\n", (sportdata->end_time).c_str());
-
+#if READTEST
             if (SaveSportData() == false)
             {
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSportData error!");
             }
-#if 0
+#else
             /*存储正常数据[运动量达标]*/
             if (MomentumFlag)
             {
@@ -619,18 +620,20 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "write_Trainingdata_data is error!");
             return false;
         }
-        /*test*/
 
+#if READTEST
         Trainingdata *readdata{nullptr};
         int i = 0;
-        while (readdata = read_Trainingdata_data("2024_04_24", i))
+        while (readdata = read_Trainingdata_data("2024_04_25", i))
         {
+            if (readdata == NULL)
+                return;
             printTrainingData(*readdata);
             // delete readdata;
             free(readdata);
             i++;
         }
-
+#endif
         return true;
         // delete data;
     }
index d85f1d2..d89bb68 100644 (file)
@@ -291,38 +291,46 @@ namespace OHOS
             return false;\r
         }\r
 \r
+        //命令为设置目标\r
+        if (cmd->controlmd == 4)\r
+        {\r
+            TraingModel::GetInstance()->SetSportTag(static_cast<ExerciseTag>(cmd->sportTagType), cmd->sportTag);\r
+            return true; //设置目标为单指令\r
+        }\r
+\r
         uapi_set_screen_on_api(); // 亮屏检测\r
         if (TraingCardView::GetInstance() == nullptr)\r
         {\r
             NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGCRAD); // 切换Slice\r
+            //对训练项目的选择只进行一次判断\r
+            switch (cmd->sportType)\r
+            {\r
+            // 室外走路\r
+            case 0:\r
+                OpenSensor(ExerciseClass::FREE_TRAINING);\r
+                break;\r
+            // 室外跑步\r
+            case 1:\r
+                OpenSensor(ExerciseClass::OUTDOOR);\r
+                break;\r
+            // 室外骑行\r
+            case 2:\r
+                OpenSensor(ExerciseClass::FREE_TRAINING);\r
+                break;\r
+            default:\r
+                break;\r
+            }\r
         }\r
 \r
         // 增加打印\r
         PRINT("cmd->sportType[%d],cmd->controlmd[%d],cmd->sportTagType[%d],cmd->sportTag[%d]\r\n", cmd->sportType, cmd->controlmd, cmd->sportTagType, cmd->sportTag);\r
 \r
-        switch (cmd->sportType)\r
-        {\r
-        // 室外走路\r
-        case 0:\r
-            OpenSensor(ExerciseClass::FREE_TRAINING);\r
-            break;\r
-        // 室外跑步\r
-        case 1:\r
-            OpenSensor(ExerciseClass::OUTDOOR);\r
-            break;\r
-        // 室外骑行\r
-        case 2:\r
-            OpenSensor(ExerciseClass::FREE_TRAINING);\r
-            break;\r
-        default:\r
-            break;\r
-        }\r
-\r
         ExerciseState cmdState = static_cast<ExerciseState>(cmd->controlmd);\r
         PRINT("ExerciseState::End   [%d]\r\n", cmdState);\r
 \r
-        // 结束\r
-        if (cmdState == ExerciseState::End)\r
+        switch (cmdState)\r
+        {\r
+        case ExerciseState::End:\r
         {\r
             PRINT("ExerciseState::End   [%d]\r\n", cmdState);\r
             TraingModel::GetInstance()->SetSportState(ExerciseState::End);\r
@@ -333,46 +341,39 @@ namespace OHOS
             }\r
             else\r
             {\r
-                // 训练量不足进入训练记录界面\r
                 NativeAbility::GetInstance().ChangeSlice(VIEW_TRAINING_RECORD);\r
             }\r
-            return true;\r
+            break;\r
         }\r
-        // 暂停和恢复\r
-        if (cmdState == ExerciseState::Pause)\r
+        case ExerciseState::Pause:\r
         {\r
             PRINT("ExerciseState %d\r\n", cmdState);\r
             TraingModel::GetInstance()->SetSportState(cmdState);\r
             TrainingControlView::GetInstance()->GetLabel()->SetText("继续");\r
             TrainingControlView::GetInstance()->GetButton()->SetImageSrc(SPORT_CONTINUE_IMAGE, SPORT_CONTINUE_IMAGE);\r
-            // 设置为暂停状态\r
             TraingModel::GetInstance()->SetSportState(ExerciseState::Pause);\r
-            // 暂停计时器\r
             PauseTimer();\r
-            // 暂停运动库\r
             ControlSensor(ExerciseState::Pause);\r
-            return true;\r
+            break;\r
         }\r
-        if (cmdState == ExerciseState::Continue)\r
+        case ExerciseState::Continue:\r
         {\r
-            // 暂停状态\r
             TrainingControlView::GetInstance()->GetLabel()->SetText("暂停");\r
             TrainingControlView::GetInstance()->GetButton()->SetImageSrc(SPORT_PAUSE_IMAGE, SPORT_PAUSE_IMAGE);\r
-            // 设置为继续状态\r
             TraingModel::GetInstance()->SetSportState(ExerciseState::Continue);\r
-            // 恢复计时器\r
             ResumeTimer();\r
-            // 恢复运动库\r
             ControlSensor(ExerciseState::Continue);\r
-            return true;\r
+            break;\r
         }\r
-        if (cmdState == ExerciseState::Start)\r
+        case ExerciseState::Start:\r
         {\r
             PRINT("ExerciseState::Start   [%d]\r\n", cmdState);\r
-            // 开启运动\r
             ControlSensor(cmdState);\r
-            // 设置APP开启运动\r
             TraingModel::GetInstance()->SetSportOpenWay(true);\r
+            break;\r
+        }\r
+        default:\r
+            break;\r
         }\r
 \r
         return true;\r