-
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);