// 打印配置
void printTrainingData(const Trainingdata &data); /*打印数据*/
void printf_data(SportData *data); /*打印函数*/
+ void PrintHeartRateTable();
+ void PrintPaceTable();
//配置用户信息
void SetUserSportdata();
std::vector<HeartRateEntry> heartRateTable; // 心率表
std::vector<PaceEntry> paceTable; // 配速表
- const size_t MAX_ENTRIES = 10000; // 规定最大进场条目数
- /*std::unique_ptr<SportData> sportdata;*/ // 使用 std::unique_ptr 管理
- // SportData 对象
+ const size_t MAX_ENTRIES = 100000; // 规定最大进场条目数
+
int user_maxHeart{190}; // 用户最高心率
int user_Age{20}; // 用户年龄
OHOS::TraingModel::GetInstance()->RecordSportData();
return;
}
-namespace OHOS {
#if TIMER
+namespace OHOS {
// 声明定时器变量
static osTimerId_t g_startCounting = NULL; // 定时器
static constexpr uint64_t MS_ONE_SECONDS = 1000;
paceTable.push_back(newEntry);
return true; // 返回成功
}
+//心率表打印
+void TraingModel::PrintHeartRateTable() {
+ size_t heartRateCount = heartRateTable.size();
+ if (heartRateCount == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "心率表为空,无法打印。");
+ return;
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Heart Rate Table:");
+ for (const auto &entry : heartRateTable) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "时间戳: %u, 心率: %d",
+ entry.timestamp, entry.heartRate);
+ }
+}
+//配速表打印
+void TraingModel::PrintPaceTable() {
+ size_t paceCount = paceTable.size();
+ if (paceCount == 0) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "配速表为空,无法打印。");
+ return;
+ }
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Pace Table:");
+ for (const auto &entry : paceTable) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "时间戳: %u, 配速: %.2f",
+ entry.timestamp, entry.pace);
+ }
+}
// 保存心率表
bool TraingModel::SaveHeartTable() {
+
+ //打印数组
+ PrintHeartRateTable();
+
CreateDirectoryIfNotExists(TRAINING_HEART_FILE);
size_t heartRateCount = heartRateTable.size();
// 保存配速表
bool TraingModel::SavePaceTable() {
+
+ //打印数组
+ PrintPaceTable();
+
CreateDirectoryIfNotExists(TRAINING_PACE_FILE);
size_t paceCount = paceTable.size();
}
}
-// 每分钟进行配速和心率数据存储
+// 每10秒进行配速和心率数据存储
void TraingModel::StoreDataIfMinutePassed() {
- if (sportdata->duration % 60 == 0) {
+ if (sportdata->duration % 10 == 0) {
uint32_t timestamp;
if (uapi_get_timestampe_ss(×tamp) == ERRCODE_SUCC) {
AddHeartRateData(timestamp, sportdata->heart);