Update FIT SDK definitions to 21.115

This commit is contained in:
Alejandro Martinez
2023-06-22 20:03:43 -03:00
parent 14cb588f55
commit 7173437ab2
2 changed files with 172 additions and 16 deletions

View File

@@ -5,8 +5,8 @@
// Transfer (FIT) Protocol License.
/////////////////////////////////////////////////////////////////////////////////////////////
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
// Profile Version = 21.105Release
// Tag = production/release/21.105.00-0-gdc65d24
// Profile Version = 21.115Release
// Tag = production/release/21.115.00-0-gfe0a7f8
// Product = EXAMPLE
// Alignment = 4 bytes, padding disabled.
/////////////////////////////////////////////////////////////////////////////////////////////
@@ -138,24 +138,33 @@ typedef FIT_UINT16 FIT_MESG_NUM;
#define FIT_MESG_NUM_MAGNETOMETER_DATA ((FIT_MESG_NUM)208)
#define FIT_MESG_NUM_BAROMETER_DATA ((FIT_MESG_NUM)209)
#define FIT_MESG_NUM_ONE_D_SENSOR_CALIBRATION ((FIT_MESG_NUM)210)
#define FIT_MESG_NUM_MONITORING_HR_DATA ((FIT_MESG_NUM)211)
#define FIT_MESG_NUM_TIME_IN_ZONE ((FIT_MESG_NUM)216)
#define FIT_MESG_NUM_SET ((FIT_MESG_NUM)225)
#define FIT_MESG_NUM_STRESS_LEVEL ((FIT_MESG_NUM)227)
#define FIT_MESG_NUM_MAX_MET_DATA ((FIT_MESG_NUM)229)
#define FIT_MESG_NUM_DIVE_SETTINGS ((FIT_MESG_NUM)258)
#define FIT_MESG_NUM_DIVE_GAS ((FIT_MESG_NUM)259)
#define FIT_MESG_NUM_DIVE_ALARM ((FIT_MESG_NUM)262)
#define FIT_MESG_NUM_EXERCISE_TITLE ((FIT_MESG_NUM)264)
#define FIT_MESG_NUM_DIVE_SUMMARY ((FIT_MESG_NUM)268)
#define FIT_MESG_NUM_SPO2_DATA ((FIT_MESG_NUM)269)
#define FIT_MESG_NUM_SLEEP_LEVEL ((FIT_MESG_NUM)275)
#define FIT_MESG_NUM_JUMP ((FIT_MESG_NUM)285)
#define FIT_MESG_NUM_BEAT_INTERVALS ((FIT_MESG_NUM)290)
#define FIT_MESG_NUM_RESPIRATION_RATE ((FIT_MESG_NUM)297)
#define FIT_MESG_NUM_SPLIT ((FIT_MESG_NUM)312)
#define FIT_MESG_NUM_CLIMB_PRO ((FIT_MESG_NUM)317)
#define FIT_MESG_NUM_TANK_UPDATE ((FIT_MESG_NUM)319)
#define FIT_MESG_NUM_TANK_SUMMARY ((FIT_MESG_NUM)323)
#define FIT_MESG_NUM_SLEEP_ASSESSMENT ((FIT_MESG_NUM)346)
#define FIT_MESG_NUM_HRV_STATUS_SUMMARY ((FIT_MESG_NUM)370)
#define FIT_MESG_NUM_HRV_VALUE ((FIT_MESG_NUM)371)
#define FIT_MESG_NUM_DEVICE_AUX_BATTERY_INFO ((FIT_MESG_NUM)375)
#define FIT_MESG_NUM_DIVE_APNEA_ALARM ((FIT_MESG_NUM)393)
#define FIT_MESG_NUM_MFG_RANGE_MIN ((FIT_MESG_NUM)0xFF00) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
#define FIT_MESG_NUM_MFG_RANGE_MAX ((FIT_MESG_NUM)0xFFFE) // 0xFF00 - 0xFFFE reserved for manufacturer specific messages
#define FIT_MESG_NUM_COUNT 96
#define FIT_MESG_NUM_COUNT 105
typedef FIT_UINT8 FIT_CHECKSUM;
#define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID
@@ -698,8 +707,18 @@ typedef FIT_ENUM FIT_SUB_SPORT;
#define FIT_SUB_SPORT_TABATA ((FIT_SUB_SPORT)75) // HIIT
#define FIT_SUB_SPORT_PICKLEBALL ((FIT_SUB_SPORT)84) // Racket
#define FIT_SUB_SPORT_PADEL ((FIT_SUB_SPORT)85) // Racket
#define FIT_SUB_SPORT_FLY_CANOPY ((FIT_SUB_SPORT)110) // Flying
#define FIT_SUB_SPORT_FLY_PARAGLIDE ((FIT_SUB_SPORT)111) // Flying
#define FIT_SUB_SPORT_FLY_PARAMOTOR ((FIT_SUB_SPORT)112) // Flying
#define FIT_SUB_SPORT_FLY_PRESSURIZED ((FIT_SUB_SPORT)113) // Flying
#define FIT_SUB_SPORT_FLY_NAVIGATE ((FIT_SUB_SPORT)114) // Flying
#define FIT_SUB_SPORT_FLY_TIMER ((FIT_SUB_SPORT)115) // Flying
#define FIT_SUB_SPORT_FLY_ALTIMETER ((FIT_SUB_SPORT)116) // Flying
#define FIT_SUB_SPORT_FLY_WX ((FIT_SUB_SPORT)117) // Flying
#define FIT_SUB_SPORT_FLY_VFR ((FIT_SUB_SPORT)118) // Flying
#define FIT_SUB_SPORT_FLY_IFR ((FIT_SUB_SPORT)119) // Flying
#define FIT_SUB_SPORT_ALL ((FIT_SUB_SPORT)254)
#define FIT_SUB_SPORT_COUNT 72
#define FIT_SUB_SPORT_COUNT 82
typedef FIT_ENUM FIT_SPORT_EVENT;
#define FIT_SPORT_EVENT_INVALID FIT_ENUM_INVALID
@@ -833,6 +852,7 @@ typedef FIT_ENUM FIT_EVENT;
#define FIT_EVENT_ELEV_HIGH_ALERT ((FIT_EVENT)45) // Group 0. Start / stop when in alert condition.
#define FIT_EVENT_ELEV_LOW_ALERT ((FIT_EVENT)46) // Group 0. Start / stop when in alert condition.
#define FIT_EVENT_COMM_TIMEOUT ((FIT_EVENT)47) // marker
#define FIT_EVENT_AUTO_ACTIVITY_DETECT ((FIT_EVENT)54) // marker
#define FIT_EVENT_DIVE_ALERT ((FIT_EVENT)56) // marker
#define FIT_EVENT_DIVE_GAS_SWITCHED ((FIT_EVENT)57) // marker
#define FIT_EVENT_TANK_PRESSURE_RESERVE ((FIT_EVENT)71) // marker
@@ -842,7 +862,7 @@ typedef FIT_ENUM FIT_EVENT;
#define FIT_EVENT_TANK_BATTERY_LOW ((FIT_EVENT)76) // marker
#define FIT_EVENT_TANK_POD_CONNECTED ((FIT_EVENT)81) // marker - tank pod has connected
#define FIT_EVENT_TANK_POD_DISCONNECTED ((FIT_EVENT)82) // marker - tank pod has lost connection
#define FIT_EVENT_COUNT 45
#define FIT_EVENT_COUNT 46
typedef FIT_ENUM FIT_EVENT_TYPE;
#define FIT_EVENT_TYPE_INVALID FIT_ENUM_INVALID
@@ -1199,6 +1219,9 @@ typedef FIT_UINT16 FIT_MANUFACTURER;
#define FIT_MANUFACTURER_KEISER_FITNESS ((FIT_MANUFACTURER)143)
#define FIT_MANUFACTURER_ZWIFT_BYTE ((FIT_MANUFACTURER)144)
#define FIT_MANUFACTURER_PORSCHE_EP ((FIT_MANUFACTURER)145)
#define FIT_MANUFACTURER_BLACKBIRD ((FIT_MANUFACTURER)146)
#define FIT_MANUFACTURER_MEILAN_BYTE ((FIT_MANUFACTURER)147)
#define FIT_MANUFACTURER_EZON ((FIT_MANUFACTURER)148)
#define FIT_MANUFACTURER_DEVELOPMENT ((FIT_MANUFACTURER)255)
#define FIT_MANUFACTURER_HEALTHANDLIFE ((FIT_MANUFACTURER)257)
#define FIT_MANUFACTURER_LEZYNE ((FIT_MANUFACTURER)258)
@@ -1266,8 +1289,10 @@ typedef FIT_UINT16 FIT_MANUFACTURER;
#define FIT_MANUFACTURER_LSEC ((FIT_MANUFACTURER)320) // Lishun Electric & Communication
#define FIT_MANUFACTURER_LULULEMON_STUDIO ((FIT_MANUFACTURER)321)
#define FIT_MANUFACTURER_SHANYUE ((FIT_MANUFACTURER)322)
#define FIT_MANUFACTURER_SPINNING_MDA ((FIT_MANUFACTURER)323)
#define FIT_MANUFACTURER_HILLDATING ((FIT_MANUFACTURER)324)
#define FIT_MANUFACTURER_ACTIGRAPHCORP ((FIT_MANUFACTURER)5759)
#define FIT_MANUFACTURER_COUNT 211
#define FIT_MANUFACTURER_COUNT 216
typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID
@@ -1522,6 +1547,7 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_FENIX5S_PLUS_APAC ((FIT_GARMIN_PRODUCT)3134)
#define FIT_GARMIN_PRODUCT_FENIX5X_PLUS_APAC ((FIT_GARMIN_PRODUCT)3135)
#define FIT_GARMIN_PRODUCT_EDGE_520_PLUS_APAC ((FIT_GARMIN_PRODUCT)3142)
#define FIT_GARMIN_PRODUCT_DESCENT_T1 ((FIT_GARMIN_PRODUCT)3143)
#define FIT_GARMIN_PRODUCT_FR235L_ASIA ((FIT_GARMIN_PRODUCT)3144)
#define FIT_GARMIN_PRODUCT_FR245_ASIA ((FIT_GARMIN_PRODUCT)3145)
#define FIT_GARMIN_PRODUCT_VIVO_ACTIVE3M_APAC ((FIT_GARMIN_PRODUCT)3163)
@@ -1609,6 +1635,7 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_EDGE_1040 ((FIT_GARMIN_PRODUCT)3843)
#define FIT_GARMIN_PRODUCT_MARQ_GOLFER_ASIA ((FIT_GARMIN_PRODUCT)3850)
#define FIT_GARMIN_PRODUCT_VENU2_PLUS ((FIT_GARMIN_PRODUCT)3851)
#define FIT_GARMIN_PRODUCT_GNSS ((FIT_GARMIN_PRODUCT)3865)
#define FIT_GARMIN_PRODUCT_FR55 ((FIT_GARMIN_PRODUCT)3869)
#define FIT_GARMIN_PRODUCT_INSTINCT_2 ((FIT_GARMIN_PRODUCT)3888)
#define FIT_GARMIN_PRODUCT_FENIX7S ((FIT_GARMIN_PRODUCT)3905)
@@ -1638,6 +1665,8 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_VENU2_PLUS_ASIA ((FIT_GARMIN_PRODUCT)4017)
#define FIT_GARMIN_PRODUCT_FR955 ((FIT_GARMIN_PRODUCT)4024)
#define FIT_GARMIN_PRODUCT_FR55_ASIA ((FIT_GARMIN_PRODUCT)4033)
#define FIT_GARMIN_PRODUCT_EDGE_540 ((FIT_GARMIN_PRODUCT)4061)
#define FIT_GARMIN_PRODUCT_EDGE_840 ((FIT_GARMIN_PRODUCT)4062)
#define FIT_GARMIN_PRODUCT_VIVOSMART_5 ((FIT_GARMIN_PRODUCT)4063)
#define FIT_GARMIN_PRODUCT_INSTINCT_2_ASIA ((FIT_GARMIN_PRODUCT)4071)
#define FIT_GARMIN_PRODUCT_MARQ_GEN2 ((FIT_GARMIN_PRODUCT)4105) // Adventurer, Athlete, Captain, Golfer
@@ -1650,6 +1679,9 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_TACTIX7 ((FIT_GARMIN_PRODUCT)4135)
#define FIT_GARMIN_PRODUCT_INSTINCT_CROSSOVER ((FIT_GARMIN_PRODUCT)4155)
#define FIT_GARMIN_PRODUCT_EDGE_EXPLORE2 ((FIT_GARMIN_PRODUCT)4169)
#define FIT_GARMIN_PRODUCT_APPROACH_S70 ((FIT_GARMIN_PRODUCT)4233)
#define FIT_GARMIN_PRODUCT_FR265_LARGE ((FIT_GARMIN_PRODUCT)4257)
#define FIT_GARMIN_PRODUCT_FR265_SMALL ((FIT_GARMIN_PRODUCT)4258)
#define FIT_GARMIN_PRODUCT_TACX_NEO_SMART ((FIT_GARMIN_PRODUCT)4265) // Neo Smart, Tacx
#define FIT_GARMIN_PRODUCT_TACX_NEO2_SMART ((FIT_GARMIN_PRODUCT)4266) // Neo 2 Smart, Tacx
#define FIT_GARMIN_PRODUCT_TACX_NEO2_T_SMART ((FIT_GARMIN_PRODUCT)4267) // Neo 2T Smart, Tacx
@@ -1663,7 +1695,14 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_TACX_FLUX2_SMART ((FIT_GARMIN_PRODUCT)4275) // Flux 2 Smart, Tacx
#define FIT_GARMIN_PRODUCT_TACX_MAGNUM ((FIT_GARMIN_PRODUCT)4276) // Magnum, Tacx
#define FIT_GARMIN_PRODUCT_EDGE_1040_ASIA ((FIT_GARMIN_PRODUCT)4305)
#define FIT_GARMIN_PRODUCT_EPIX_GEN2_PRO_42 ((FIT_GARMIN_PRODUCT)4312)
#define FIT_GARMIN_PRODUCT_EPIX_GEN2_PRO_47 ((FIT_GARMIN_PRODUCT)4313)
#define FIT_GARMIN_PRODUCT_EPIX_GEN2_PRO_51 ((FIT_GARMIN_PRODUCT)4314)
#define FIT_GARMIN_PRODUCT_FR965 ((FIT_GARMIN_PRODUCT)4315)
#define FIT_GARMIN_PRODUCT_ENDURO2 ((FIT_GARMIN_PRODUCT)4341)
#define FIT_GARMIN_PRODUCT_FENIX7_PRO_SOLAR ((FIT_GARMIN_PRODUCT)4375)
#define FIT_GARMIN_PRODUCT_INSTINCT_2X ((FIT_GARMIN_PRODUCT)4394)
#define FIT_GARMIN_PRODUCT_DESCENT_T2 ((FIT_GARMIN_PRODUCT)4442)
#define FIT_GARMIN_PRODUCT_SDM4 ((FIT_GARMIN_PRODUCT)10007) // SDM4 footpod
#define FIT_GARMIN_PRODUCT_EDGE_REMOTE ((FIT_GARMIN_PRODUCT)10014)
#define FIT_GARMIN_PRODUCT_TACX_TRAINING_APP_WIN ((FIT_GARMIN_PRODUCT)20533)
@@ -1676,7 +1715,7 @@ typedef FIT_UINT16 FIT_GARMIN_PRODUCT;
#define FIT_GARMIN_PRODUCT_CONNECTIQ_SIMULATOR ((FIT_GARMIN_PRODUCT)65531)
#define FIT_GARMIN_PRODUCT_ANDROID_ANTPLUS_PLUGIN ((FIT_GARMIN_PRODUCT)65532)
#define FIT_GARMIN_PRODUCT_CONNECT ((FIT_GARMIN_PRODUCT)65534) // Garmin Connect website
#define FIT_GARMIN_PRODUCT_COUNT 405
#define FIT_GARMIN_PRODUCT_COUNT 419
typedef FIT_UINT8 FIT_ANTPLUS_DEVICE_TYPE;
#define FIT_ANTPLUS_DEVICE_TYPE_INVALID FIT_UINT8_INVALID
@@ -2671,6 +2710,12 @@ typedef FIT_UINT8 FIT_SET_TYPE;
#define FIT_SET_TYPE_ACTIVE ((FIT_SET_TYPE)1)
#define FIT_SET_TYPE_COUNT 2
typedef FIT_ENUM FIT_MAX_MET_CATEGORY;
#define FIT_MAX_MET_CATEGORY_INVALID FIT_ENUM_INVALID
#define FIT_MAX_MET_CATEGORY_GENERIC ((FIT_MAX_MET_CATEGORY)0)
#define FIT_MAX_MET_CATEGORY_CYCLING ((FIT_MAX_MET_CATEGORY)1)
#define FIT_MAX_MET_CATEGORY_COUNT 2
typedef FIT_UINT16 FIT_EXERCISE_CATEGORY;
#define FIT_EXERCISE_CATEGORY_INVALID FIT_UINT16_INVALID
#define FIT_EXERCISE_CATEGORY_BENCH_PRESS ((FIT_EXERCISE_CATEGORY)0)
@@ -4156,6 +4201,23 @@ typedef FIT_ENUM FIT_DIVE_BACKLIGHT_MODE;
#define FIT_DIVE_BACKLIGHT_MODE_ALWAYS_ON ((FIT_DIVE_BACKLIGHT_MODE)1)
#define FIT_DIVE_BACKLIGHT_MODE_COUNT 2
typedef FIT_ENUM FIT_SLEEP_LEVEL;
#define FIT_SLEEP_LEVEL_INVALID FIT_ENUM_INVALID
#define FIT_SLEEP_LEVEL_UNMEASURABLE ((FIT_SLEEP_LEVEL)0)
#define FIT_SLEEP_LEVEL_AWAKE ((FIT_SLEEP_LEVEL)1)
#define FIT_SLEEP_LEVEL_LIGHT ((FIT_SLEEP_LEVEL)2)
#define FIT_SLEEP_LEVEL_DEEP ((FIT_SLEEP_LEVEL)3)
#define FIT_SLEEP_LEVEL_REM ((FIT_SLEEP_LEVEL)4)
#define FIT_SLEEP_LEVEL_COUNT 5
typedef FIT_ENUM FIT_SPO2_MEASUREMENT_TYPE;
#define FIT_SPO2_MEASUREMENT_TYPE_INVALID FIT_ENUM_INVALID
#define FIT_SPO2_MEASUREMENT_TYPE_OFF_WRIST ((FIT_SPO2_MEASUREMENT_TYPE)0)
#define FIT_SPO2_MEASUREMENT_TYPE_SPOT_CHECK ((FIT_SPO2_MEASUREMENT_TYPE)1)
#define FIT_SPO2_MEASUREMENT_TYPE_CONTINUOUS_CHECK ((FIT_SPO2_MEASUREMENT_TYPE)2)
#define FIT_SPO2_MEASUREMENT_TYPE_PERIODIC ((FIT_SPO2_MEASUREMENT_TYPE)3)
#define FIT_SPO2_MEASUREMENT_TYPE_COUNT 4
typedef FIT_ENUM FIT_CCR_SETPOINT_SWITCH_MODE;
#define FIT_CCR_SETPOINT_SWITCH_MODE_INVALID FIT_ENUM_INVALID
#define FIT_CCR_SETPOINT_SWITCH_MODE_MANUAL ((FIT_CCR_SETPOINT_SWITCH_MODE)0) // User switches setpoints manually
@@ -4228,6 +4290,28 @@ typedef FIT_ENUM FIT_RADAR_THREAT_LEVEL_TYPE;
#define FIT_RADAR_THREAT_LEVEL_TYPE_THREAT_APPROACHING_FAST ((FIT_RADAR_THREAT_LEVEL_TYPE)3)
#define FIT_RADAR_THREAT_LEVEL_TYPE_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_MAX_MET_SPEED_SOURCE)0)
#define FIT_MAX_MET_SPEED_SOURCE_CONNECTED_GPS ((FIT_MAX_MET_SPEED_SOURCE)1)
#define FIT_MAX_MET_SPEED_SOURCE_CADENCE ((FIT_MAX_MET_SPEED_SOURCE)2)
#define FIT_MAX_MET_SPEED_SOURCE_COUNT 3
typedef FIT_ENUM FIT_MAX_MET_HEART_RATE_SOURCE;
#define FIT_MAX_MET_HEART_RATE_SOURCE_INVALID FIT_ENUM_INVALID
#define FIT_MAX_MET_HEART_RATE_SOURCE_WHR ((FIT_MAX_MET_HEART_RATE_SOURCE)0) // Wrist Heart Rate Monitor
#define FIT_MAX_MET_HEART_RATE_SOURCE_HRM ((FIT_MAX_MET_HEART_RATE_SOURCE)1) // Chest Strap Heart Rate Monitor
#define FIT_MAX_MET_HEART_RATE_SOURCE_COUNT 2
typedef FIT_ENUM FIT_HRV_STATUS;
#define FIT_HRV_STATUS_INVALID FIT_ENUM_INVALID
#define FIT_HRV_STATUS_NONE ((FIT_HRV_STATUS)0)
#define FIT_HRV_STATUS_POOR ((FIT_HRV_STATUS)1)
#define FIT_HRV_STATUS_LOW ((FIT_HRV_STATUS)2)
#define FIT_HRV_STATUS_UNBALANCED ((FIT_HRV_STATUS)3)
#define FIT_HRV_STATUS_BALANCED ((FIT_HRV_STATUS)4)
#define FIT_HRV_STATUS_COUNT 5
typedef FIT_ENUM FIT_NO_FLY_TIME_MODE;
#define FIT_NO_FLY_TIME_MODE_INVALID FIT_ENUM_INVALID
#define FIT_NO_FLY_TIME_MODE_STANDARD ((FIT_NO_FLY_TIME_MODE)0) // Standard Diver Alert Network no-fly guidance
@@ -4254,7 +4338,7 @@ typedef struct
FIT_UINT8 arch;
FIT_MESG_NUM global_mesg_num;
FIT_UINT8 num_fields;
FIT_FIELD_CONVERT fields[92];
FIT_FIELD_CONVERT fields[95];
} FIT_MESG_CONVERT;
@@ -4263,7 +4347,7 @@ typedef struct
///////////////////////////////////////////////////////////////////////
#define FIT_MESG_SIZE 254
#define FIT_MESG_DEF_SIZE 281
#define FIT_MESG_DEF_SIZE 290
// pad message
@@ -5469,12 +5553,13 @@ typedef struct
// session message
#define FIT_SESSION_MESG_SIZE 210
#define FIT_SESSION_MESG_DEF_SIZE 281
#define FIT_SESSION_MESG_SIZE 234
#define FIT_SESSION_MESG_DEF_SIZE 290
#define FIT_SESSION_MESG_TIME_IN_HR_ZONE_COUNT 1
#define FIT_SESSION_MESG_TIME_IN_SPEED_ZONE_COUNT 1
#define FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT 1
#define FIT_SESSION_MESG_TIME_IN_POWER_ZONE_COUNT 1
#define FIT_SESSION_MESG_SPORT_PROFILE_NAME_COUNT 16
#define FIT_SESSION_MESG_STROKE_COUNT_COUNT 1
#define FIT_SESSION_MESG_ZONE_COUNT_COUNT 1
#define FIT_SESSION_MESG_OPPONENT_NAME_COUNT 1
@@ -5493,6 +5578,8 @@ typedef struct
FIT_SINT32 nec_long; // 1 * semicircles + 0, North east corner longitude
FIT_SINT32 swc_lat; // 1 * semicircles + 0, South west corner latitude
FIT_SINT32 swc_long; // 1 * semicircles + 0, South west corner longitude
FIT_SINT32 end_position_lat; // 1 * semicircles + 0,
FIT_SINT32 end_position_long; // 1 * semicircles + 0,
FIT_UINT32 avg_stroke_count; // 10 * strokes/lap + 0,
FIT_UINT32 total_work; // 1 * J + 0,
FIT_UINT32 total_moving_time; // 1000 * s + 0,
@@ -5501,6 +5588,7 @@ typedef struct
FIT_UINT32 time_in_cadence_zone[FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE_COUNT]; // 1000 * s + 0,
FIT_UINT32 time_in_power_zone[FIT_SESSION_MESG_TIME_IN_POWER_ZONE_COUNT]; // 1000 * s + 0,
FIT_UINT32 avg_lap_time; // 1000 * s + 0,
FIT_STRING sport_profile_name[FIT_SESSION_MESG_SPORT_PROFILE_NAME_COUNT]; // Sport name from associated sport mesg
FIT_UINT32 enhanced_avg_speed; // 1000 * m/s + 0, total_distance / total_timer_time
FIT_UINT32 enhanced_max_speed; // 1000 * m/s + 0,
FIT_UINT32 enhanced_avg_altitude; // 5 * m + 500,
@@ -5589,6 +5677,8 @@ typedef FIT_UINT8 FIT_SESSION_FIELD_NUM;
#define FIT_SESSION_FIELD_NUM_NEC_LONG ((FIT_SESSION_FIELD_NUM)30)
#define FIT_SESSION_FIELD_NUM_SWC_LAT ((FIT_SESSION_FIELD_NUM)31)
#define FIT_SESSION_FIELD_NUM_SWC_LONG ((FIT_SESSION_FIELD_NUM)32)
#define FIT_SESSION_FIELD_NUM_END_POSITION_LAT ((FIT_SESSION_FIELD_NUM)38)
#define FIT_SESSION_FIELD_NUM_END_POSITION_LONG ((FIT_SESSION_FIELD_NUM)39)
#define FIT_SESSION_FIELD_NUM_AVG_STROKE_COUNT ((FIT_SESSION_FIELD_NUM)41)
#define FIT_SESSION_FIELD_NUM_TOTAL_WORK ((FIT_SESSION_FIELD_NUM)48)
#define FIT_SESSION_FIELD_NUM_TOTAL_MOVING_TIME ((FIT_SESSION_FIELD_NUM)59)
@@ -5597,6 +5687,7 @@ typedef FIT_UINT8 FIT_SESSION_FIELD_NUM;
#define FIT_SESSION_FIELD_NUM_TIME_IN_CADENCE_ZONE ((FIT_SESSION_FIELD_NUM)67)
#define FIT_SESSION_FIELD_NUM_TIME_IN_POWER_ZONE ((FIT_SESSION_FIELD_NUM)68)
#define FIT_SESSION_FIELD_NUM_AVG_LAP_TIME ((FIT_SESSION_FIELD_NUM)69)
#define FIT_SESSION_FIELD_NUM_SPORT_PROFILE_NAME ((FIT_SESSION_FIELD_NUM)110)
#define FIT_SESSION_FIELD_NUM_ENHANCED_AVG_SPEED ((FIT_SESSION_FIELD_NUM)124)
#define FIT_SESSION_FIELD_NUM_ENHANCED_MAX_SPEED ((FIT_SESSION_FIELD_NUM)125)
#define FIT_SESSION_FIELD_NUM_ENHANCED_AVG_ALTITUDE ((FIT_SESSION_FIELD_NUM)126)
@@ -5684,6 +5775,8 @@ typedef enum
FIT_SESSION_MESG_NEC_LONG,
FIT_SESSION_MESG_SWC_LAT,
FIT_SESSION_MESG_SWC_LONG,
FIT_SESSION_MESG_END_POSITION_LAT,
FIT_SESSION_MESG_END_POSITION_LONG,
FIT_SESSION_MESG_AVG_STROKE_COUNT,
FIT_SESSION_MESG_TOTAL_WORK,
FIT_SESSION_MESG_TOTAL_MOVING_TIME,
@@ -5692,6 +5785,7 @@ typedef enum
FIT_SESSION_MESG_TIME_IN_CADENCE_ZONE,
FIT_SESSION_MESG_TIME_IN_POWER_ZONE,
FIT_SESSION_MESG_AVG_LAP_TIME,
FIT_SESSION_MESG_SPORT_PROFILE_NAME,
FIT_SESSION_MESG_ENHANCED_AVG_SPEED,
FIT_SESSION_MESG_ENHANCED_MAX_SPEED,
FIT_SESSION_MESG_ENHANCED_AVG_ALTITUDE,
@@ -7524,14 +7618,15 @@ typedef struct
// workout message
#define FIT_WORKOUT_MESG_SIZE 27
#define FIT_WORKOUT_MESG_DEF_SIZE 26
#define FIT_WORKOUT_MESG_SIZE 29
#define FIT_WORKOUT_MESG_DEF_SIZE 29
#define FIT_WORKOUT_MESG_WKT_NAME_COUNT 16
typedef struct
{
FIT_WORKOUT_CAPABILITIES capabilities; //
FIT_STRING wkt_name[FIT_WORKOUT_MESG_WKT_NAME_COUNT]; //
FIT_MESSAGE_INDEX message_index; //
FIT_UINT16 num_valid_steps; // number of valid steps
FIT_UINT16 pool_length; // 100 * m + 0,
FIT_SPORT sport; //
@@ -7543,6 +7638,7 @@ typedef FIT_UINT8 FIT_WORKOUT_FIELD_NUM;
#define FIT_WORKOUT_FIELD_NUM_CAPABILITIES ((FIT_WORKOUT_FIELD_NUM)5)
#define FIT_WORKOUT_FIELD_NUM_WKT_NAME ((FIT_WORKOUT_FIELD_NUM)8)
#define FIT_WORKOUT_FIELD_NUM_MESSAGE_INDEX ((FIT_WORKOUT_FIELD_NUM)254)
#define FIT_WORKOUT_FIELD_NUM_NUM_VALID_STEPS ((FIT_WORKOUT_FIELD_NUM)6)
#define FIT_WORKOUT_FIELD_NUM_POOL_LENGTH ((FIT_WORKOUT_FIELD_NUM)14)
#define FIT_WORKOUT_FIELD_NUM_SPORT ((FIT_WORKOUT_FIELD_NUM)4)
@@ -7553,6 +7649,7 @@ typedef enum
{
FIT_WORKOUT_MESG_CAPABILITIES,
FIT_WORKOUT_MESG_WKT_NAME,
FIT_WORKOUT_MESG_MESSAGE_INDEX,
FIT_WORKOUT_MESG_NUM_VALID_STEPS,
FIT_WORKOUT_MESG_POOL_LENGTH,
FIT_WORKOUT_MESG_SPORT,
@@ -7834,8 +7931,8 @@ typedef struct
// weight_scale message
#define FIT_WEIGHT_SCALE_MESG_SIZE 25
#define FIT_WEIGHT_SCALE_MESG_DEF_SIZE 44
#define FIT_WEIGHT_SCALE_MESG_SIZE 27
#define FIT_WEIGHT_SCALE_MESG_DEF_SIZE 47
typedef struct
{
@@ -7849,6 +7946,7 @@ typedef struct
FIT_UINT16 basal_met; // 4 * kcal/day + 0,
FIT_UINT16 active_met; // 4 * kcal/day + 0, ~4kJ per kcal, 0.25 allows max 16384 kcal
FIT_MESSAGE_INDEX user_profile_index; // Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file.
FIT_UINT16 bmi; // 10 * kg/m^2 + 0,
FIT_UINT8 physique_rating; //
FIT_UINT8 metabolic_age; // 1 * years + 0,
FIT_UINT8 visceral_fat_rating; //
@@ -7866,6 +7964,7 @@ typedef FIT_UINT8 FIT_WEIGHT_SCALE_FIELD_NUM;
#define FIT_WEIGHT_SCALE_FIELD_NUM_BASAL_MET ((FIT_WEIGHT_SCALE_FIELD_NUM)7)
#define FIT_WEIGHT_SCALE_FIELD_NUM_ACTIVE_MET ((FIT_WEIGHT_SCALE_FIELD_NUM)9)
#define FIT_WEIGHT_SCALE_FIELD_NUM_USER_PROFILE_INDEX ((FIT_WEIGHT_SCALE_FIELD_NUM)12)
#define FIT_WEIGHT_SCALE_FIELD_NUM_BMI ((FIT_WEIGHT_SCALE_FIELD_NUM)13)
#define FIT_WEIGHT_SCALE_FIELD_NUM_PHYSIQUE_RATING ((FIT_WEIGHT_SCALE_FIELD_NUM)8)
#define FIT_WEIGHT_SCALE_FIELD_NUM_METABOLIC_AGE ((FIT_WEIGHT_SCALE_FIELD_NUM)10)
#define FIT_WEIGHT_SCALE_FIELD_NUM_VISCERAL_FAT_RATING ((FIT_WEIGHT_SCALE_FIELD_NUM)11)
@@ -7882,6 +7981,7 @@ typedef enum
FIT_WEIGHT_SCALE_MESG_BASAL_MET,
FIT_WEIGHT_SCALE_MESG_ACTIVE_MET,
FIT_WEIGHT_SCALE_MESG_USER_PROFILE_INDEX,
FIT_WEIGHT_SCALE_MESG_BMI,
FIT_WEIGHT_SCALE_MESG_PHYSIQUE_RATING,
FIT_WEIGHT_SCALE_MESG_METABOLIC_AGE,
FIT_WEIGHT_SCALE_MESG_VISCERAL_FAT_RATING,
@@ -8050,6 +8150,41 @@ typedef struct
FIT_UINT8 fields[FIT_MONITORING_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
} 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
typedef struct
{
FIT_DATE_TIME timestamp; // 1 * s + 0, Must align to logging interval, for example, time must be 00:00:00 for daily log.
FIT_UINT8 resting_heart_rate; // 1 * bpm + 0, 7-day rolling average
FIT_UINT8 current_day_resting_heart_rate; // 1 * bpm + 0, RHR for today only. (Feeds into 7-day average)
} FIT_MONITORING_HR_DATA_MESG;
typedef FIT_UINT8 FIT_MONITORING_HR_DATA_FIELD_NUM;
#define FIT_MONITORING_HR_DATA_FIELD_NUM_TIMESTAMP ((FIT_MONITORING_HR_DATA_FIELD_NUM)253)
#define FIT_MONITORING_HR_DATA_FIELD_NUM_RESTING_HEART_RATE ((FIT_MONITORING_HR_DATA_FIELD_NUM)0)
#define FIT_MONITORING_HR_DATA_FIELD_NUM_CURRENT_DAY_RESTING_HEART_RATE ((FIT_MONITORING_HR_DATA_FIELD_NUM)1)
typedef enum
{
FIT_MONITORING_HR_DATA_MESG_TIMESTAMP,
FIT_MONITORING_HR_DATA_MESG_RESTING_HEART_RATE,
FIT_MONITORING_HR_DATA_MESG_CURRENT_DAY_RESTING_HEART_RATE,
FIT_MONITORING_HR_DATA_MESG_FIELDS
} FIT_MONITORING_HR_DATA_MESG_FIELD;
typedef struct
{
FIT_UINT8 reserved_1;
FIT_UINT8 arch;
FIT_MESG_NUM global_mesg_num;
FIT_UINT8 num_fields;
FIT_UINT8 fields[FIT_MONITORING_HR_DATA_MESG_FIELDS * FIT_FIELD_DEF_SIZE];
} FIT_MONITORING_HR_DATA_MESG_DEF;
// hr message
#define FIT_HR_MESG_SIZE 13
@@ -8421,6 +8556,7 @@ typedef enum {
FIT_MESG_BLOOD_PRESSURE,
FIT_MESG_MONITORING_INFO,
FIT_MESG_MONITORING,
FIT_MESG_MONITORING_HR_DATA,
FIT_MESG_HR,
FIT_MESG_ANT_RX,
FIT_MESG_ANT_TX,