TraingModel::GetInstance()->InitLabel(labeluheart, 146, 642, 240, 40, "label11", "平均心率(次/分)", DEFAULT_VECTOR_FONT_FILENAME, 30);
TraingModel::GetInstance()->InitLabel(labelusteps, 146, 772, 240, 40, "label12", "步数", DEFAULT_VECTOR_FONT_FILENAME, 30);
TraingModel::GetInstance()->InitLabel(labelustrong, 146, 902, 240, 40, "label2", "训练强度", DEFAULT_VECTOR_FONT_FILENAME, 30);
- TraingModel::GetInstance()->InitLabel(labelnote, 80, 1024, 300, 40, "label8", "更多请前往手机APP查看", DEFAULT_VECTOR_FONT_FILENAME, 30);
+ TraingModel::GetInstance()->InitLabel(labelnote, 80, 1024, 300, 40, "label8", "更多请前往APP查看", DEFAULT_VECTOR_FONT_FILENAME, 30);
// 设置文本颜色
labelduration->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
free(end_time); // 释放内存
PRINT("sportdata->end_time [%s]\r\n", (sportdata->end_time).c_str());
+ if (SaveSportData() == false)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSportData error!");
+ }
+#if 0
/*存储正常数据[运动量达标]*/
if (MomentumFlag)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SaveSportData error!");
}
}
-
+#endif
Startstate = false;
Endstate = true;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Not set Sport_Tag!");
return 0; // 添加默认返回值
}
+ /*打印存储数据*/
+ void TraingModel::printTrainingData(const Trainingdata &data)
+ {
+ printf("Trainingdata:\n");
+ printf("src: %d\n", data.src);
+ printf("bt: %u\n", data.bt);
+ printf("ty: %u\n", data.ty);
+ printf("st: %u\n", data.st);
+ printf("sp: %u\n", data.sp);
+ printf("tgt: %u\n", data.tgt);
+ printf("tg: %u\n", data.tg);
+ printf("pg: %u\n", data.pg);
+ printf("du: %u\n", data.du);
+ printf("ca: %u\n", data.ca);
+ printf("di: %u\n", data.di);
+ printf("hr: %u\n", data.hr);
+ printf("stp: %u\n", data.stp);
+ printf("ti: %u\n", data.ti);
+ printf("cir: %u\n", data.cir);
+ printf("alt: %u\n", data.alt);
+ }
/*获取训练目标完成百分比*/
int TraingModel::GetGoaldegree()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "write_Trainingdata_data is error!");
return false;
}
+ /*test*/
+
+ Trainingdata *readdata{nullptr};
+ int i = 0;
+ while (readdata = read_Trainingdata_data("2024_04_24", i))
+ {
+ printTrainingData(*readdata);
+ // delete readdata;
+ free(readdata);
+ i++;
+ }
return true;
// delete data;
}
+
/*设置开启方式*/
void TraingModel::SetSportOpenWay(bool way)
{
extern "C"
{
#endif
- // 处理数据头
- static void write_Trainingdata_hard_data(char *data)
- {
- char file_path[128] = {0};
- sprintf(file_path, "%shard_%s.bin", TRAINING_PATH, data);
-
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s", file_path);
- FILE *fp = fopen(file_path, "rb+");
- Trainingdata_hard hard;
- int ret = 0;
- if (fp == NULL)
- {
- hard.num = 0;
- fp = fopen(file_path, "wb+");
- }
- else
- {
- ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp);
- }
-
- fseek(fp, 0, SEEK_SET);
- fclose(fp);
-
- fp = fopen(file_path, "wb+");
- hard.num++;
- ret = fwrite((void *)&hard, sizeof(Trainingdata_hard), 1, fp);
- fseek(fp, 0, SEEK_SET);
- fclose(fp);
- }
// 获得数据个数
- static int get_Trainingdata_data_num(char *data)
+ static int get_Trainingdata_data_num(FILE *fp)
{
-
- char file_path[128] = {0};
- sprintf(file_path, "%shard_%s.bin", TRAINING_PATH, data);
-
- FILE *fp = fopen(file_path, "ab");
- if (fp == NULL)
+ long size = 0;
+ if (fp != NULL)
{
- return 0xffffff;
+ fseek(fp, 0, SEEK_END); // 将文件指针移动到文件末尾
+ size = ftell(fp); // 获取当前文件指针位置,即文件大小
+ fseek(fp, 0, SEEK_SET); // 将文件指针移回文件开头
}
- fseek(fp, 0, SEEK_SET);
- Trainingdata_hard hard;
- int ret = fread((void *)&hard, sizeof(Trainingdata_hard), 1, fp);
- fseek(fp, 0, SEEK_SET);
- fclose(fp);
- return hard.num;
+ int num = size / 64;
+ return num;
}
// 写数据
sprintf(file_path, "%s%s.bin", TRAINING_PATH, timeday);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s", file_path);
- write_Trainingdata_hard_data(timeday);
FILE *fp = fopen(file_path, "ab");
if (fp == NULL)
{
FILE *fp = fopen(file_path, "rb+");
Trainingdata *data = (Trainingdata *)malloc(sizeof(Trainingdata));
- if (fp == NULL || get_Trainingdata_data_num(timedata) < offset)
+ if (fp == NULL || get_Trainingdata_data_num(fp) < offset)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL %d", get_Trainingdata_data_num(timedata));
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "file is NULL %d", get_Trainingdata_data_num(fp));
return NULL;
}
#if HARD_OFF