-
Generate fit exceptions using C, with code attached
uint32_t startTime = 1007518019;
uint32_t timestamp = 1007518019;
FILE *fp;
data_crc = 0;
fp = fopen("test.fit", "w+b");
WriteFileHeader(fp);
// Write file id message.
{
FIT_UINT8 local_mesg_number = 0;
FIT_FILE_ID_MESG file_id;
Fit_InitMesg(fit_mesg_defs[FIT_MESG_FILE_ID], &file_id);
file_id.type = FIT_FILE_ACTIVITY;
file_id.manufacturer = FIT_MANUFACTURER_CHILEAF;
file_id.serial_number = 1000;
file_id.product = 1;
file_id.time_created = startTime;
WriteMessageDefinition(local_mesg_number, fit_mesg_defs[FIT_MESG_FILE_ID], FIT_FILE_ID_MESG_DEF_SIZE, fp);
WriteMessage(local_mesg_number, &file_id, FIT_FILE_ID_MESG_SIZE, fp);
}
{
FIT_UINT8 local_mesg_number = 0;
FIT_EVENT_MESG eventMesgStart;
Fit_InitMesg(fit_mesg_defs[FIT_MESG_EVENT], &eventMesgStart);
eventMesgStart.timestamp = startTime;
eventMesgStart.event = FIT_EVENT_TIMER;
eventMesgStart.event_type = FIT_EVENT_TYPE_START;
WriteMessageDefinition(local_mesg_number, fit_mesg_defs[FIT_MESG_EVENT], FIT_EVENT_MESG_DEF_SIZE, fp);
WriteMessage(local_mesg_number, &eventMesgStart, FIT_EVENT_MESG_SIZE, fp);
}
{
FIT_UINT8 local_mesg_number = 0;
FIT_RECORD_MESG recordMesg;
Fit_InitMesg(fit_mesg_defs[FIT_MESG_RECORD], &recordMesg);
for (FIT_UINT16 i = 0; i < 1; i++)
{
recordMesg.heart_rate = (FIT_UINT8)(200);
recordMesg.timestamp = timestamp;
WriteMessageDefinition(local_mesg_number, fit_mesg_defs[FIT_MESG_RECORD], FIT_RECORD_MESG_DEF_SIZE, fp);
WriteMessage(local_mesg_number, &recordMesg, FIT_RECORD_MESG_SIZE, fp);
timestamp++;
}
}
{
FIT_UINT8 local_mesg_number = 0;
FIT_SESSION_MESG sessionMesg;
Fit_InitMesg(fit_mesg_defs[FIT_MESG_SESSION], &sessionMesg);
sessionMesg.timestamp = timestamp;
sessionMesg.start_time = startTime;
sessionMesg.total_elapsed_time = (timestamp- startTime);
sessionMesg.total_timer_time = (timestamp- startTime);
sessionMesg.sport = FIT_SPORT_STAND_UP_PADDLEBOARDING;
sessionMesg.sub_sport = FIT_SUB_SPORT_GENERIC;
sessionMesg.first_lap_index = 0;
sessionMesg.num_laps = 1;
WriteMessageDefinition(local_mesg_number, fit_mesg_defs[FIT_MESG_SESSION], FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT, fp);
WriteMessage(local_mesg_number, &sessionMesg, FIT_SESSION_MESG_SIZE, fp);
}
{
FIT_UINT8 local_mesg_number = 0;
FIT_ACTIVITY_MESG activityMesg;
Fit_InitMesg(fit_mesg_defs[FIT_MESG_ACTIVITY], &activityMesg);
activityMesg.timestamp = timestamp;
activityMesg.num_sessions = 1;
activityMesg.local_timestamp = -7 * 3600+ timestamp;
WriteMessageDefinition(local_mesg_number, fit_mesg_defs[FIT_MESG_ACTIVITY], FIT_ACTIVITY_MESG_DEF_SIZE, fp);
WriteMessage(local_mesg_number, &activityMesg, FIT_ACTIVITY_MESG_SIZE, fp);
}
fwrite(&data_crc, 1, sizeof(FIT_UINT16), fp);
WriteFileHeader(fp);
fclose(fp);