Upgrade FIT SDK to 21.188 (#4776) [skip ci]

The presence of a \ in a string will produce an error in python 3.13
Using raw strings in all regexes avoids this.
This commit is contained in:
Poncho
2025-12-27 20:05:48 +01:00
committed by GitHub
parent a45bb2503c
commit 2d463c8bc2
3 changed files with 9454 additions and 9483 deletions

View File

@@ -1,5 +1,5 @@
{
"VERSION":1755650470,
"VERSION":1766851697,
"COMMENT":"Do not edit this file directly it is generated.",
"PRODUCTS":[
{ "manu":1, "prod":3592, "name":"Varia Rtl515" },
@@ -508,6 +508,7 @@
{ "manu":1, "prod":4446, "name":"Hrm Fit" },
{ "manu":1, "prod":4472, "name":"Marq Gen2 Commander" },
{ "manu":1, "prod":4477, "name":"Lily Athlete" },
{ "manu":1, "prod":4525, "name":"Rally X10" },
{ "manu":1, "prod":4532, "name":"Fenix8 Solar" },
{ "manu":1, "prod":4533, "name":"Fenix8 Solar Large" },
{ "manu":1, "prod":4534, "name":"Fenix8 Small" },
@@ -520,14 +521,25 @@
{ "manu":1, "prod":4586, "name":"Instinct3 Amoled 45Mm" },
{ "manu":1, "prod":4587, "name":"Instinct3 Amoled 50Mm" },
{ "manu":1, "prod":4588, "name":"Descent G2" },
{ "manu":1, "prod":4603, "name":"Venu X1" },
{ "manu":1, "prod":4606, "name":"Hrm 200" },
{ "manu":1, "prod":4625, "name":"Vivoactive6" },
{ "manu":1, "prod":4631, "name":"Fenix8 Pro" },
{ "manu":1, "prod":4633, "name":"Edge 550" },
{ "manu":1, "prod":4634, "name":"Edge 850" },
{ "manu":1, "prod":4643, "name":"Venu4" },
{ "manu":1, "prod":4644, "name":"Venu4S" },
{ "manu":1, "prod":4647, "name":"Approachs44" },
{ "manu":1, "prod":4655, "name":"Edge Mtb" },
{ "manu":1, "prod":4656, "name":"Approachs50" },
{ "manu":1, "prod":4666, "name":"Fenix E" },
{ "manu":1, "prod":4745, "name":"Bounce2" },
{ "manu":1, "prod":4759, "name":"Instinct3 Solar 50Mm" },
{ "manu":1, "prod":4775, "name":"Tactix8 Amoled" },
{ "manu":1, "prod":4776, "name":"Tactix8 Solar" },
{ "manu":1, "prod":4879, "name":"D2 Mach2" },
{ "manu":1, "prod":4678, "name":"Instinct Crossover Amoled" },
{ "manu":1, "prod":4944, "name":"D2 Air X15" },
{ "manu":1, "prod":10007, "name":"Sdm4" },
{ "manu":1, "prod":10014, "name":"Edge Remote" },
{ "manu":1, "prod":20533, "name":"Tacx Training App Win" },
@@ -774,6 +786,7 @@
{ "manu":333, "name":"Tektro Racing Products" },
{ "manu":334, "name":"Darad Innovation Corporation" },
{ "manu":335, "name":"Cycloptim" },
{ "manu":337, "name":"Runna" },
{ "manu":5759, "name":"Actigraphcorp" }
],
@@ -2177,6 +2190,8 @@
{ "num": 389 , "desc":"Hsa Configuration Data" },
{ "num": 393 , "desc":"Dive Apnea Alarm" },
{ "num": 398 , "desc":"Skin Temp Overnight" },
{ "num": 409 , "desc":"Hsa Wrist Temperature Data" }
{ "num": 409 , "desc":"Hsa Wrist Temperature Data" },
{ "num": 470 , "desc":"Sleep Disruption Severity Period" },
{ "num": 471 , "desc":"Sleep Disruption Overnight Severity" }
]
}

View File

