#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
TraingSubscribeTopic(TOPIC_EVENT_ACTIVITY_UPDATE); // 进行消息订阅
TraingSubscribeTopic(TOPIC_EVENT_BLE_TRAINING);
}
- /*设置运动类型*/
+ /*设置运动类型*/
void TraingModel::SetSportType(Exercisetype type)
{
sportType_ = type;
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)
{
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;
}
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
}\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