@@ -5,8 +5,8 @@
// Transfer (FIT) Protocol License.
/////////////////////////////////////////////////////////////////////////////////////////////
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
// Profile Version = 21.171.0Release
// Tag = production/release/21.171.0-0-g57fed75
// Profile Version = 21.188.0Release
// Tag = production/release/21.188.0-0-g55050f8
// Product = EXAMPLE
// Alignment = 4 bytes, padding disabled.
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -180,9 +180,11 @@ typedef FIT_UINT16 FIT_MESG_NUM;
#define FIT_MESG_NUM_DIVE_APNEA_ALARM (FIT_CAST(FIT_MESG_NUM, 393))
#define FIT_MESG_NUM_SKIN_TEMP_OVERNIGHT (FIT_CAST(FIT_MESG_NUM, 398))
#define FIT_MESG_NUM_HSA_WRIST_TEMPERATURE_DATA (FIT_CAST(FIT_MESG_NUM, 409)) // Message number for the HSA wrist temperature data message
#define FIT_MESG_NUM_SLEEP_DISRUPTION_SEVERITY_PERIOD (FIT_CAST(FIT_MESG_NUM, 470))
#define FIT_MESG_NUM_SLEEP_DISRUPTION_OVERNIGHT_SEVERITY (FIT_CAST(FIT_MESG_NUM, 471))
#define FIT_MESG_NUM_MFG_RANGE_MIN (FIT_CAST(FIT_MESG_NUM, 0xFF00)) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
#define FIT_MESG_NUM_MFG_RANGE_MAX (FIT_CAST(FIT_MESG_NUM, 0xFFFE)) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
#define FIT_MESG_NUM_COUNT 123
#define FIT_MESG_NUM_COUNT 125
typedef FIT_UINT8 FIT_CHECKSUM;
#define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID
@@ -1347,8 +1349,9 @@ typedef FIT_UINT16 FIT_MANUFACTURER;
#define FIT_MANUFACTURER_TEKTRO_RACING_PRODUCTS (FIT_CAST(FIT_MANUFACTURER, 333))
#define FIT_MANUFACTURER_DARAD_INNOVATION_CORPORATION (FIT_CAST(FIT_MANUFACTURER, 334))
#define FIT_MANUFACTURER_CYCLOPTIM (FIT_CAST(FIT_MANUFACTURER, 335))
#define FIT_MANUFACTURER_RUNNA (FIT_CAST(FIT_MANUFACTURER, 337))
#define FIT_MANUFACTURER_ACTIGRAPHCORP (FIT_CAST(FIT_MANUFACTURER, 5759))
#define FIT_MANUFACTURER_COUNT 232
#define FIT_MANUFACTURER_COUNT 233
typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID
@@ -1782,6 +1785,7 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_HRM_FIT (FIT_CAST(FIT_GARMIN_PRODUCT, 4446))
#define FIT_GARMIN_PRODUCT_MARQ_GEN2_COMMANDER (FIT_CAST(FIT_GARMIN_PRODUCT, 4472))
#define FIT_GARMIN_PRODUCT_LILY_ATHLETE (FIT_CAST(FIT_GARMIN_PRODUCT, 4477)) // aka the Lily 2 Active
#define FIT_GARMIN_PRODUCT_RALLY_X10 (FIT_CAST(FIT_GARMIN_PRODUCT, 4525)) // Rally 110/210
#define FIT_GARMIN_PRODUCT_FENIX8_SOLAR (FIT_CAST(FIT_GARMIN_PRODUCT, 4532))
#define FIT_GARMIN_PRODUCT_FENIX8_SOLAR_LARGE (FIT_CAST(FIT_GARMIN_PRODUCT, 4533))
#define FIT_GARMIN_PRODUCT_FENIX8_SMALL (FIT_CAST(FIT_GARMIN_PRODUCT, 4534))
@@ -1794,14 +1798,25 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_INSTINCT3_AMOLED_45MM (FIT_CAST(FIT_GARMIN_PRODUCT, 4586))
#define FIT_GARMIN_PRODUCT_INSTINCT3_AMOLED_50MM (FIT_CAST(FIT_GARMIN_PRODUCT, 4587))
#define FIT_GARMIN_PRODUCT_DESCENT_G2 (FIT_CAST(FIT_GARMIN_PRODUCT, 4588))
#define FIT_GARMIN_PRODUCT_VENU_X1 (FIT_CAST(FIT_GARMIN_PRODUCT, 4603))
#define FIT_GARMIN_PRODUCT_HRM_200 (FIT_CAST(FIT_GARMIN_PRODUCT, 4606))
#define FIT_GARMIN_PRODUCT_VIVOACTIVE6 (FIT_CAST(FIT_GARMIN_PRODUCT, 4625))
#define FIT_GARMIN_PRODUCT_FENIX8_PRO (FIT_CAST(FIT_GARMIN_PRODUCT, 4631))
#define FIT_GARMIN_PRODUCT_EDGE_550 (FIT_CAST(FIT_GARMIN_PRODUCT, 4633))
#define FIT_GARMIN_PRODUCT_EDGE_850 (FIT_CAST(FIT_GARMIN_PRODUCT, 4634))
#define FIT_GARMIN_PRODUCT_VENU4 (FIT_CAST(FIT_GARMIN_PRODUCT, 4643))
#define FIT_GARMIN_PRODUCT_VENU4S (FIT_CAST(FIT_GARMIN_PRODUCT, 4644))
#define FIT_GARMIN_PRODUCT_APPROACHS44 (FIT_CAST(FIT_GARMIN_PRODUCT, 4647))
#define FIT_GARMIN_PRODUCT_EDGE_MTB (FIT_CAST(FIT_GARMIN_PRODUCT, 4655))
#define FIT_GARMIN_PRODUCT_APPROACHS50 (FIT_CAST(FIT_GARMIN_PRODUCT, 4656))
#define FIT_GARMIN_PRODUCT_FENIX_E (FIT_CAST(FIT_GARMIN_PRODUCT, 4666))
#define FIT_GARMIN_PRODUCT_BOUNCE2 (FIT_CAST(FIT_GARMIN_PRODUCT, 4745))
#define FIT_GARMIN_PRODUCT_INSTINCT3_SOLAR_50MM (FIT_CAST(FIT_GARMIN_PRODUCT, 4759))
#define FIT_GARMIN_PRODUCT_TACTIX8_AMOLED (FIT_CAST(FIT_GARMIN_PRODUCT, 4775))
#define FIT_GARMIN_PRODUCT_TACTIX8_SOLAR (FIT_CAST(FIT_GARMIN_PRODUCT, 4776))
#define FIT_GARMIN_PRODUCT_D2_MACH2 (FIT_CAST(FIT_GARMIN_PRODUCT, 4879))
#define FIT_GARMIN_PRODUCT_INSTINCT_CROSSOVER_AMOLED (FIT_CAST(FIT_GARMIN_PRODUCT, 4678))
#define FIT_GARMIN_PRODUCT_D2_AIR_X15 (FIT_CAST(FIT_GARMIN_PRODUCT, 4944))
#define FIT_GARMIN_PRODUCT_SDM4 (FIT_CAST(FIT_GARMIN_PRODUCT, 10007)) // SDM4 footpod
#define FIT_GARMIN_PRODUCT_EDGE_REMOTE (FIT_CAST(FIT_GARMIN_PRODUCT, 10014))
#define FIT_GARMIN_PRODUCT_TACX_TRAINING_APP_WIN (FIT_CAST(FIT_GARMIN_PRODUCT, 20533))
@@ -1814,7 +1829,7 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_CONNECTIQ_SIMULATOR (FIT_CAST(FIT_GARMIN_PRODUCT, 65531))
#define FIT_GARMIN_PRODUCT_ANDROID_ANTPLUS_PLUGIN (FIT_CAST(FIT_GARMIN_PRODUCT, 65532))
#define FIT_GARMIN_PRODUCT_CONNECT (FIT_CAST(FIT_GARMIN_PRODUCT, 65534)) // Garmin Connect website
#define FIT_GARMIN_PRODUCT_COUNT 462
#define FIT_GARMIN_PRODUCT_COUNT 474
typedef FIT_UINT8 FIT_ANTPLUS_DEVICE_TYPE;
#define FIT_ANTPLUS_DEVICE_TYPE_INVALID FIT_UINT8_INVALID
@@ -5103,6 +5118,14 @@ typedef FIT_ENUM FIT_RADAR_THREAT_LEVEL_TYPE;
#define FIT_RADAR_THREAT_LEVEL_TYPE_THREAT_APPROACHING_FAST (FIT_CAST(FIT_RADAR_THREAT_LEVEL_TYPE, 3))
#define FIT_RADAR_THREAT_LEVEL_TYPE_COUNT 4
typedef FIT_ENUM FIT_SLEEP_DISRUPTION_SEVERITY;
#define FIT_SLEEP_DISRUPTION_SEVERITY_INVALID FIT_ENUM_INVALID
#define FIT_SLEEP_DISRUPTION_SEVERITY_NONE (FIT_CAST(FIT_SLEEP_DISRUPTION_SEVERITY, 0))
#define FIT_SLEEP_DISRUPTION_SEVERITY_LOW (FIT_CAST(FIT_SLEEP_DISRUPTION_SEVERITY, 1))
#define FIT_SLEEP_DISRUPTION_SEVERITY_MEDIUM (FIT_CAST(FIT_SLEEP_DISRUPTION_SEVERITY, 2))
#define FIT_SLEEP_DISRUPTION_SEVERITY_HIGH (FIT_CAST(FIT_SLEEP_DISRUPTION_SEVERITY, 3))
#define FIT_SLEEP_DISRUPTION_SEVERITY_COUNT 4
typedef FIT_ENUM FIT_MAX_MET_SPEED_SOURCE;
#define FIT_MAX_MET_SPEED_SOURCE_INVALID FIT_ENUM_INVALID
#define FIT_MAX_MET_SPEED_SOURCE_ONBOARD_GPS (FIT_CAST(FIT_MAX_MET_SPEED_SOURCE, 0))
@@ -5176,7 +5199,6 @@ typedef struct
// file_id message
#define FIT_FILE_ID_MESG_SIZE 35
#define FIT_FILE_ID_MESG_DEF_SIZE 26
#define FIT_FILE_ID_MESG_PRODUCT_NAME_COUNT 20
@@ -5224,7 +5246,6 @@ typedef struct
} FIT_FILE_ID_MESG_DEF;
// file_creator message
#define FIT_FILE_CREATOR_MESG_SIZE 3
#define FIT_FILE_CREATOR_MESG_DEF_SIZE 11
@@ -5256,7 +5277,6 @@ typedef struct
} FIT_FILE_CREATOR_MESG_DEF;
// software message
#define FIT_SOFTWARE_MESG_SIZE 20
#define FIT_SOFTWARE_MESG_DEF_SIZE 14
#define FIT_SOFTWARE_MESG_PART_NUMBER_COUNT 16
@@ -5292,7 +5312,6 @@ typedef struct
} FIT_SOFTWARE_MESG_DEF;
// slave_device message
#define FIT_SLAVE_DEVICE_MESG_SIZE 4
#define FIT_SLAVE_DEVICE_MESG_DEF_SIZE 11
@@ -5324,7 +5343,6 @@ typedef struct
} FIT_SLAVE_DEVICE_MESG_DEF;
// capabilities message
#define FIT_CAPABILITIES_MESG_SIZE 13
#define FIT_CAPABILITIES_MESG_DEF_SIZE 17
#define FIT_CAPABILITIES_MESG_LANGUAGES_COUNT 4
@@ -5364,7 +5382,6 @@ typedef struct
} FIT_CAPABILITIES_MESG_DEF;
// file_capabilities message
#define FIT_FILE_CAPABILITIES_MESG_SIZE 26
#define FIT_FILE_CAPABILITIES_MESG_DEF_SIZE 23
#define FIT_FILE_CAPABILITIES_MESG_DIRECTORY_COUNT 16
@@ -5409,7 +5426,6 @@ typedef struct
} FIT_FILE_CAPABILITIES_MESG_DEF;
// mesg_capabilities message
#define FIT_MESG_CAPABILITIES_MESG_SIZE 8
#define FIT_MESG_CAPABILITIES_MESG_DEF_SIZE 20
@@ -5450,7 +5466,6 @@ typedef struct
} FIT_MESG_CAPABILITIES_MESG_DEF;
// field_capabilities message
#define FIT_FIELD_CAPABILITIES_MESG_SIZE 8
#define FIT_FIELD_CAPABILITIES_MESG_DEF_SIZE 20
@@ -5491,7 +5506,6 @@ typedef struct
} FIT_FIELD_CAPABILITIES_MESG_DEF;
// device_settings message
#define FIT_DEVICE_SETTINGS_MESG_SIZE 36
#define FIT_DEVICE_SETTINGS_MESG_DEF_SIZE 56
#define FIT_DEVICE_SETTINGS_MESG_TIME_OFFSET_COUNT 2
@@ -5573,7 +5587,6 @@ typedef struct
} FIT_DEVICE_SETTINGS_MESG_DEF;
// user_profile message
#define FIT_USER_PROFILE_MESG_SIZE 50
#define FIT_USER_PROFILE_MESG_DEF_SIZE 80
#define FIT_USER_PROFILE_MESG_FRIENDLY_NAME_COUNT 16
@@ -5676,7 +5689,6 @@ typedef struct
} FIT_USER_PROFILE_MESG_DEF;
// hrm_profile message
#define FIT_HRM_PROFILE_MESG_SIZE 7
#define FIT_HRM_PROFILE_MESG_DEF_SIZE 20
@@ -5717,7 +5729,6 @@ typedef struct
} FIT_HRM_PROFILE_MESG_DEF;
// sdm_profile message
#define FIT_SDM_PROFILE_MESG_SIZE 14
#define FIT_SDM_PROFILE_MESG_DEF_SIZE 29
@@ -5767,7 +5778,6 @@ typedef struct
} FIT_SDM_PROFILE_MESG_DEF;
// bike_profile message
#define FIT_BIKE_PROFILE_MESG_SIZE 59
#define FIT_BIKE_PROFILE_MESG_DEF_SIZE 101
#define FIT_BIKE_PROFILE_MESG_NAME_COUNT 16
@@ -5892,7 +5902,6 @@ typedef struct
} FIT_BIKE_PROFILE_MESG_DEF;
// connectivity message
#define FIT_CONNECTIVITY_MESG_SIZE 36
#define FIT_CONNECTIVITY_MESG_DEF_SIZE 44
#define FIT_CONNECTIVITY_MESG_NAME_COUNT 24
@@ -5958,7 +5967,6 @@ typedef struct
} FIT_CONNECTIVITY_MESG_DEF;
// zones_target message
#define FIT_ZONES_TARGET_MESG_SIZE 6
#define FIT_ZONES_TARGET_MESG_DEF_SIZE 20
@@ -5999,7 +6007,6 @@ typedef struct
} FIT_ZONES_TARGET_MESG_DEF;
// sport message
#define FIT_SPORT_MESG_SIZE 18
#define FIT_SPORT_MESG_DEF_SIZE 14
#define FIT_SPORT_MESG_NAME_COUNT 16
@@ -6035,7 +6042,6 @@ typedef struct
} FIT_SPORT_MESG_DEF;
// hr_zone message
#define FIT_HR_ZONE_MESG_SIZE 19
#define FIT_HR_ZONE_MESG_DEF_SIZE 14
#define FIT_HR_ZONE_MESG_NAME_COUNT 16
@@ -6071,7 +6077,6 @@ typedef struct
} FIT_HR_ZONE_MESG_DEF;
// speed_zone message
#define FIT_SPEED_ZONE_MESG_SIZE 20
#define FIT_SPEED_ZONE_MESG_DEF_SIZE 14
#define FIT_SPEED_ZONE_MESG_NAME_COUNT 16
@@ -6107,7 +6112,6 @@ typedef struct
} FIT_SPEED_ZONE_MESG_DEF;
// cadence_zone message
#define FIT_CADENCE_ZONE_MESG_SIZE 19
#define FIT_CADENCE_ZONE_MESG_DEF_SIZE 14
#define FIT_CADENCE_ZONE_MESG_NAME_COUNT 16
@@ -6143,7 +6147,6 @@ typedef struct
} FIT_CADENCE_ZONE_MESG_DEF;
// power_zone message
#define FIT_POWER_ZONE_MESG_SIZE 20
#define FIT_POWER_ZONE_MESG_DEF_SIZE 14
#define FIT_POWER_ZONE_MESG_NAME_COUNT 16
@@ -6179,7 +6182,6 @@ typedef struct
} FIT_POWER_ZONE_MESG_DEF;
// met_zone message
#define FIT_MET_ZONE_MESG_SIZE 6
#define FIT_MET_ZONE_MESG_DEF_SIZE 17
@@ -6217,7 +6219,6 @@ typedef struct
} FIT_MET_ZONE_MESG_DEF;
// training_settings message
#define FIT_TRAINING_SETTINGS_MESG_SIZE 10
#define FIT_TRAINING_SETTINGS_MESG_DEF_SIZE 14
@@ -6252,7 +6253,6 @@ typedef struct
} FIT_TRAINING_SETTINGS_MESG_DEF;
// dive_settings message
#define FIT_DIVE_SETTINGS_MESG_SIZE 17
#define FIT_DIVE_SETTINGS_MESG_DEF_SIZE 11
#define FIT_DIVE_SETTINGS_MESG_NAME_COUNT 16
@@ -6285,7 +6285,6 @@ typedef struct
} FIT_DIVE_SETTINGS_MESG_DEF;
// goal message
#define FIT_GOAL_MESG_SIZE 27
#define FIT_GOAL_MESG_DEF_SIZE 44
@@ -6350,7 +6349,6 @@ typedef struct
} FIT_GOAL_MESG_DEF;
// activity message
#define FIT_ACTIVITY_MESG_SIZE 18
#define FIT_ACTIVITY_MESG_DEF_SIZE 29
@@ -6400,7 +6398,6 @@ typedef struct
} FIT_ACTIVITY_MESG_DEF;
// session message
#define FIT_SESSION_MESG_SIZE 234
#define FIT_SESSION_MESG_DEF_SIZE 290
#define FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT 1
@@ -6414,7 +6411,7 @@ typedef struct
typedef struct
{
FIT_DATE_TIME timestamp; // 1 * s + 0, Sesson end time.
FIT_DATE_TIME timestamp; // 1 * s + 0,
FIT_DATE_TIME start_time; //
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
@@ -6719,7 +6716,6 @@ typedef struct
} FIT_SESSION_MESG_DEF;
// lap message
#define FIT_LAP_MESG_SIZE 190
#define FIT_LAP_MESG_DEF_SIZE 257
#define FIT_LAP_MESG_TIME_IN_HR_ZONE_COUNT 1
@@ -6737,7 +6733,7 @@ typedef struct
typedef struct
{
FIT_DATE_TIME timestamp; // 1 * s + 0, Lap end time.
FIT_DATE_TIME timestamp; // 1 * s + 0,
FIT_DATE_TIME start_time; //
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
@@ -7009,7 +7005,6 @@ typedef struct
} FIT_LAP_MESG_DEF;
// length message
#define FIT_LENGTH_MESG_SIZE 38
#define FIT_LENGTH_MESG_DEF_SIZE 59
#define FIT_LENGTH_MESG_STROKE_COUNT_COUNT 1
@@ -7091,7 +7086,6 @@ typedef struct
} FIT_LENGTH_MESG_DEF;
// record message
#define FIT_RECORD_MESG_SIZE 99
#define FIT_RECORD_MESG_DEF_SIZE 149
#define FIT_RECORD_MESG_COMPRESSED_SPEED_DISTANCE_COUNT 3
@@ -7263,7 +7257,6 @@ typedef struct
} FIT_RECORD_MESG_DEF;
// event message
#define FIT_EVENT_MESG_SIZE 23
#define FIT_EVENT_MESG_DEF_SIZE 47
@@ -7331,7 +7324,6 @@ typedef struct
} FIT_EVENT_MESG_DEF;
// device_info message
#define FIT_DEVICE_INFO_MESG_SIZE 51
#define FIT_DEVICE_INFO_MESG_DEF_SIZE 59
#define FIT_DEVICE_INFO_MESG_PRODUCT_NAME_COUNT 20
@@ -7413,7 +7405,6 @@ typedef struct
} FIT_DEVICE_INFO_MESG_DEF;
// device_aux_battery_info message
#define FIT_DEVICE_AUX_BATTERY_INFO_MESG_SIZE 9
#define FIT_DEVICE_AUX_BATTERY_INFO_MESG_DEF_SIZE 20
@@ -7454,7 +7445,6 @@ typedef struct
} FIT_DEVICE_AUX_BATTERY_INFO_MESG_DEF;
// training_file message
#define FIT_TRAINING_FILE_MESG_SIZE 17
#define FIT_TRAINING_FILE_MESG_DEF_SIZE 23
@@ -7498,7 +7488,6 @@ typedef struct
} FIT_TRAINING_FILE_MESG_DEF;
// weather_conditions message
#define FIT_WEATHER_CONDITIONS_MESG_SIZE 93
#define FIT_WEATHER_CONDITIONS_MESG_DEF_SIZE 53
#define FIT_WEATHER_CONDITIONS_MESG_LOCATION_COUNT 64
@@ -7573,7 +7562,6 @@ typedef struct
} FIT_WEATHER_CONDITIONS_MESG_DEF;
// weather_alert message
#define FIT_WEATHER_ALERT_MESG_SIZE 26
#define FIT_WEATHER_ALERT_MESG_DEF_SIZE 23
#define FIT_WEATHER_ALERT_MESG_REPORT_ID_COUNT 12
@@ -7618,7 +7606,6 @@ typedef struct
} FIT_WEATHER_ALERT_MESG_DEF;
// nmea_sentence message
#define FIT_NMEA_SENTENCE_MESG_SIZE 89
#define FIT_NMEA_SENTENCE_MESG_DEF_SIZE 14
#define FIT_NMEA_SENTENCE_MESG_SENTENCE_COUNT 83
@@ -7654,7 +7641,6 @@ typedef struct
} FIT_NMEA_SENTENCE_MESG_DEF;
// aviation_attitude message
#define FIT_AVIATION_ATTITUDE_MESG_SIZE 26
#define FIT_AVIATION_ATTITUDE_MESG_DEF_SIZE 41
#define FIT_AVIATION_ATTITUDE_MESG_SYSTEM_TIME_COUNT 1
@@ -7726,7 +7712,6 @@ typedef struct
} FIT_AVIATION_ATTITUDE_MESG_DEF;
// video_title message
#define FIT_VIDEO_TITLE_MESG_SIZE 84
#define FIT_VIDEO_TITLE_MESG_DEF_SIZE 14
#define FIT_VIDEO_TITLE_MESG_TEXT_COUNT 80
@@ -7762,7 +7747,6 @@ typedef struct
} FIT_VIDEO_TITLE_MESG_DEF;
// video_description message
#define FIT_VIDEO_DESCRIPTION_MESG_SIZE 254
#define FIT_VIDEO_DESCRIPTION_MESG_DEF_SIZE 14
#define FIT_VIDEO_DESCRIPTION_MESG_TEXT_COUNT 250
@@ -7798,7 +7782,6 @@ typedef struct
} FIT_VIDEO_DESCRIPTION_MESG_DEF;
// set message
#define FIT_SET_MESG_SIZE 2
#define FIT_SET_MESG_DEF_SIZE 8
@@ -7827,7 +7810,6 @@ typedef struct
} FIT_SET_MESG_DEF;
// field_description message
#define FIT_FIELD_DESCRIPTION_MESG_SIZE 90
#define FIT_FIELD_DESCRIPTION_MESG_DEF_SIZE 35
#define FIT_FIELD_DESCRIPTION_MESG_FIELD_NAME_COUNT 64
@@ -7885,7 +7867,6 @@ typedef struct
} FIT_FIELD_DESCRIPTION_MESG_DEF;
// developer_data_id message
#define FIT_DEVELOPER_DATA_ID_MESG_SIZE 39
#define FIT_DEVELOPER_DATA_ID_MESG_DEF_SIZE 20
#define FIT_DEVELOPER_DATA_ID_MESG_DEVELOPER_ID_COUNT 16
@@ -7928,7 +7909,6 @@ typedef struct
} FIT_DEVELOPER_DATA_ID_MESG_DEF;
// course message
#define FIT_COURSE_MESG_SIZE 22
#define FIT_COURSE_MESG_DEF_SIZE 17
#define FIT_COURSE_MESG_NAME_COUNT 16
@@ -7967,7 +7947,6 @@ typedef struct
} FIT_COURSE_MESG_DEF;
// course_point message
#define FIT_COURSE_POINT_MESG_SIZE 36
#define FIT_COURSE_POINT_MESG_DEF_SIZE 29
#define FIT_COURSE_POINT_MESG_NAME_COUNT 16
@@ -8018,7 +7997,6 @@ typedef struct
} FIT_COURSE_POINT_MESG_DEF;
// segment_id message
#define FIT_SEGMENT_ID_MESG_SIZE 15
#define FIT_SEGMENT_ID_MESG_DEF_SIZE 32
#define FIT_SEGMENT_ID_MESG_NAME_COUNT 1
@@ -8073,7 +8051,6 @@ typedef struct
} FIT_SEGMENT_ID_MESG_DEF;
// segment_leaderboard_entry message
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_SIZE 16
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF_SIZE 23
#define FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_NAME_COUNT 1
@@ -8118,7 +8095,6 @@ typedef struct
} FIT_SEGMENT_LEADERBOARD_ENTRY_MESG_DEF;
// segment_point message
#define FIT_SEGMENT_POINT_MESG_SIZE 20
#define FIT_SEGMENT_POINT_MESG_DEF_SIZE 23
#define FIT_SEGMENT_POINT_MESG_LEADER_TIME_COUNT 1
@@ -8163,7 +8139,6 @@ typedef struct
} FIT_SEGMENT_POINT_MESG_DEF;
// segment_lap message
#define FIT_SEGMENT_LAP_MESG_SIZE 210
#define FIT_SEGMENT_LAP_MESG_DEF_SIZE 224
#define FIT_SEGMENT_LAP_MESG_NAME_COUNT 16
@@ -8175,7 +8150,7 @@ typedef struct
typedef struct
{
FIT_DATE_TIME timestamp; // 1 * s + 0, Lap end time.
FIT_DATE_TIME timestamp; // 1 * s + 0,
FIT_DATE_TIME start_time; //
FIT_SINT32 start_position_lat; // 1 * semicircles + 0,
FIT_SINT32 start_position_long; // 1 * semicircles + 0,
@@ -8414,7 +8389,6 @@ typedef struct
} FIT_SEGMENT_LAP_MESG_DEF;
// segment_file message
#define FIT_SEGMENT_FILE_MESG_SIZE 17
#define FIT_SEGMENT_FILE_MESG_DEF_SIZE 26
#define FIT_SEGMENT_FILE_MESG_LEADER_GROUP_PRIMARY_KEY_COUNT 1
@@ -8465,7 +8439,6 @@ typedef struct
} FIT_SEGMENT_FILE_MESG_DEF;
// workout message
#define FIT_WORKOUT_MESG_SIZE 29
#define FIT_WORKOUT_MESG_DEF_SIZE 29
#define FIT_WORKOUT_MESG_WKT_NAME_COUNT 16
@@ -8516,7 +8489,6 @@ typedef struct
} FIT_WORKOUT_MESG_DEF;
// workout_session message
#define FIT_WORKOUT_SESSION_MESG_SIZE 11
#define FIT_WORKOUT_SESSION_MESG_DEF_SIZE 26
@@ -8563,7 +8535,6 @@ typedef struct
} FIT_WORKOUT_SESSION_MESG_DEF;
// workout_step message
#define FIT_WORKOUT_STEP_MESG_SIZE 103
#define FIT_WORKOUT_STEP_MESG_DEF_SIZE 53
#define FIT_WORKOUT_STEP_MESG_WKT_STEP_NAME_COUNT 16
@@ -8639,7 +8610,6 @@ typedef struct
} FIT_WORKOUT_STEP_MESG_DEF;
// exercise_title message
#define FIT_EXERCISE_TITLE_MESG_SIZE 206
#define FIT_EXERCISE_TITLE_MESG_DEF_SIZE 17
#define FIT_EXERCISE_TITLE_MESG_WKT_STEP_NAME_COUNT 200
@@ -8678,7 +8648,6 @@ typedef struct
} FIT_EXERCISE_TITLE_MESG_DEF;
// schedule message
#define FIT_SCHEDULE_MESG_SIZE 18
#define FIT_SCHEDULE_MESG_DEF_SIZE 26
@@ -8725,7 +8694,6 @@ typedef struct
} FIT_SCHEDULE_MESG_DEF;
// totals message
#define FIT_TOTALS_MESG_SIZE 29
#define FIT_TOTALS_MESG_DEF_SIZE 32
@@ -8778,7 +8746,6 @@ typedef struct
} FIT_TOTALS_MESG_DEF;
// weight_scale message
#define FIT_WEIGHT_SCALE_MESG_SIZE 27
#define FIT_WEIGHT_SCALE_MESG_DEF_SIZE 47
@@ -8846,7 +8813,6 @@ typedef struct
} FIT_WEIGHT_SCALE_MESG_DEF;
// blood_pressure message
#define FIT_BLOOD_PRESSURE_MESG_SIZE 21
#define FIT_BLOOD_PRESSURE_MESG_DEF_SIZE 38
@@ -8905,7 +8871,6 @@ typedef struct
} FIT_BLOOD_PRESSURE_MESG_DEF;
// monitoring_info message
#define FIT_MONITORING_INFO_MESG_SIZE 8
#define FIT_MONITORING_INFO_MESG_DEF_SIZE 11
@@ -8937,7 +8902,6 @@ typedef struct
} FIT_MONITORING_INFO_MESG_DEF;
// monitoring message
#define FIT_MONITORING_MESG_SIZE 31
#define FIT_MONITORING_MESG_DEF_SIZE 41
@@ -8999,7 +8963,6 @@ typedef struct
} FIT_MONITORING_MESG_DEF;
// monitoring_hr_data message
#define FIT_MONITORING_HR_DATA_MESG_SIZE 6
#define FIT_MONITORING_HR_DATA_MESG_DEF_SIZE 14
@@ -9034,7 +8997,6 @@ typedef struct
} FIT_MONITORING_HR_DATA_MESG_DEF;
// hr message
#define FIT_HR_MESG_SIZE 13
#define FIT_HR_MESG_DEF_SIZE 23
#define FIT_HR_MESG_EVENT_TIMESTAMP_COUNT 1
@@ -9081,7 +9043,6 @@ typedef struct
} FIT_HR_MESG_DEF;
// ant_rx message
#define FIT_ANT_RX_MESG_SIZE 25
#define FIT_ANT_RX_MESG_DEF_SIZE 23
#define FIT_ANT_RX_MESG_DATA_COUNT 8
@@ -9127,7 +9088,6 @@ typedef struct
} FIT_ANT_RX_MESG_DEF;
// ant_tx message
#define FIT_ANT_TX_MESG_SIZE 25
#define FIT_ANT_TX_MESG_DEF_SIZE 23
#define FIT_ANT_TX_MESG_DATA_COUNT 8
@@ -9173,7 +9133,6 @@ typedef struct
} FIT_ANT_TX_MESG_DEF;
// exd_screen_configuration message
#define FIT_EXD_SCREEN_CONFIGURATION_MESG_SIZE 4
#define FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF_SIZE 17
@@ -9211,7 +9170,6 @@ typedef struct
} FIT_EXD_SCREEN_CONFIGURATION_MESG_DEF;
// exd_data_field_configuration message
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_SIZE 6
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF_SIZE 23
#define FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_TITLE_COUNT 1
@@ -9256,7 +9214,6 @@ typedef struct
} FIT_EXD_DATA_FIELD_CONFIGURATION_MESG_DEF;
// exd_data_concept_configuration message
#define FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_SIZE 11
#define FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF_SIZE 38
@@ -9315,7 +9272,6 @@ typedef struct
} FIT_EXD_DATA_CONCEPT_CONFIGURATION_MESG_DEF;
// hrv message
#define FIT_HRV_MESG_SIZE 2
#define FIT_HRV_MESG_DEF_SIZE 8
#define FIT_HRV_MESG_TIME_COUNT 1

View File

@@ -23,7 +23,7 @@ for line in lines:
match = re.search("FIT_GARMIN_PROD", line)
if match:
name = re.search("(FIT_GARMIN_PRODUCT_)([^ \t]*)", line)
id = re.search("\(FIT_GARMIN_PRODUCT, ([ 0-9]*)", line)
id = re.search(r"\(FIT_GARMIN_PRODUCT, ([ 0-9]*)", line)
if name and id:
# extract name
print(pre+ '{ "manu":1, "prod":' + id.group(1).strip() + ', "name":"' + name.group(2).strip().replace('_',' ').title() + '" }', end="")
@@ -36,7 +36,7 @@ print("\n ],\n")
print(' "MANUFACTURERS":[')
pre=" "
for line in lines:
match = re.search("MANUFACTURER_([^ \t]*).*\(FIT_MANUFACTURER, ([ 0-9]*)", line)
match = re.search(r"MANUFACTURER_([^ \t]*).*\(FIT_MANUFACTURER, ([ 0-9]*)", line)
if match:
print(pre+ '{ "manu":' + match.group(2).strip() + ', "name":"' + match.group(1).strip().replace('_',' ').title() + '" }', end="")
pre=",\n "
@@ -59,7 +59,7 @@ for line in fieldlines:
print(' "MESSAGES":[')
pre=" "
for line in lines:
match = re.search("FIT_MESG_NUM_([^ \t]*).*\(FIT_MESG_NUM, ([ 0-9]*)", line)
match = re.search(r"FIT_MESG_NUM_([^ \t]*).*\(FIT_MESG_NUM, ([ 0-9]*)", line)
if match:
num = int(match.group(2).strip())
if num > 0: