From 388561aae6bc0a9b8bcdcad26674439cadc5068c Mon Sep 17 00:00:00 2001 From: Jenkins Date: Tue, 22 Sep 2026 11:58:22 -0500 Subject: [PATCH] Garmin FIT SDK 21.217.0 --- examples/decode/decode.cpp | 4 +- examples/encode/encode.cpp | 4 +- src/fit.cpp | 4 +- src/fit.hpp | 6 +- src/fit_aad_accel_features_mesg.hpp | 4 +- src/fit_aad_accel_features_mesg_listener.hpp | 4 +- src/fit_accelerometer_data_mesg.hpp | 4 +- src/fit_accelerometer_data_mesg_listener.hpp | 4 +- src/fit_accumulated_field.cpp | 4 +- src/fit_accumulated_field.hpp | 4 +- src/fit_accumulator.cpp | 4 +- src/fit_accumulator.hpp | 4 +- src/fit_activity_mesg.hpp | 4 +- src/fit_activity_mesg_listener.hpp | 4 +- src/fit_ant_channel_id_mesg.hpp | 4 +- src/fit_ant_channel_id_mesg_listener.hpp | 4 +- src/fit_ant_rx_mesg.hpp | 4 +- src/fit_ant_rx_mesg_listener.hpp | 4 +- src/fit_ant_tx_mesg.hpp | 4 +- src/fit_ant_tx_mesg_listener.hpp | 4 +- src/fit_aviation_attitude_mesg.hpp | 4 +- src/fit_aviation_attitude_mesg_listener.hpp | 4 +- src/fit_barometer_data_mesg.hpp | 46 +- src/fit_barometer_data_mesg_listener.hpp | 4 +- src/fit_battery_mesg.hpp | 108 + src/fit_battery_mesg_listener.hpp | 30 + src/fit_beat_intervals_mesg.hpp | 4 +- src/fit_beat_intervals_mesg_listener.hpp | 4 +- src/fit_bike_profile_mesg.hpp | 4 +- src/fit_bike_profile_mesg_listener.hpp | 4 +- src/fit_blood_pressure_mesg.hpp | 4 +- src/fit_blood_pressure_mesg_listener.hpp | 4 +- src/fit_buffer_encode.cpp | 4 +- src/fit_buffer_encode.hpp | 4 +- src/fit_buffered_mesg_broadcaster.cpp | 4 +- src/fit_buffered_mesg_broadcaster.hpp | 4 +- src/fit_buffered_record_mesg.hpp | 4 +- src/fit_buffered_record_mesg_broadcaster.cpp | 4 +- src/fit_buffered_record_mesg_broadcaster.hpp | 4 +- src/fit_buffered_record_mesg_listener.hpp | 4 +- src/fit_cadence_zone_mesg.hpp | 4 +- src/fit_cadence_zone_mesg_listener.hpp | 4 +- src/fit_camera_event_mesg.hpp | 4 +- src/fit_camera_event_mesg_listener.hpp | 4 +- src/fit_capabilities_mesg.hpp | 4 +- src/fit_capabilities_mesg_listener.hpp | 4 +- src/fit_chrono_shot_data_mesg.hpp | 4 +- src/fit_chrono_shot_data_mesg_listener.hpp | 4 +- src/fit_chrono_shot_session_mesg.hpp | 4 +- src/fit_chrono_shot_session_mesg_listener.hpp | 4 +- src/fit_climb_pro_mesg.hpp | 4 +- src/fit_climb_pro_mesg_listener.hpp | 4 +- src/fit_connectivity_mesg.hpp | 4 +- src/fit_connectivity_mesg_listener.hpp | 4 +- src/fit_course_mesg.hpp | 4 +- src/fit_course_mesg_listener.hpp | 4 +- src/fit_course_point_mesg.hpp | 4 +- src/fit_course_point_mesg_listener.hpp | 4 +- src/fit_crc.cpp | 4 +- src/fit_crc.hpp | 4 +- src/fit_date_time.cpp | 4 +- src/fit_date_time.hpp | 4 +- src/fit_decode.cpp | 4 +- src/fit_decode.hpp | 4 +- src/fit_developer_data_id_mesg.hpp | 4 +- src/fit_developer_data_id_mesg_listener.hpp | 4 +- src/fit_developer_field.cpp | 4 +- src/fit_developer_field.hpp | 4 +- src/fit_developer_field_definition.cpp | 4 +- src/fit_developer_field_definition.hpp | 4 +- src/fit_developer_field_description.cpp | 4 +- src/fit_developer_field_description.hpp | 4 +- ...t_developer_field_description_listener.hpp | 4 +- src/fit_device_aux_battery_info_mesg.hpp | 4 +- ..._device_aux_battery_info_mesg_listener.hpp | 4 +- src/fit_device_info_mesg.hpp | 4 +- src/fit_device_info_mesg_listener.hpp | 4 +- src/fit_device_settings_mesg.hpp | 4 +- src/fit_device_settings_mesg_listener.hpp | 4 +- src/fit_dive_alarm_mesg.hpp | 4 +- src/fit_dive_alarm_mesg_listener.hpp | 4 +- src/fit_dive_apnea_alarm_mesg.hpp | 4 +- src/fit_dive_apnea_alarm_mesg_listener.hpp | 4 +- src/fit_dive_gas_mesg.hpp | 4 +- src/fit_dive_gas_mesg_listener.hpp | 4 +- src/fit_dive_settings_mesg.hpp | 4 +- src/fit_dive_settings_mesg_listener.hpp | 4 +- src/fit_dive_summary_mesg.hpp | 4 +- src/fit_dive_summary_mesg_listener.hpp | 4 +- src/fit_encode.cpp | 4 +- src/fit_encode.hpp | 4 +- src/fit_event_mesg.hpp | 4 +- src/fit_event_mesg_listener.hpp | 4 +- ...it_exd_data_concept_configuration_mesg.hpp | 4 +- ...ta_concept_configuration_mesg_listener.hpp | 4 +- src/fit_exd_data_field_configuration_mesg.hpp | 4 +- ...data_field_configuration_mesg_listener.hpp | 4 +- src/fit_exd_screen_configuration_mesg.hpp | 4 +- ...exd_screen_configuration_mesg_listener.hpp | 4 +- src/fit_exercise_title_mesg.hpp | 4 +- src/fit_exercise_title_mesg_listener.hpp | 4 +- src/fit_factory.cpp | 8 +- src/fit_factory.hpp | 4 +- src/fit_field.cpp | 4 +- src/fit_field.hpp | 4 +- src/fit_field_base.cpp | 4 +- src/fit_field_base.hpp | 4 +- src/fit_field_capabilities_mesg.hpp | 4 +- src/fit_field_capabilities_mesg_listener.hpp | 4 +- src/fit_field_definition.cpp | 4 +- src/fit_field_definition.hpp | 4 +- src/fit_field_description_mesg.hpp | 4 +- src/fit_field_description_mesg_listener.hpp | 4 +- src/fit_file_capabilities_mesg.hpp | 4 +- src/fit_file_capabilities_mesg_listener.hpp | 4 +- src/fit_file_creator_mesg.hpp | 4 +- src/fit_file_creator_mesg_listener.hpp | 4 +- src/fit_file_id_mesg.hpp | 4 +- src/fit_file_id_mesg_listener.hpp | 4 +- src/fit_goal_mesg.hpp | 4 +- src/fit_goal_mesg_listener.hpp | 4 +- src/fit_gps_metadata_mesg.hpp | 4 +- src/fit_gps_metadata_mesg_listener.hpp | 4 +- src/fit_gyroscope_data_mesg.hpp | 4 +- src/fit_gyroscope_data_mesg_listener.hpp | 4 +- src/fit_hr_mesg.hpp | 4 +- src/fit_hr_mesg_listener.hpp | 4 +- src/fit_hr_zone_mesg.hpp | 4 +- src/fit_hr_zone_mesg_listener.hpp | 4 +- src/fit_hrm_profile_mesg.hpp | 4 +- src/fit_hrm_profile_mesg_listener.hpp | 4 +- src/fit_hrv_mesg.hpp | 4 +- src/fit_hrv_mesg_listener.hpp | 4 +- src/fit_hrv_status_summary_mesg.hpp | 4 +- src/fit_hrv_status_summary_mesg_listener.hpp | 4 +- src/fit_hrv_value_mesg.hpp | 4 +- src/fit_hrv_value_mesg_listener.hpp | 4 +- src/fit_hsa_accelerometer_data_mesg.hpp | 4 +- ...t_hsa_accelerometer_data_mesg_listener.hpp | 4 +- src/fit_hsa_body_battery_data_mesg.hpp | 4 +- ...it_hsa_body_battery_data_mesg_listener.hpp | 4 +- src/fit_hsa_configuration_data_mesg.hpp | 4 +- ...t_hsa_configuration_data_mesg_listener.hpp | 4 +- src/fit_hsa_event_mesg.hpp | 4 +- src/fit_hsa_event_mesg_listener.hpp | 4 +- src/fit_hsa_gyroscope_data_mesg.hpp | 4 +- src/fit_hsa_gyroscope_data_mesg_listener.hpp | 4 +- src/fit_hsa_heart_rate_data_mesg.hpp | 4 +- src/fit_hsa_heart_rate_data_mesg_listener.hpp | 4 +- src/fit_hsa_respiration_data_mesg.hpp | 4 +- ...fit_hsa_respiration_data_mesg_listener.hpp | 4 +- src/fit_hsa_spo2_data_mesg.hpp | 4 +- src/fit_hsa_spo2_data_mesg_listener.hpp | 4 +- src/fit_hsa_step_data_mesg.hpp | 4 +- src/fit_hsa_step_data_mesg_listener.hpp | 4 +- src/fit_hsa_stress_data_mesg.hpp | 4 +- src/fit_hsa_stress_data_mesg_listener.hpp | 4 +- src/fit_hsa_wrist_temperature_data_mesg.hpp | 4 +- ...a_wrist_temperature_data_mesg_listener.hpp | 4 +- src/fit_jump_mesg.hpp | 4 +- src/fit_jump_mesg_listener.hpp | 4 +- src/fit_lap_mesg.hpp | 625 ++- src/fit_lap_mesg_listener.hpp | 4 +- src/fit_length_mesg.hpp | 38 +- src/fit_length_mesg_listener.hpp | 4 +- src/fit_magnetometer_data_mesg.hpp | 4 +- src/fit_magnetometer_data_mesg_listener.hpp | 4 +- src/fit_max_met_data_mesg.hpp | 4 +- src/fit_max_met_data_mesg_listener.hpp | 4 +- src/fit_memo_glob_mesg.hpp | 4 +- src/fit_memo_glob_mesg_listener.hpp | 4 +- src/fit_mesg.cpp | 4 +- src/fit_mesg.hpp | 4 +- src/fit_mesg_broadcast_plugin.hpp | 4 +- src/fit_mesg_broadcaster.cpp | 24 +- src/fit_mesg_broadcaster.hpp | 8 +- src/fit_mesg_capabilities_mesg.hpp | 4 +- src/fit_mesg_capabilities_mesg_listener.hpp | 4 +- src/fit_mesg_definition.cpp | 4 +- src/fit_mesg_definition.hpp | 4 +- src/fit_mesg_definition_listener.hpp | 4 +- src/fit_mesg_listener.hpp | 4 +- src/fit_mesg_with_event.hpp | 4 +- src/fit_mesg_with_event_broadcaster.cpp | 4 +- src/fit_mesg_with_event_broadcaster.hpp | 4 +- src/fit_mesg_with_event_listener.hpp | 4 +- src/fit_met_zone_mesg.hpp | 4 +- src/fit_met_zone_mesg_listener.hpp | 4 +- src/fit_monitoring_hr_data_mesg.hpp | 4 +- src/fit_monitoring_hr_data_mesg_listener.hpp | 4 +- src/fit_monitoring_info_mesg.hpp | 4 +- src/fit_monitoring_info_mesg_listener.hpp | 4 +- src/fit_monitoring_mesg.hpp | 4 +- src/fit_monitoring_mesg_listener.hpp | 4 +- src/fit_nap_event_mesg.hpp | 4 +- src/fit_nap_event_mesg_listener.hpp | 4 +- src/fit_nmea_sentence_mesg.hpp | 4 +- src/fit_nmea_sentence_mesg_listener.hpp | 4 +- src/fit_obdii_data_mesg.hpp | 4 +- src/fit_obdii_data_mesg_listener.hpp | 4 +- src/fit_ohr_settings_mesg.hpp | 4 +- src/fit_ohr_settings_mesg_listener.hpp | 4 +- src/fit_one_d_sensor_calibration_mesg.hpp | 4 +- ...one_d_sensor_calibration_mesg_listener.hpp | 4 +- src/fit_pad_mesg.hpp | 4 +- src/fit_pad_mesg_listener.hpp | 4 +- src/fit_power_zone_mesg.hpp | 4 +- src/fit_power_zone_mesg_listener.hpp | 4 +- src/fit_profile.cpp | 635 ++- src/fit_profile.hpp | 713 ++- src/fit_protocol_validator.cpp | 4 +- src/fit_protocol_validator.hpp | 4 +- src/fit_raw_bbi_mesg.hpp | 4 +- src/fit_raw_bbi_mesg_listener.hpp | 4 +- src/fit_record_mesg.hpp | 4 +- src/fit_record_mesg_listener.hpp | 4 +- src/fit_respiration_rate_mesg.hpp | 4 +- src/fit_respiration_rate_mesg_listener.hpp | 4 +- src/fit_runtime_exception.hpp | 4 +- src/fit_schedule_mesg.hpp | 4 +- src/fit_schedule_mesg_listener.hpp | 4 +- src/fit_sdm_profile_mesg.hpp | 4 +- src/fit_sdm_profile_mesg_listener.hpp | 4 +- src/fit_segment_file_mesg.hpp | 4 +- src/fit_segment_file_mesg_listener.hpp | 4 +- src/fit_segment_id_mesg.hpp | 4 +- src/fit_segment_id_mesg_listener.hpp | 4 +- src/fit_segment_lap_mesg.hpp | 38 +- src/fit_segment_lap_mesg_listener.hpp | 4 +- src/fit_segment_leaderboard_entry_mesg.hpp | 4 +- ...egment_leaderboard_entry_mesg_listener.hpp | 4 +- src/fit_segment_point_mesg.hpp | 4 +- src/fit_segment_point_mesg_listener.hpp | 4 +- src/fit_session_mesg.hpp | 438 +- src/fit_session_mesg_listener.hpp | 4 +- src/fit_set_mesg.hpp | 4 +- src/fit_set_mesg_listener.hpp | 4 +- src/fit_skin_temp_overnight_mesg.hpp | 4 +- src/fit_skin_temp_overnight_mesg_listener.hpp | 4 +- src/fit_slave_device_mesg.hpp | 4 +- src/fit_slave_device_mesg_listener.hpp | 4 +- src/fit_sleep_assessment_mesg.hpp | 4 +- src/fit_sleep_assessment_mesg_listener.hpp | 4 +- ...eep_disruption_overnight_severity_mesg.hpp | 4 +- ...ption_overnight_severity_mesg_listener.hpp | 4 +- ..._sleep_disruption_severity_period_mesg.hpp | 4 +- ...sruption_severity_period_mesg_listener.hpp | 4 +- src/fit_sleep_level_mesg.hpp | 4 +- src/fit_sleep_level_mesg_listener.hpp | 4 +- src/fit_software_mesg.hpp | 4 +- src/fit_software_mesg_listener.hpp | 4 +- src/fit_speed_zone_mesg.hpp | 4 +- src/fit_speed_zone_mesg_listener.hpp | 4 +- src/fit_split_mesg.hpp | 3901 ++++++++++++++++- src/fit_split_mesg_listener.hpp | 4 +- src/fit_split_summary_mesg.hpp | 2965 ++++++++++++- src/fit_split_summary_mesg_listener.hpp | 4 +- src/fit_spo2_data_mesg.hpp | 4 +- src/fit_spo2_data_mesg_listener.hpp | 4 +- src/fit_sport_mesg.hpp | 4 +- src/fit_sport_mesg_listener.hpp | 4 +- src/fit_stress_level_mesg.hpp | 4 +- src/fit_stress_level_mesg_listener.hpp | 4 +- src/fit_tank_summary_mesg.hpp | 4 +- src/fit_tank_summary_mesg_listener.hpp | 4 +- src/fit_tank_update_mesg.hpp | 4 +- src/fit_tank_update_mesg_listener.hpp | 4 +- src/fit_three_d_sensor_calibration_mesg.hpp | 4 +- ...ree_d_sensor_calibration_mesg_listener.hpp | 4 +- src/fit_time_in_zone_mesg.hpp | 4 +- src/fit_time_in_zone_mesg_listener.hpp | 4 +- src/fit_timestamp_correlation_mesg.hpp | 4 +- ...it_timestamp_correlation_mesg_listener.hpp | 4 +- src/fit_totals_mesg.hpp | 4 +- src/fit_totals_mesg_listener.hpp | 4 +- src/fit_training_file_mesg.hpp | 4 +- src/fit_training_file_mesg_listener.hpp | 4 +- src/fit_training_settings_mesg.hpp | 4 +- src/fit_training_settings_mesg_listener.hpp | 4 +- src/fit_unicode.cpp | 4 +- src/fit_unicode.hpp | 4 +- src/fit_user_profile_mesg.hpp | 4 +- src/fit_user_profile_mesg_listener.hpp | 4 +- src/fit_video_clip_mesg.hpp | 4 +- src/fit_video_clip_mesg_listener.hpp | 4 +- src/fit_video_description_mesg.hpp | 4 +- src/fit_video_description_mesg_listener.hpp | 4 +- src/fit_video_frame_mesg.hpp | 4 +- src/fit_video_frame_mesg_listener.hpp | 4 +- src/fit_video_mesg.hpp | 4 +- src/fit_video_mesg_listener.hpp | 4 +- src/fit_video_title_mesg.hpp | 4 +- src/fit_video_title_mesg_listener.hpp | 4 +- src/fit_watchface_settings_mesg.hpp | 4 +- src/fit_watchface_settings_mesg_listener.hpp | 4 +- src/fit_weather_alert_mesg.hpp | 4 +- src/fit_weather_alert_mesg_listener.hpp | 4 +- src/fit_weather_conditions_mesg.hpp | 4 +- src/fit_weather_conditions_mesg_listener.hpp | 4 +- src/fit_weight_scale_mesg.hpp | 4 +- src/fit_weight_scale_mesg_listener.hpp | 4 +- src/fit_workout_mesg.hpp | 4 +- src/fit_workout_mesg_listener.hpp | 4 +- src/fit_workout_session_mesg.hpp | 4 +- src/fit_workout_session_mesg_listener.hpp | 4 +- src/fit_workout_step_mesg.hpp | 4 +- src/fit_workout_step_mesg_listener.hpp | 4 +- src/fit_zones_target_mesg.hpp | 4 +- src/fit_zones_target_mesg_listener.hpp | 4 +- .../fit_hr_to_record_message_plugin.cpp | 4 +- .../fit_hr_to_record_message_plugin.hpp | 4 +- 311 files changed, 10073 insertions(+), 694 deletions(-) create mode 100644 src/fit_battery_mesg.hpp create mode 100644 src/fit_battery_mesg_listener.hpp diff --git a/examples/decode/decode.cpp b/examples/decode/decode.cpp index d0be1bd..895fa1b 100644 --- a/examples/decode/decode.cpp +++ b/examples/decode/decode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/examples/encode/encode.cpp b/examples/encode/encode.cpp index b085474..74566b8 100644 --- a/examples/encode/encode.cpp +++ b/examples/encode/encode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit.cpp b/src/fit.cpp index 94b1057..a927f38 100644 --- a/src/fit.cpp +++ b/src/fit.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit.hpp b/src/fit.hpp index 95b787e..ef805dc 100644 --- a/src/fit.hpp +++ b/src/fit.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -80,7 +80,7 @@ namespace fit #define FIT_PROTOCOL_VERSION ::fit::versionMap.at( ::fit::ProtocolVersion::V20 ).GetVersionByte() #define FIT_PROFILE_VERSION_MAJOR 21 -#define FIT_PROFILE_VERSION_MINOR 214 +#define FIT_PROFILE_VERSION_MINOR 217 #define FIT_PROFILE_VERSION_SCALE 1000 #define FIT_PROFILE_VERSION ((FIT_UINT16) (FIT_PROFILE_VERSION_MAJOR * FIT_PROFILE_VERSION_SCALE + FIT_PROFILE_VERSION_MINOR)) diff --git a/src/fit_aad_accel_features_mesg.hpp b/src/fit_aad_accel_features_mesg.hpp index ef89d3a..ba45d34 100644 --- a/src/fit_aad_accel_features_mesg.hpp +++ b/src/fit_aad_accel_features_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_aad_accel_features_mesg_listener.hpp b/src/fit_aad_accel_features_mesg_listener.hpp index 4f590fd..100a720 100644 --- a/src/fit_aad_accel_features_mesg_listener.hpp +++ b/src/fit_aad_accel_features_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accelerometer_data_mesg.hpp b/src/fit_accelerometer_data_mesg.hpp index 21c424f..fc6a920 100644 --- a/src/fit_accelerometer_data_mesg.hpp +++ b/src/fit_accelerometer_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accelerometer_data_mesg_listener.hpp b/src/fit_accelerometer_data_mesg_listener.hpp index e9dd7fc..405bbc3 100644 --- a/src/fit_accelerometer_data_mesg_listener.hpp +++ b/src/fit_accelerometer_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accumulated_field.cpp b/src/fit_accumulated_field.cpp index 1046688..53c4c4e 100644 --- a/src/fit_accumulated_field.cpp +++ b/src/fit_accumulated_field.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accumulated_field.hpp b/src/fit_accumulated_field.hpp index bdaf15c..21dbd36 100644 --- a/src/fit_accumulated_field.hpp +++ b/src/fit_accumulated_field.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accumulator.cpp b/src/fit_accumulator.cpp index d4e8e63..bdf4f82 100644 --- a/src/fit_accumulator.cpp +++ b/src/fit_accumulator.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_accumulator.hpp b/src/fit_accumulator.hpp index 194a2c3..7d18bf7 100644 --- a/src/fit_accumulator.hpp +++ b/src/fit_accumulator.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_activity_mesg.hpp b/src/fit_activity_mesg.hpp index c200bb4..89874d2 100644 --- a/src/fit_activity_mesg.hpp +++ b/src/fit_activity_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_activity_mesg_listener.hpp b/src/fit_activity_mesg_listener.hpp index 92fe781..ff8664f 100644 --- a/src/fit_activity_mesg_listener.hpp +++ b/src/fit_activity_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_channel_id_mesg.hpp b/src/fit_ant_channel_id_mesg.hpp index 12edc02..77b2ade 100644 --- a/src/fit_ant_channel_id_mesg.hpp +++ b/src/fit_ant_channel_id_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_channel_id_mesg_listener.hpp b/src/fit_ant_channel_id_mesg_listener.hpp index 3dbe1a7..80ab9ac 100644 --- a/src/fit_ant_channel_id_mesg_listener.hpp +++ b/src/fit_ant_channel_id_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_rx_mesg.hpp b/src/fit_ant_rx_mesg.hpp index d2f5ee8..6f0b69a 100644 --- a/src/fit_ant_rx_mesg.hpp +++ b/src/fit_ant_rx_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_rx_mesg_listener.hpp b/src/fit_ant_rx_mesg_listener.hpp index a2e83b8..1ac85bc 100644 --- a/src/fit_ant_rx_mesg_listener.hpp +++ b/src/fit_ant_rx_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_tx_mesg.hpp b/src/fit_ant_tx_mesg.hpp index a64dd95..8106452 100644 --- a/src/fit_ant_tx_mesg.hpp +++ b/src/fit_ant_tx_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ant_tx_mesg_listener.hpp b/src/fit_ant_tx_mesg_listener.hpp index f802e67..97b4b3e 100644 --- a/src/fit_ant_tx_mesg_listener.hpp +++ b/src/fit_ant_tx_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_aviation_attitude_mesg.hpp b/src/fit_aviation_attitude_mesg.hpp index 70c73e9..9372c7e 100644 --- a/src/fit_aviation_attitude_mesg.hpp +++ b/src/fit_aviation_attitude_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_aviation_attitude_mesg_listener.hpp b/src/fit_aviation_attitude_mesg_listener.hpp index bfe6e62..ac4fa85 100644 --- a/src/fit_aviation_attitude_mesg_listener.hpp +++ b/src/fit_aviation_attitude_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_barometer_data_mesg.hpp b/src/fit_barometer_data_mesg.hpp index 521c5cb..c695414 100644 --- a/src/fit_barometer_data_mesg.hpp +++ b/src/fit_barometer_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -28,6 +28,7 @@ class BarometerDataMesg : public Mesg static const FIT_UINT8 TimestampMs = 0; static const FIT_UINT8 SampleTimeOffset = 1; static const FIT_UINT8 BaroPres = 2; + static const FIT_UINT8 EnhancedAltitude = 3; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -195,6 +196,47 @@ class BarometerDataMesg : public Mesg SetFieldUINT32Value(2, baroPres, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Returns number of enhanced_altitude + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumEnhancedAltitude(void) const + { + return GetFieldNumValues(3, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of enhanced_altitude field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsEnhancedAltitudeValid(FIT_UINT8 index) const + { + const Field* field = GetField(3); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns enhanced_altitude field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetEnhancedAltitude(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(3, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set enhanced_altitude field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetEnhancedAltitude(FIT_UINT8 index, FIT_FLOAT32 enhancedAltitude) + { + SetFieldFLOAT32Value(3, enhancedAltitude, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + }; } // namespace fit diff --git a/src/fit_barometer_data_mesg_listener.hpp b/src/fit_barometer_data_mesg_listener.hpp index 252b27d..922a83f 100644 --- a/src/fit_barometer_data_mesg_listener.hpp +++ b/src/fit_barometer_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_battery_mesg.hpp b/src/fit_battery_mesg.hpp new file mode 100644 index 0000000..2c47a80 --- /dev/null +++ b/src/fit_battery_mesg.hpp @@ -0,0 +1,108 @@ +///////////////////////////////////////////////////////////////////////////////////////////// +// Copyright 2026 Garmin International, Inc. +// Licensed under the Flexible and Interoperable Data Transfer (FIT) Protocol License; you +// may not use this file except in compliance with the Flexible and Interoperable Data +// Transfer (FIT) Protocol License. +///////////////////////////////////////////////////////////////////////////////////////////// +// ****WARNING**** This file is auto-generated! Do NOT edit this file. +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 +///////////////////////////////////////////////////////////////////////////////////////////// + + +#if !defined(FIT_BATTERY_MESG_HPP) +#define FIT_BATTERY_MESG_HPP + +#include "fit_mesg.hpp" + +namespace fit +{ + +class BatteryMesg : public Mesg +{ +public: + class FieldDefNum final + { + public: + static const FIT_UINT8 Timestamp = 253; + static const FIT_UINT8 Capacity = 2; + static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; + }; + + BatteryMesg(void) : Mesg(Profile::MESG_BATTERY) + { + } + + BatteryMesg(const Mesg &mesg) : Mesg(mesg) + { + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of timestamp field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTimestampValid() const + { + const Field* field = GetField(253); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns timestamp field + /////////////////////////////////////////////////////////////////////// + FIT_DATE_TIME GetTimestamp(void) const + { + return GetFieldUINT32Value(253, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set timestamp field + /////////////////////////////////////////////////////////////////////// + void SetTimestamp(FIT_DATE_TIME timestamp) + { + SetFieldUINT32Value(253, timestamp, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of capacity field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsCapacityValid() const + { + const Field* field = GetField(2); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns capacity field + // Units: % + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetCapacity(void) const + { + return GetFieldUINT8Value(2, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set capacity field + // Units: % + /////////////////////////////////////////////////////////////////////// + void SetCapacity(FIT_UINT8 capacity) + { + SetFieldUINT8Value(2, capacity, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + +}; + +} // namespace fit + +#endif // !defined(FIT_BATTERY_MESG_HPP) diff --git a/src/fit_battery_mesg_listener.hpp b/src/fit_battery_mesg_listener.hpp new file mode 100644 index 0000000..5b3c0f2 --- /dev/null +++ b/src/fit_battery_mesg_listener.hpp @@ -0,0 +1,30 @@ +///////////////////////////////////////////////////////////////////////////////////////////// +// Copyright 2026 Garmin International, Inc. +// Licensed under the Flexible and Interoperable Data Transfer (FIT) Protocol License; you +// may not use this file except in compliance with the Flexible and Interoperable Data +// Transfer (FIT) Protocol License. +///////////////////////////////////////////////////////////////////////////////////////////// +// ****WARNING**** This file is auto-generated! Do NOT edit this file. +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 +///////////////////////////////////////////////////////////////////////////////////////////// + + +#if !defined(FIT_BATTERY_MESG_LISTENER_HPP) +#define FIT_BATTERY_MESG_LISTENER_HPP + +#include "fit_battery_mesg.hpp" + +namespace fit +{ + +class BatteryMesgListener +{ +public: + virtual ~BatteryMesgListener() {} + virtual void OnMesg(BatteryMesg& mesg) = 0; +}; + +} // namespace fit + +#endif // !defined(FIT_BATTERY_MESG_LISTENER_HPP) diff --git a/src/fit_beat_intervals_mesg.hpp b/src/fit_beat_intervals_mesg.hpp index 303353a..b36ed15 100644 --- a/src/fit_beat_intervals_mesg.hpp +++ b/src/fit_beat_intervals_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_beat_intervals_mesg_listener.hpp b/src/fit_beat_intervals_mesg_listener.hpp index ea90373..fbfe187 100644 --- a/src/fit_beat_intervals_mesg_listener.hpp +++ b/src/fit_beat_intervals_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_bike_profile_mesg.hpp b/src/fit_bike_profile_mesg.hpp index e223000..331d36f 100644 --- a/src/fit_bike_profile_mesg.hpp +++ b/src/fit_bike_profile_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_bike_profile_mesg_listener.hpp b/src/fit_bike_profile_mesg_listener.hpp index a05bba5..6df7f32 100644 --- a/src/fit_bike_profile_mesg_listener.hpp +++ b/src/fit_bike_profile_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_blood_pressure_mesg.hpp b/src/fit_blood_pressure_mesg.hpp index 13b0fb7..8106464 100644 --- a/src/fit_blood_pressure_mesg.hpp +++ b/src/fit_blood_pressure_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_blood_pressure_mesg_listener.hpp b/src/fit_blood_pressure_mesg_listener.hpp index 8bfd733..8058eac 100644 --- a/src/fit_blood_pressure_mesg_listener.hpp +++ b/src/fit_blood_pressure_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffer_encode.cpp b/src/fit_buffer_encode.cpp index 7872529..fa63a37 100644 --- a/src/fit_buffer_encode.cpp +++ b/src/fit_buffer_encode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffer_encode.hpp b/src/fit_buffer_encode.hpp index 2785051..c30bfc8 100644 --- a/src/fit_buffer_encode.hpp +++ b/src/fit_buffer_encode.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_mesg_broadcaster.cpp b/src/fit_buffered_mesg_broadcaster.cpp index 6285e4d..04f5ef4 100644 --- a/src/fit_buffered_mesg_broadcaster.cpp +++ b/src/fit_buffered_mesg_broadcaster.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_mesg_broadcaster.hpp b/src/fit_buffered_mesg_broadcaster.hpp index 9b83396..2a7d7dd 100644 --- a/src/fit_buffered_mesg_broadcaster.hpp +++ b/src/fit_buffered_mesg_broadcaster.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_record_mesg.hpp b/src/fit_buffered_record_mesg.hpp index faddce5..3539fa2 100644 --- a/src/fit_buffered_record_mesg.hpp +++ b/src/fit_buffered_record_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_record_mesg_broadcaster.cpp b/src/fit_buffered_record_mesg_broadcaster.cpp index 5d2bc2d..a3cb5b1 100644 --- a/src/fit_buffered_record_mesg_broadcaster.cpp +++ b/src/fit_buffered_record_mesg_broadcaster.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_record_mesg_broadcaster.hpp b/src/fit_buffered_record_mesg_broadcaster.hpp index eabbc37..4c78056 100644 --- a/src/fit_buffered_record_mesg_broadcaster.hpp +++ b/src/fit_buffered_record_mesg_broadcaster.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_buffered_record_mesg_listener.hpp b/src/fit_buffered_record_mesg_listener.hpp index 83fc0b1..5498faa 100644 --- a/src/fit_buffered_record_mesg_listener.hpp +++ b/src/fit_buffered_record_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_cadence_zone_mesg.hpp b/src/fit_cadence_zone_mesg.hpp index bf4ad4e..7988f7e 100644 --- a/src/fit_cadence_zone_mesg.hpp +++ b/src/fit_cadence_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_cadence_zone_mesg_listener.hpp b/src/fit_cadence_zone_mesg_listener.hpp index 537ee25..f488869 100644 --- a/src/fit_cadence_zone_mesg_listener.hpp +++ b/src/fit_cadence_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_camera_event_mesg.hpp b/src/fit_camera_event_mesg.hpp index 90e58eb..b5bc16c 100644 --- a/src/fit_camera_event_mesg.hpp +++ b/src/fit_camera_event_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_camera_event_mesg_listener.hpp b/src/fit_camera_event_mesg_listener.hpp index c81d011..d791e0a 100644 --- a/src/fit_camera_event_mesg_listener.hpp +++ b/src/fit_camera_event_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_capabilities_mesg.hpp b/src/fit_capabilities_mesg.hpp index 2679bdf..4f62e06 100644 --- a/src/fit_capabilities_mesg.hpp +++ b/src/fit_capabilities_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_capabilities_mesg_listener.hpp b/src/fit_capabilities_mesg_listener.hpp index 53b5046..68e1165 100644 --- a/src/fit_capabilities_mesg_listener.hpp +++ b/src/fit_capabilities_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_chrono_shot_data_mesg.hpp b/src/fit_chrono_shot_data_mesg.hpp index 2483ff2..199b21f 100644 --- a/src/fit_chrono_shot_data_mesg.hpp +++ b/src/fit_chrono_shot_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_chrono_shot_data_mesg_listener.hpp b/src/fit_chrono_shot_data_mesg_listener.hpp index dd1ed9f..d9e0cb6 100644 --- a/src/fit_chrono_shot_data_mesg_listener.hpp +++ b/src/fit_chrono_shot_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_chrono_shot_session_mesg.hpp b/src/fit_chrono_shot_session_mesg.hpp index 002c65c..70cd03f 100644 --- a/src/fit_chrono_shot_session_mesg.hpp +++ b/src/fit_chrono_shot_session_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_chrono_shot_session_mesg_listener.hpp b/src/fit_chrono_shot_session_mesg_listener.hpp index b71f48b..2beb753 100644 --- a/src/fit_chrono_shot_session_mesg_listener.hpp +++ b/src/fit_chrono_shot_session_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_climb_pro_mesg.hpp b/src/fit_climb_pro_mesg.hpp index 3b9b6a5..22c15b9 100644 --- a/src/fit_climb_pro_mesg.hpp +++ b/src/fit_climb_pro_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_climb_pro_mesg_listener.hpp b/src/fit_climb_pro_mesg_listener.hpp index 8a26ae5..d1e2698 100644 --- a/src/fit_climb_pro_mesg_listener.hpp +++ b/src/fit_climb_pro_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_connectivity_mesg.hpp b/src/fit_connectivity_mesg.hpp index f63adcf..3ddd59e 100644 --- a/src/fit_connectivity_mesg.hpp +++ b/src/fit_connectivity_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_connectivity_mesg_listener.hpp b/src/fit_connectivity_mesg_listener.hpp index 4e243b1..ecfff11 100644 --- a/src/fit_connectivity_mesg_listener.hpp +++ b/src/fit_connectivity_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_course_mesg.hpp b/src/fit_course_mesg.hpp index 4fa35ee..0ed4e95 100644 --- a/src/fit_course_mesg.hpp +++ b/src/fit_course_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_course_mesg_listener.hpp b/src/fit_course_mesg_listener.hpp index 2f80fec..5fe6c91 100644 --- a/src/fit_course_mesg_listener.hpp +++ b/src/fit_course_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_course_point_mesg.hpp b/src/fit_course_point_mesg.hpp index ee959d1..e08ccef 100644 --- a/src/fit_course_point_mesg.hpp +++ b/src/fit_course_point_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_course_point_mesg_listener.hpp b/src/fit_course_point_mesg_listener.hpp index f8b5704..b3f537c 100644 --- a/src/fit_course_point_mesg_listener.hpp +++ b/src/fit_course_point_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_crc.cpp b/src/fit_crc.cpp index b65a253..90f7b50 100644 --- a/src/fit_crc.cpp +++ b/src/fit_crc.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_crc.hpp b/src/fit_crc.hpp index 87f18b7..21144b1 100644 --- a/src/fit_crc.hpp +++ b/src/fit_crc.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_date_time.cpp b/src/fit_date_time.cpp index 5a2c60a..37148da 100644 --- a/src/fit_date_time.cpp +++ b/src/fit_date_time.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_date_time.hpp b/src/fit_date_time.hpp index 958729a..d807e7e 100644 --- a/src/fit_date_time.hpp +++ b/src/fit_date_time.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_decode.cpp b/src/fit_decode.cpp index 040f035..35bcf32 100644 --- a/src/fit_decode.cpp +++ b/src/fit_decode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_decode.hpp b/src/fit_decode.hpp index bbd3527..918dea6 100644 --- a/src/fit_decode.hpp +++ b/src/fit_decode.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_data_id_mesg.hpp b/src/fit_developer_data_id_mesg.hpp index 413b0f1..34eb050 100644 --- a/src/fit_developer_data_id_mesg.hpp +++ b/src/fit_developer_data_id_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_data_id_mesg_listener.hpp b/src/fit_developer_data_id_mesg_listener.hpp index 0f86856..a1141d7 100644 --- a/src/fit_developer_data_id_mesg_listener.hpp +++ b/src/fit_developer_data_id_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field.cpp b/src/fit_developer_field.cpp index 7cf2917..280ae44 100644 --- a/src/fit_developer_field.cpp +++ b/src/fit_developer_field.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field.hpp b/src/fit_developer_field.hpp index a78b918..f1d5e81 100644 --- a/src/fit_developer_field.hpp +++ b/src/fit_developer_field.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field_definition.cpp b/src/fit_developer_field_definition.cpp index 46e719c..c481e20 100644 --- a/src/fit_developer_field_definition.cpp +++ b/src/fit_developer_field_definition.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field_definition.hpp b/src/fit_developer_field_definition.hpp index 9a36164..ae2aa65 100644 --- a/src/fit_developer_field_definition.hpp +++ b/src/fit_developer_field_definition.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field_description.cpp b/src/fit_developer_field_description.cpp index 905c81b..9343272 100644 --- a/src/fit_developer_field_description.cpp +++ b/src/fit_developer_field_description.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field_description.hpp b/src/fit_developer_field_description.hpp index f4c7bee..34a75f4 100644 --- a/src/fit_developer_field_description.hpp +++ b/src/fit_developer_field_description.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_developer_field_description_listener.hpp b/src/fit_developer_field_description_listener.hpp index ebd06d0..d6a90c5 100644 --- a/src/fit_developer_field_description_listener.hpp +++ b/src/fit_developer_field_description_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_aux_battery_info_mesg.hpp b/src/fit_device_aux_battery_info_mesg.hpp index 0647669..f710bc7 100644 --- a/src/fit_device_aux_battery_info_mesg.hpp +++ b/src/fit_device_aux_battery_info_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_aux_battery_info_mesg_listener.hpp b/src/fit_device_aux_battery_info_mesg_listener.hpp index 5726469..b6c2477 100644 --- a/src/fit_device_aux_battery_info_mesg_listener.hpp +++ b/src/fit_device_aux_battery_info_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_info_mesg.hpp b/src/fit_device_info_mesg.hpp index 5750cfb..6410f8d 100644 --- a/src/fit_device_info_mesg.hpp +++ b/src/fit_device_info_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_info_mesg_listener.hpp b/src/fit_device_info_mesg_listener.hpp index 9c1ec95..cd206f0 100644 --- a/src/fit_device_info_mesg_listener.hpp +++ b/src/fit_device_info_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_settings_mesg.hpp b/src/fit_device_settings_mesg.hpp index 6f78a40..a1ff44c 100644 --- a/src/fit_device_settings_mesg.hpp +++ b/src/fit_device_settings_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_device_settings_mesg_listener.hpp b/src/fit_device_settings_mesg_listener.hpp index 3afd0ac..fa7b485 100644 --- a/src/fit_device_settings_mesg_listener.hpp +++ b/src/fit_device_settings_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_alarm_mesg.hpp b/src/fit_dive_alarm_mesg.hpp index e32efda..b544ff5 100644 --- a/src/fit_dive_alarm_mesg.hpp +++ b/src/fit_dive_alarm_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_alarm_mesg_listener.hpp b/src/fit_dive_alarm_mesg_listener.hpp index 6141d05..833303d 100644 --- a/src/fit_dive_alarm_mesg_listener.hpp +++ b/src/fit_dive_alarm_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_apnea_alarm_mesg.hpp b/src/fit_dive_apnea_alarm_mesg.hpp index e63241d..5c66445 100644 --- a/src/fit_dive_apnea_alarm_mesg.hpp +++ b/src/fit_dive_apnea_alarm_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_apnea_alarm_mesg_listener.hpp b/src/fit_dive_apnea_alarm_mesg_listener.hpp index 9e63ed0..164349b 100644 --- a/src/fit_dive_apnea_alarm_mesg_listener.hpp +++ b/src/fit_dive_apnea_alarm_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_gas_mesg.hpp b/src/fit_dive_gas_mesg.hpp index 9be5720..6b32324 100644 --- a/src/fit_dive_gas_mesg.hpp +++ b/src/fit_dive_gas_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_gas_mesg_listener.hpp b/src/fit_dive_gas_mesg_listener.hpp index 1059049..a5b7c88 100644 --- a/src/fit_dive_gas_mesg_listener.hpp +++ b/src/fit_dive_gas_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_settings_mesg.hpp b/src/fit_dive_settings_mesg.hpp index 129a862..ba8fc66 100644 --- a/src/fit_dive_settings_mesg.hpp +++ b/src/fit_dive_settings_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_settings_mesg_listener.hpp b/src/fit_dive_settings_mesg_listener.hpp index 773e2e7..d7a7e4d 100644 --- a/src/fit_dive_settings_mesg_listener.hpp +++ b/src/fit_dive_settings_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_summary_mesg.hpp b/src/fit_dive_summary_mesg.hpp index a9977e8..f4dcfed 100644 --- a/src/fit_dive_summary_mesg.hpp +++ b/src/fit_dive_summary_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_dive_summary_mesg_listener.hpp b/src/fit_dive_summary_mesg_listener.hpp index 082dafc..0005962 100644 --- a/src/fit_dive_summary_mesg_listener.hpp +++ b/src/fit_dive_summary_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_encode.cpp b/src/fit_encode.cpp index 4003ec3..5fa1354 100644 --- a/src/fit_encode.cpp +++ b/src/fit_encode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_encode.hpp b/src/fit_encode.hpp index 933fed1..7ec7bfe 100644 --- a/src/fit_encode.hpp +++ b/src/fit_encode.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_event_mesg.hpp b/src/fit_event_mesg.hpp index 98207c3..8c9697c 100644 --- a/src/fit_event_mesg.hpp +++ b/src/fit_event_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_event_mesg_listener.hpp b/src/fit_event_mesg_listener.hpp index 97994e3..54a83cf 100644 --- a/src/fit_event_mesg_listener.hpp +++ b/src/fit_event_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_data_concept_configuration_mesg.hpp b/src/fit_exd_data_concept_configuration_mesg.hpp index 07fa60d..41fafb5 100644 --- a/src/fit_exd_data_concept_configuration_mesg.hpp +++ b/src/fit_exd_data_concept_configuration_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_data_concept_configuration_mesg_listener.hpp b/src/fit_exd_data_concept_configuration_mesg_listener.hpp index f2d4a09..d17e418 100644 --- a/src/fit_exd_data_concept_configuration_mesg_listener.hpp +++ b/src/fit_exd_data_concept_configuration_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_data_field_configuration_mesg.hpp b/src/fit_exd_data_field_configuration_mesg.hpp index 16cd596..480cc44 100644 --- a/src/fit_exd_data_field_configuration_mesg.hpp +++ b/src/fit_exd_data_field_configuration_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_data_field_configuration_mesg_listener.hpp b/src/fit_exd_data_field_configuration_mesg_listener.hpp index fc80ed3..1bb0d0e 100644 --- a/src/fit_exd_data_field_configuration_mesg_listener.hpp +++ b/src/fit_exd_data_field_configuration_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_screen_configuration_mesg.hpp b/src/fit_exd_screen_configuration_mesg.hpp index f0b44f3..86bf0ad 100644 --- a/src/fit_exd_screen_configuration_mesg.hpp +++ b/src/fit_exd_screen_configuration_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exd_screen_configuration_mesg_listener.hpp b/src/fit_exd_screen_configuration_mesg_listener.hpp index 6f36bb8..7356953 100644 --- a/src/fit_exd_screen_configuration_mesg_listener.hpp +++ b/src/fit_exd_screen_configuration_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exercise_title_mesg.hpp b/src/fit_exercise_title_mesg.hpp index 9b6fa3f..b174582 100644 --- a/src/fit_exercise_title_mesg.hpp +++ b/src/fit_exercise_title_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_exercise_title_mesg_listener.hpp b/src/fit_exercise_title_mesg_listener.hpp index 64682f7..ecc62a8 100644 --- a/src/fit_exercise_title_mesg_listener.hpp +++ b/src/fit_exercise_title_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_factory.cpp b/src/fit_factory.cpp index fd59cc0..1beef12 100644 --- a/src/fit_factory.cpp +++ b/src/fit_factory.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -51,6 +51,7 @@ #include "fit_device_info_mesg.hpp" #include "fit_device_aux_battery_info_mesg.hpp" #include "fit_training_file_mesg.hpp" +#include "fit_battery_mesg.hpp" #include "fit_weather_conditions_mesg.hpp" #include "fit_weather_alert_mesg.hpp" #include "fit_gps_metadata_mesg.hpp" @@ -264,6 +265,9 @@ Mesg Factory::CreateMesg(Mesg mesg) case FIT_MESG_NUM_TRAINING_FILE: return TrainingFileMesg(mesg); + case FIT_MESG_NUM_BATTERY: + return BatteryMesg(mesg); + case FIT_MESG_NUM_WEATHER_CONDITIONS: return WeatherConditionsMesg(mesg); diff --git a/src/fit_factory.hpp b/src/fit_factory.hpp index 901de12..5c24e1b 100644 --- a/src/fit_factory.hpp +++ b/src/fit_factory.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field.cpp b/src/fit_field.cpp index 4a69231..6e51215 100644 --- a/src/fit_field.cpp +++ b/src/fit_field.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field.hpp b/src/fit_field.hpp index b43a423..5f3acd7 100644 --- a/src/fit_field.hpp +++ b/src/fit_field.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_base.cpp b/src/fit_field_base.cpp index f421996..84b5b3d 100644 --- a/src/fit_field_base.cpp +++ b/src/fit_field_base.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_base.hpp b/src/fit_field_base.hpp index 5bb5bab..2e50493 100644 --- a/src/fit_field_base.hpp +++ b/src/fit_field_base.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_capabilities_mesg.hpp b/src/fit_field_capabilities_mesg.hpp index 053dfee..6069e7f 100644 --- a/src/fit_field_capabilities_mesg.hpp +++ b/src/fit_field_capabilities_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_capabilities_mesg_listener.hpp b/src/fit_field_capabilities_mesg_listener.hpp index abb9e55..0850949 100644 --- a/src/fit_field_capabilities_mesg_listener.hpp +++ b/src/fit_field_capabilities_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_definition.cpp b/src/fit_field_definition.cpp index 0068682..13fcee8 100644 --- a/src/fit_field_definition.cpp +++ b/src/fit_field_definition.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_definition.hpp b/src/fit_field_definition.hpp index 41aa6ec..c9d4e5e 100644 --- a/src/fit_field_definition.hpp +++ b/src/fit_field_definition.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_description_mesg.hpp b/src/fit_field_description_mesg.hpp index 5cd36b7..9082004 100644 --- a/src/fit_field_description_mesg.hpp +++ b/src/fit_field_description_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_field_description_mesg_listener.hpp b/src/fit_field_description_mesg_listener.hpp index f4ae191..b907de4 100644 --- a/src/fit_field_description_mesg_listener.hpp +++ b/src/fit_field_description_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_capabilities_mesg.hpp b/src/fit_file_capabilities_mesg.hpp index ca4e87f..29a6041 100644 --- a/src/fit_file_capabilities_mesg.hpp +++ b/src/fit_file_capabilities_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_capabilities_mesg_listener.hpp b/src/fit_file_capabilities_mesg_listener.hpp index 80a8024..efcdb53 100644 --- a/src/fit_file_capabilities_mesg_listener.hpp +++ b/src/fit_file_capabilities_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_creator_mesg.hpp b/src/fit_file_creator_mesg.hpp index ce47c46..669ce27 100644 --- a/src/fit_file_creator_mesg.hpp +++ b/src/fit_file_creator_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_creator_mesg_listener.hpp b/src/fit_file_creator_mesg_listener.hpp index 88ab5d4..8cf6471 100644 --- a/src/fit_file_creator_mesg_listener.hpp +++ b/src/fit_file_creator_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_id_mesg.hpp b/src/fit_file_id_mesg.hpp index bd5e5ff..ad68d5b 100644 --- a/src/fit_file_id_mesg.hpp +++ b/src/fit_file_id_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_file_id_mesg_listener.hpp b/src/fit_file_id_mesg_listener.hpp index 9d26804..963a071 100644 --- a/src/fit_file_id_mesg_listener.hpp +++ b/src/fit_file_id_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_goal_mesg.hpp b/src/fit_goal_mesg.hpp index 4ce4fb3..81c4ba2 100644 --- a/src/fit_goal_mesg.hpp +++ b/src/fit_goal_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_goal_mesg_listener.hpp b/src/fit_goal_mesg_listener.hpp index 7db39af..86cfba2 100644 --- a/src/fit_goal_mesg_listener.hpp +++ b/src/fit_goal_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_gps_metadata_mesg.hpp b/src/fit_gps_metadata_mesg.hpp index a161019..825382a 100644 --- a/src/fit_gps_metadata_mesg.hpp +++ b/src/fit_gps_metadata_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_gps_metadata_mesg_listener.hpp b/src/fit_gps_metadata_mesg_listener.hpp index 279c067..198fa41 100644 --- a/src/fit_gps_metadata_mesg_listener.hpp +++ b/src/fit_gps_metadata_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_gyroscope_data_mesg.hpp b/src/fit_gyroscope_data_mesg.hpp index 843969e..dc93321 100644 --- a/src/fit_gyroscope_data_mesg.hpp +++ b/src/fit_gyroscope_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_gyroscope_data_mesg_listener.hpp b/src/fit_gyroscope_data_mesg_listener.hpp index 002b025..9d63a6e 100644 --- a/src/fit_gyroscope_data_mesg_listener.hpp +++ b/src/fit_gyroscope_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hr_mesg.hpp b/src/fit_hr_mesg.hpp index 5faf0f7..71924b6 100644 --- a/src/fit_hr_mesg.hpp +++ b/src/fit_hr_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hr_mesg_listener.hpp b/src/fit_hr_mesg_listener.hpp index 2c9510c..fef9b45 100644 --- a/src/fit_hr_mesg_listener.hpp +++ b/src/fit_hr_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hr_zone_mesg.hpp b/src/fit_hr_zone_mesg.hpp index 70c6908..3548cd2 100644 --- a/src/fit_hr_zone_mesg.hpp +++ b/src/fit_hr_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hr_zone_mesg_listener.hpp b/src/fit_hr_zone_mesg_listener.hpp index 09dd04d..94fd94f 100644 --- a/src/fit_hr_zone_mesg_listener.hpp +++ b/src/fit_hr_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrm_profile_mesg.hpp b/src/fit_hrm_profile_mesg.hpp index 9e3242b..674617d 100644 --- a/src/fit_hrm_profile_mesg.hpp +++ b/src/fit_hrm_profile_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrm_profile_mesg_listener.hpp b/src/fit_hrm_profile_mesg_listener.hpp index 2b145b7..9858955 100644 --- a/src/fit_hrm_profile_mesg_listener.hpp +++ b/src/fit_hrm_profile_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_mesg.hpp b/src/fit_hrv_mesg.hpp index 987c30d..ae1316e 100644 --- a/src/fit_hrv_mesg.hpp +++ b/src/fit_hrv_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_mesg_listener.hpp b/src/fit_hrv_mesg_listener.hpp index dacc167..6dcf8af 100644 --- a/src/fit_hrv_mesg_listener.hpp +++ b/src/fit_hrv_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_status_summary_mesg.hpp b/src/fit_hrv_status_summary_mesg.hpp index 6fbd332..4c5b1f4 100644 --- a/src/fit_hrv_status_summary_mesg.hpp +++ b/src/fit_hrv_status_summary_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_status_summary_mesg_listener.hpp b/src/fit_hrv_status_summary_mesg_listener.hpp index f2bdac4..d3bea57 100644 --- a/src/fit_hrv_status_summary_mesg_listener.hpp +++ b/src/fit_hrv_status_summary_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_value_mesg.hpp b/src/fit_hrv_value_mesg.hpp index 29fcc2c..52db614 100644 --- a/src/fit_hrv_value_mesg.hpp +++ b/src/fit_hrv_value_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hrv_value_mesg_listener.hpp b/src/fit_hrv_value_mesg_listener.hpp index 0c5121b..e94d399 100644 --- a/src/fit_hrv_value_mesg_listener.hpp +++ b/src/fit_hrv_value_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_accelerometer_data_mesg.hpp b/src/fit_hsa_accelerometer_data_mesg.hpp index 37afcf5..e906c51 100644 --- a/src/fit_hsa_accelerometer_data_mesg.hpp +++ b/src/fit_hsa_accelerometer_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_accelerometer_data_mesg_listener.hpp b/src/fit_hsa_accelerometer_data_mesg_listener.hpp index eb6c88f..ae9c718 100644 --- a/src/fit_hsa_accelerometer_data_mesg_listener.hpp +++ b/src/fit_hsa_accelerometer_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_body_battery_data_mesg.hpp b/src/fit_hsa_body_battery_data_mesg.hpp index ab4cd6f..e3be3fb 100644 --- a/src/fit_hsa_body_battery_data_mesg.hpp +++ b/src/fit_hsa_body_battery_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_body_battery_data_mesg_listener.hpp b/src/fit_hsa_body_battery_data_mesg_listener.hpp index 03c3d23..87eece7 100644 --- a/src/fit_hsa_body_battery_data_mesg_listener.hpp +++ b/src/fit_hsa_body_battery_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_configuration_data_mesg.hpp b/src/fit_hsa_configuration_data_mesg.hpp index 6158fce..335b58b 100644 --- a/src/fit_hsa_configuration_data_mesg.hpp +++ b/src/fit_hsa_configuration_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_configuration_data_mesg_listener.hpp b/src/fit_hsa_configuration_data_mesg_listener.hpp index 2132085..bcc059e 100644 --- a/src/fit_hsa_configuration_data_mesg_listener.hpp +++ b/src/fit_hsa_configuration_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_event_mesg.hpp b/src/fit_hsa_event_mesg.hpp index 3893c53..2622b10 100644 --- a/src/fit_hsa_event_mesg.hpp +++ b/src/fit_hsa_event_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_event_mesg_listener.hpp b/src/fit_hsa_event_mesg_listener.hpp index 5905e0f..434face 100644 --- a/src/fit_hsa_event_mesg_listener.hpp +++ b/src/fit_hsa_event_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_gyroscope_data_mesg.hpp b/src/fit_hsa_gyroscope_data_mesg.hpp index 50f8c6c..796ff1e 100644 --- a/src/fit_hsa_gyroscope_data_mesg.hpp +++ b/src/fit_hsa_gyroscope_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_gyroscope_data_mesg_listener.hpp b/src/fit_hsa_gyroscope_data_mesg_listener.hpp index 161ca7b..578abca 100644 --- a/src/fit_hsa_gyroscope_data_mesg_listener.hpp +++ b/src/fit_hsa_gyroscope_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_heart_rate_data_mesg.hpp b/src/fit_hsa_heart_rate_data_mesg.hpp index 346be8d..dad20d0 100644 --- a/src/fit_hsa_heart_rate_data_mesg.hpp +++ b/src/fit_hsa_heart_rate_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_heart_rate_data_mesg_listener.hpp b/src/fit_hsa_heart_rate_data_mesg_listener.hpp index fd1912a..5743058 100644 --- a/src/fit_hsa_heart_rate_data_mesg_listener.hpp +++ b/src/fit_hsa_heart_rate_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_respiration_data_mesg.hpp b/src/fit_hsa_respiration_data_mesg.hpp index 739527e..bb400be 100644 --- a/src/fit_hsa_respiration_data_mesg.hpp +++ b/src/fit_hsa_respiration_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_respiration_data_mesg_listener.hpp b/src/fit_hsa_respiration_data_mesg_listener.hpp index 7e68256..17484cd 100644 --- a/src/fit_hsa_respiration_data_mesg_listener.hpp +++ b/src/fit_hsa_respiration_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_spo2_data_mesg.hpp b/src/fit_hsa_spo2_data_mesg.hpp index f7ea3ea..f9ec1d0 100644 --- a/src/fit_hsa_spo2_data_mesg.hpp +++ b/src/fit_hsa_spo2_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_spo2_data_mesg_listener.hpp b/src/fit_hsa_spo2_data_mesg_listener.hpp index cd42d82..3efdf8a 100644 --- a/src/fit_hsa_spo2_data_mesg_listener.hpp +++ b/src/fit_hsa_spo2_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_step_data_mesg.hpp b/src/fit_hsa_step_data_mesg.hpp index 0e7e336..052fc79 100644 --- a/src/fit_hsa_step_data_mesg.hpp +++ b/src/fit_hsa_step_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_step_data_mesg_listener.hpp b/src/fit_hsa_step_data_mesg_listener.hpp index 95a8d5f..9b01f6c 100644 --- a/src/fit_hsa_step_data_mesg_listener.hpp +++ b/src/fit_hsa_step_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_stress_data_mesg.hpp b/src/fit_hsa_stress_data_mesg.hpp index 3b5ceaa..ac16482 100644 --- a/src/fit_hsa_stress_data_mesg.hpp +++ b/src/fit_hsa_stress_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_stress_data_mesg_listener.hpp b/src/fit_hsa_stress_data_mesg_listener.hpp index 72de328..c41d5c7 100644 --- a/src/fit_hsa_stress_data_mesg_listener.hpp +++ b/src/fit_hsa_stress_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_wrist_temperature_data_mesg.hpp b/src/fit_hsa_wrist_temperature_data_mesg.hpp index d4d14b4..3faf8a0 100644 --- a/src/fit_hsa_wrist_temperature_data_mesg.hpp +++ b/src/fit_hsa_wrist_temperature_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_hsa_wrist_temperature_data_mesg_listener.hpp b/src/fit_hsa_wrist_temperature_data_mesg_listener.hpp index ea31c3a..6a14772 100644 --- a/src/fit_hsa_wrist_temperature_data_mesg_listener.hpp +++ b/src/fit_hsa_wrist_temperature_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_jump_mesg.hpp b/src/fit_jump_mesg.hpp index 2d6d4f7..84c5978 100644 --- a/src/fit_jump_mesg.hpp +++ b/src/fit_jump_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_jump_mesg_listener.hpp b/src/fit_jump_mesg_listener.hpp index 819fbd9..21a0f74 100644 --- a/src/fit_jump_mesg_listener.hpp +++ b/src/fit_jump_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_lap_mesg.hpp b/src/fit_lap_mesg.hpp index d2ea310..e56ae6b 100644 --- a/src/fit_lap_mesg.hpp +++ b/src/fit_lap_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -54,6 +54,10 @@ class LapMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 LapTrigger = 24; static const FIT_UINT8 Sport = 25; static const FIT_UINT8 EventGroup = 26; + static const FIT_UINT8 NecLat = 27; + static const FIT_UINT8 NecLong = 28; + static const FIT_UINT8 SwcLat = 29; + static const FIT_UINT8 SwcLong = 30; static const FIT_UINT8 NumLengths = 32; static const FIT_UINT8 NormalizedPower = 33; static const FIT_UINT8 LeftRightBalance = 34; @@ -87,6 +91,7 @@ class LapMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 MinHeartRate = 63; static const FIT_UINT8 ActiveTime = 70; static const FIT_UINT8 WktStepIndex = 71; + static const FIT_UINT8 AvgSwolf = 73; static const FIT_UINT8 OpponentScore = 74; static const FIT_UINT8 StrokeCount = 75; static const FIT_UINT8 ZoneCount = 76; @@ -103,11 +108,14 @@ class LapMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 AvgSaturatedHemoglobinPercent = 87; static const FIT_UINT8 MinSaturatedHemoglobinPercent = 88; static const FIT_UINT8 MaxSaturatedHemoglobinPercent = 89; + static const FIT_UINT8 AvgStrokesPerLength = 90; static const FIT_UINT8 AvgLeftTorqueEffectiveness = 91; static const FIT_UINT8 AvgRightTorqueEffectiveness = 92; static const FIT_UINT8 AvgLeftPedalSmoothness = 93; static const FIT_UINT8 AvgRightPedalSmoothness = 94; static const FIT_UINT8 AvgCombinedPedalSmoothness = 95; + static const FIT_UINT8 FrontGearShiftCount = 96; + static const FIT_UINT8 RearGearShiftCount = 97; static const FIT_UINT8 TimeStanding = 98; static const FIT_UINT8 StandCount = 99; static const FIT_UINT8 AvgLeftPco = 100; @@ -144,11 +152,13 @@ class LapMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 JumpCount = 151; static const FIT_UINT8 AvgGrit = 153; static const FIT_UINT8 AvgFlow = 154; + static const FIT_UINT8 MetabolicCalories = 155; static const FIT_UINT8 TotalFractionalAscent = 156; static const FIT_UINT8 TotalFractionalDescent = 157; static const FIT_UINT8 AvgCoreTemperature = 158; static const FIT_UINT8 MinCoreTemperature = 159; static const FIT_UINT8 MaxCoreTemperature = 160; + static const FIT_UINT8 AvgGradeAdjustedSpeed = 161; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -663,6 +673,47 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldUINT32Value(10, totalStrokes, 0, (FIT_UINT16) Profile::LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_pushes field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalPushesValid() const + { + const Field* field = GetField(10); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_pushes field + // Units: pushes + // Comment: total number of pushes in a lap + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalPushes(void) const + { + return GetFieldUINT32Value(10, 0, (FIT_UINT16) Profile::LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_pushes field + // Units: pushes + // Comment: total number of pushes in a lap + /////////////////////////////////////////////////////////////////////// + void SetTotalPushes(FIT_UINT32 totalPushes) + { + SetFieldUINT32Value(10, totalPushes, 0, (FIT_UINT16) Profile::LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of total_calories field // Returns FIT_TRUE if field is valid @@ -937,6 +988,125 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(17, avgRunningCadence, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwimmingCadenceValid() const + { + const Field* field = GetField(17); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgSwimmingCadence(void) const + { + return GetFieldUINT8Value(17, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgSwimmingCadence(FIT_UINT8 avgSwimmingCadence) + { + SetFieldUINT8Value(17, avgSwimmingCadence, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPaddlesportCadenceValid() const + { + const Field* field = GetField(17); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgPaddlesportCadence(void) const + { + return GetFieldUINT8Value(17, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgPaddlesportCadence(FIT_UINT8 avgPaddlesportCadence) + { + SetFieldUINT8Value(17, avgPaddlesportCadence, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPushCadenceValid() const + { + const Field* field = GetField(17); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a lap + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgPushCadence(void) const + { + return GetFieldUINT8Value(17, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a lap + /////////////////////////////////////////////////////////////////////// + void SetAvgPushCadence(FIT_UINT8 avgPushCadence) + { + SetFieldUINT8Value(17, avgPushCadence, 0, (FIT_UINT16) Profile::LAP_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of max_cadence field // Returns FIT_TRUE if field is valid @@ -1009,6 +1179,125 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(18, maxRunningCadence, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxSwimmingCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxSwimmingCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxSwimmingCadence(FIT_UINT8 maxSwimmingCadence) + { + SetFieldUINT8Value(18, maxSwimmingCadence, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPaddlesportCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxPaddlesportCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxPaddlesportCadence(FIT_UINT8 maxPaddlesportCadence) + { + SetFieldUINT8Value(18, maxPaddlesportCadence, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPushCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a lap + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxPushCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a lap + /////////////////////////////////////////////////////////////////////// + void SetMaxPushCadence(FIT_UINT8 maxPushCadence) + { + SetFieldUINT8Value(18, maxPushCadence, 0, (FIT_UINT16) Profile::LAP_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of avg_power field // Returns FIT_TRUE if field is valid @@ -1267,6 +1556,146 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(26, eventGroup, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of nec_lat field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNecLatValid() const + { + const Field* field = GetField(27); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns nec_lat field + // Units: semicircles + // Comment: North east corner latitude. + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetNecLat(void) const + { + return GetFieldSINT32Value(27, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set nec_lat field + // Units: semicircles + // Comment: North east corner latitude. + /////////////////////////////////////////////////////////////////////// + void SetNecLat(FIT_SINT32 necLat) + { + SetFieldSINT32Value(27, necLat, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of nec_long field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNecLongValid() const + { + const Field* field = GetField(28); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns nec_long field + // Units: semicircles + // Comment: North east corner longitude. + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetNecLong(void) const + { + return GetFieldSINT32Value(28, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set nec_long field + // Units: semicircles + // Comment: North east corner longitude. + /////////////////////////////////////////////////////////////////////// + void SetNecLong(FIT_SINT32 necLong) + { + SetFieldSINT32Value(28, necLong, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swc_lat field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwcLatValid() const + { + const Field* field = GetField(29); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swc_lat field + // Units: semicircles + // Comment: South west corner latitude. + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetSwcLat(void) const + { + return GetFieldSINT32Value(29, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swc_lat field + // Units: semicircles + // Comment: South west corner latitude. + /////////////////////////////////////////////////////////////////////// + void SetSwcLat(FIT_SINT32 swcLat) + { + SetFieldSINT32Value(29, swcLat, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swc_long field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwcLongValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swc_long field + // Units: semicircles + // Comment: South west corner latitude. + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetSwcLong(void) const + { + return GetFieldSINT32Value(30, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swc_long field + // Units: semicircles + // Comment: South west corner latitude. + /////////////////////////////////////////////////////////////////////// + void SetSwcLong(FIT_SINT32 swcLong) + { + SetFieldSINT32Value(30, swcLong, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of num_lengths field // Returns FIT_TRUE if field is valid @@ -2380,6 +2809,37 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldUINT16Value(71, wktStepIndex, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swolf field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwolfValid() const + { + const Field* field = GetField(73); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swolf field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgSwolf(void) const + { + return GetFieldUINT16Value(73, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swolf field + /////////////////////////////////////////////////////////////////////// + void SetAvgSwolf(FIT_UINT16 avgSwolf) + { + SetFieldUINT16Value(73, avgSwolf, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of opponent_score field // Returns FIT_TRUE if field is valid @@ -2990,6 +3450,39 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(89, maxSaturatedHemoglobinPercent, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_strokes_per_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokesPerLengthValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokesPerLength(void) const + { + return GetFieldFLOAT32Value(90, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokesPerLength(FIT_FLOAT32 avgStrokesPerLength) + { + SetFieldFLOAT32Value(90, avgStrokesPerLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of avg_left_torque_effectiveness field // Returns FIT_TRUE if field is valid @@ -3155,6 +3648,68 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(95, avgCombinedPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of front_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsFrontGearShiftCountValid() const + { + const Field* field = GetField(96); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetFrontGearShiftCount(void) const + { + return GetFieldUINT16Value(96, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetFrontGearShiftCount(FIT_UINT16 frontGearShiftCount) + { + SetFieldUINT16Value(96, frontGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of rear_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsRearGearShiftCountValid() const + { + const Field* field = GetField(97); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetRearGearShiftCount(void) const + { + return GetFieldUINT16Value(97, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetRearGearShiftCount(FIT_UINT16 rearGearShiftCount) + { + SetFieldUINT16Value(97, rearGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of time_standing field // Returns FIT_TRUE if field is valid @@ -4441,6 +4996,39 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(154, avgFlow, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of metabolic_calories field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMetabolicCaloriesValid() const + { + const Field* field = GetField(155); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMetabolicCalories(void) const + { + return GetFieldUINT16Value(155, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + void SetMetabolicCalories(FIT_UINT16 metabolicCalories) + { + SetFieldUINT16Value(155, metabolicCalories, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of total_fractional_ascent field // Returns FIT_TRUE if field is valid @@ -4610,6 +5198,39 @@ class LapMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(160, maxCoreTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_grade_adjusted_speed field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgGradeAdjustedSpeedValid() const + { + const Field* field = GetField(161); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgGradeAdjustedSpeed(void) const + { + return GetFieldFLOAT32Value(161, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgGradeAdjustedSpeed(FIT_FLOAT32 avgGradeAdjustedSpeed) + { + SetFieldFLOAT32Value(161, avgGradeAdjustedSpeed, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + }; } // namespace fit diff --git a/src/fit_lap_mesg_listener.hpp b/src/fit_lap_mesg_listener.hpp index 4f40b19..7e00173 100644 --- a/src/fit_lap_mesg_listener.hpp +++ b/src/fit_lap_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_length_mesg.hpp b/src/fit_length_mesg.hpp index 0eaee69..482d533 100644 --- a/src/fit_length_mesg.hpp +++ b/src/fit_length_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -47,6 +47,7 @@ class LengthMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 EnhancedMaxRespirationRate = 23; static const FIT_UINT8 AvgRespirationRate = 24; static const FIT_UINT8 MaxRespirationRate = 25; + static const FIT_UINT8 MetabolicCalories = 26; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -782,6 +783,39 @@ class LengthMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(25, maxRespirationRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of metabolic_calories field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMetabolicCaloriesValid() const + { + const Field* field = GetField(26); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMetabolicCalories(void) const + { + return GetFieldUINT16Value(26, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + void SetMetabolicCalories(FIT_UINT16 metabolicCalories) + { + SetFieldUINT16Value(26, metabolicCalories, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + }; } // namespace fit diff --git a/src/fit_length_mesg_listener.hpp b/src/fit_length_mesg_listener.hpp index e1272f0..f8c23ac 100644 --- a/src/fit_length_mesg_listener.hpp +++ b/src/fit_length_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_magnetometer_data_mesg.hpp b/src/fit_magnetometer_data_mesg.hpp index a338428..bb32f97 100644 --- a/src/fit_magnetometer_data_mesg.hpp +++ b/src/fit_magnetometer_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_magnetometer_data_mesg_listener.hpp b/src/fit_magnetometer_data_mesg_listener.hpp index c9fe9ed..235f08c 100644 --- a/src/fit_magnetometer_data_mesg_listener.hpp +++ b/src/fit_magnetometer_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_max_met_data_mesg.hpp b/src/fit_max_met_data_mesg.hpp index 5de8301..1c46191 100644 --- a/src/fit_max_met_data_mesg.hpp +++ b/src/fit_max_met_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_max_met_data_mesg_listener.hpp b/src/fit_max_met_data_mesg_listener.hpp index 0d4577f..33a568a 100644 --- a/src/fit_max_met_data_mesg_listener.hpp +++ b/src/fit_max_met_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_memo_glob_mesg.hpp b/src/fit_memo_glob_mesg.hpp index 398c721..1c45aff 100644 --- a/src/fit_memo_glob_mesg.hpp +++ b/src/fit_memo_glob_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_memo_glob_mesg_listener.hpp b/src/fit_memo_glob_mesg_listener.hpp index 5959dde..b384754 100644 --- a/src/fit_memo_glob_mesg_listener.hpp +++ b/src/fit_memo_glob_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg.cpp b/src/fit_mesg.cpp index d87e641..c0e83c2 100644 --- a/src/fit_mesg.cpp +++ b/src/fit_mesg.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg.hpp b/src/fit_mesg.hpp index 02b9409..1a2183b 100644 --- a/src/fit_mesg.hpp +++ b/src/fit_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_broadcast_plugin.hpp b/src/fit_mesg_broadcast_plugin.hpp index 55bb67e..6286ed5 100644 --- a/src/fit_mesg_broadcast_plugin.hpp +++ b/src/fit_mesg_broadcast_plugin.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_broadcaster.cpp b/src/fit_mesg_broadcaster.cpp index b4661c0..2c815b8 100644 --- a/src/fit_mesg_broadcaster.cpp +++ b/src/fit_mesg_broadcaster.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -602,6 +602,19 @@ void MesgBroadcaster::RemoveListener(TrainingFileMesgListener& trainingFileMesgL } +void MesgBroadcaster::AddListener(BatteryMesgListener& batteryMesgListener) +{ + batteryMesgListeners.push_back(&batteryMesgListener); +} + +void MesgBroadcaster::RemoveListener(BatteryMesgListener& batteryMesgListener) +{ + std::vector::iterator it = std::find(batteryMesgListeners.begin(), batteryMesgListeners.end(), &batteryMesgListener); + if (batteryMesgListeners.end() != it) + batteryMesgListeners.erase(it); +} + + void MesgBroadcaster::AddListener(WeatherConditionsMesgListener& weatherConditionsMesgListener) { weatherConditionsMesgListeners.push_back(&weatherConditionsMesgListener); @@ -1988,6 +2001,13 @@ void MesgBroadcaster::OnMesg(Mesg& mesg) trainingFileMesgListeners[i]->OnMesg(trainingFileMesg); break; } + case FIT_MESG_NUM_BATTERY: + { + BatteryMesg batteryMesg(mesg); + for (int i=0; i < (int)batteryMesgListeners.size(); i++) + batteryMesgListeners[i]->OnMesg(batteryMesg); + break; + } case FIT_MESG_NUM_WEATHER_CONDITIONS: { WeatherConditionsMesg weatherConditionsMesg(mesg); diff --git a/src/fit_mesg_broadcaster.hpp b/src/fit_mesg_broadcaster.hpp index afdacfe..7783442 100644 --- a/src/fit_mesg_broadcaster.hpp +++ b/src/fit_mesg_broadcaster.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -62,6 +62,7 @@ #include "fit_device_info_mesg_listener.hpp" #include "fit_device_aux_battery_info_mesg_listener.hpp" #include "fit_training_file_mesg_listener.hpp" +#include "fit_battery_mesg_listener.hpp" #include "fit_weather_conditions_mesg_listener.hpp" #include "fit_weather_alert_mesg_listener.hpp" #include "fit_gps_metadata_mesg_listener.hpp" @@ -243,6 +244,8 @@ class MesgBroadcaster : public MesgListener, public MesgDefinitionListener void RemoveListener(DeviceAuxBatteryInfoMesgListener& deviceAuxBatteryInfoMesgListener); void AddListener(TrainingFileMesgListener& trainingFileMesgListener); void RemoveListener(TrainingFileMesgListener& trainingFileMesgListener); + void AddListener(BatteryMesgListener& batteryMesgListener); + void RemoveListener(BatteryMesgListener& batteryMesgListener); void AddListener(WeatherConditionsMesgListener& weatherConditionsMesgListener); void RemoveListener(WeatherConditionsMesgListener& weatherConditionsMesgListener); void AddListener(WeatherAlertMesgListener& weatherAlertMesgListener); @@ -459,6 +462,7 @@ class MesgBroadcaster : public MesgListener, public MesgDefinitionListener std::vector deviceInfoMesgListeners; std::vector deviceAuxBatteryInfoMesgListeners; std::vector trainingFileMesgListeners; + std::vector batteryMesgListeners; std::vector weatherConditionsMesgListeners; std::vector weatherAlertMesgListeners; std::vector gpsMetadataMesgListeners; diff --git a/src/fit_mesg_capabilities_mesg.hpp b/src/fit_mesg_capabilities_mesg.hpp index 8988801..3a6b5cb 100644 --- a/src/fit_mesg_capabilities_mesg.hpp +++ b/src/fit_mesg_capabilities_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_capabilities_mesg_listener.hpp b/src/fit_mesg_capabilities_mesg_listener.hpp index 2da1ef0..df6de16 100644 --- a/src/fit_mesg_capabilities_mesg_listener.hpp +++ b/src/fit_mesg_capabilities_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_definition.cpp b/src/fit_mesg_definition.cpp index 55a44b1..9915ec5 100644 --- a/src/fit_mesg_definition.cpp +++ b/src/fit_mesg_definition.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_definition.hpp b/src/fit_mesg_definition.hpp index 1b5e549..ff758f2 100644 --- a/src/fit_mesg_definition.hpp +++ b/src/fit_mesg_definition.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_definition_listener.hpp b/src/fit_mesg_definition_listener.hpp index e70e155..4b0ed44 100644 --- a/src/fit_mesg_definition_listener.hpp +++ b/src/fit_mesg_definition_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_listener.hpp b/src/fit_mesg_listener.hpp index 3649e9a..c64f127 100644 --- a/src/fit_mesg_listener.hpp +++ b/src/fit_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_with_event.hpp b/src/fit_mesg_with_event.hpp index 5ee6a70..dd2f7bb 100644 --- a/src/fit_mesg_with_event.hpp +++ b/src/fit_mesg_with_event.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_with_event_broadcaster.cpp b/src/fit_mesg_with_event_broadcaster.cpp index f0d297a..b2c1ae8 100644 --- a/src/fit_mesg_with_event_broadcaster.cpp +++ b/src/fit_mesg_with_event_broadcaster.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_with_event_broadcaster.hpp b/src/fit_mesg_with_event_broadcaster.hpp index 8884b7b..025b2c8 100644 --- a/src/fit_mesg_with_event_broadcaster.hpp +++ b/src/fit_mesg_with_event_broadcaster.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_mesg_with_event_listener.hpp b/src/fit_mesg_with_event_listener.hpp index ab60d0c..557ea53 100644 --- a/src/fit_mesg_with_event_listener.hpp +++ b/src/fit_mesg_with_event_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_met_zone_mesg.hpp b/src/fit_met_zone_mesg.hpp index 0c3b4fe..645f0a6 100644 --- a/src/fit_met_zone_mesg.hpp +++ b/src/fit_met_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_met_zone_mesg_listener.hpp b/src/fit_met_zone_mesg_listener.hpp index 08fdaeb..2231d15 100644 --- a/src/fit_met_zone_mesg_listener.hpp +++ b/src/fit_met_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_hr_data_mesg.hpp b/src/fit_monitoring_hr_data_mesg.hpp index f381786..d924696 100644 --- a/src/fit_monitoring_hr_data_mesg.hpp +++ b/src/fit_monitoring_hr_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_hr_data_mesg_listener.hpp b/src/fit_monitoring_hr_data_mesg_listener.hpp index 803c2e6..86d75b1 100644 --- a/src/fit_monitoring_hr_data_mesg_listener.hpp +++ b/src/fit_monitoring_hr_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_info_mesg.hpp b/src/fit_monitoring_info_mesg.hpp index de034e1..a080aa5 100644 --- a/src/fit_monitoring_info_mesg.hpp +++ b/src/fit_monitoring_info_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_info_mesg_listener.hpp b/src/fit_monitoring_info_mesg_listener.hpp index bdafedc..f5a3cec 100644 --- a/src/fit_monitoring_info_mesg_listener.hpp +++ b/src/fit_monitoring_info_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_mesg.hpp b/src/fit_monitoring_mesg.hpp index d337013..42406fc 100644 --- a/src/fit_monitoring_mesg.hpp +++ b/src/fit_monitoring_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_monitoring_mesg_listener.hpp b/src/fit_monitoring_mesg_listener.hpp index 000bbe3..998fac2 100644 --- a/src/fit_monitoring_mesg_listener.hpp +++ b/src/fit_monitoring_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_nap_event_mesg.hpp b/src/fit_nap_event_mesg.hpp index c656856..c16a7ca 100644 --- a/src/fit_nap_event_mesg.hpp +++ b/src/fit_nap_event_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_nap_event_mesg_listener.hpp b/src/fit_nap_event_mesg_listener.hpp index 93c4fe9..be572f5 100644 --- a/src/fit_nap_event_mesg_listener.hpp +++ b/src/fit_nap_event_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_nmea_sentence_mesg.hpp b/src/fit_nmea_sentence_mesg.hpp index e323c77..f10d2e9 100644 --- a/src/fit_nmea_sentence_mesg.hpp +++ b/src/fit_nmea_sentence_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_nmea_sentence_mesg_listener.hpp b/src/fit_nmea_sentence_mesg_listener.hpp index 5ba6180..ec82008 100644 --- a/src/fit_nmea_sentence_mesg_listener.hpp +++ b/src/fit_nmea_sentence_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_obdii_data_mesg.hpp b/src/fit_obdii_data_mesg.hpp index 276a436..6b58458 100644 --- a/src/fit_obdii_data_mesg.hpp +++ b/src/fit_obdii_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_obdii_data_mesg_listener.hpp b/src/fit_obdii_data_mesg_listener.hpp index fb30801..55e2321 100644 --- a/src/fit_obdii_data_mesg_listener.hpp +++ b/src/fit_obdii_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ohr_settings_mesg.hpp b/src/fit_ohr_settings_mesg.hpp index 755c7b7..8fd164d 100644 --- a/src/fit_ohr_settings_mesg.hpp +++ b/src/fit_ohr_settings_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_ohr_settings_mesg_listener.hpp b/src/fit_ohr_settings_mesg_listener.hpp index 149c3dc..5faf6f9 100644 --- a/src/fit_ohr_settings_mesg_listener.hpp +++ b/src/fit_ohr_settings_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_one_d_sensor_calibration_mesg.hpp b/src/fit_one_d_sensor_calibration_mesg.hpp index dd3eeda..5ed2d92 100644 --- a/src/fit_one_d_sensor_calibration_mesg.hpp +++ b/src/fit_one_d_sensor_calibration_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_one_d_sensor_calibration_mesg_listener.hpp b/src/fit_one_d_sensor_calibration_mesg_listener.hpp index 87a96be..4445161 100644 --- a/src/fit_one_d_sensor_calibration_mesg_listener.hpp +++ b/src/fit_one_d_sensor_calibration_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_pad_mesg.hpp b/src/fit_pad_mesg.hpp index 43eab4e..03a50f6 100644 --- a/src/fit_pad_mesg.hpp +++ b/src/fit_pad_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_pad_mesg_listener.hpp b/src/fit_pad_mesg_listener.hpp index 44d566e..cee8357 100644 --- a/src/fit_pad_mesg_listener.hpp +++ b/src/fit_pad_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_power_zone_mesg.hpp b/src/fit_power_zone_mesg.hpp index df1d475..452c0bc 100644 --- a/src/fit_power_zone_mesg.hpp +++ b/src/fit_power_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_power_zone_mesg_listener.hpp b/src/fit_power_zone_mesg_listener.hpp index fa30b10..56386ae 100644 --- a/src/fit_power_zone_mesg_listener.hpp +++ b/src/fit_power_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_profile.cpp b/src/fit_profile.cpp index 688b73c..d3c8aca 100644 --- a/src/fit_profile.cpp +++ b/src/fit_profile.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -595,11 +595,45 @@ static const Profile::SUBFIELD_MAP sessionAvgCadenceAvgRunningCadenceMaps[] = { 1, 5 }, // sport == running }; +static const Profile::SUBFIELD_MAP sessionAvgCadenceAvgSwimmingCadenceMaps[] = +{ + { 5, 5 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP sessionAvgCadenceAvgPaddlesportCadenceMaps[] = +{ + { 15, 5 }, // sport == rowing + { 37, 5 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP sessionAvgCadenceAvgPushCadenceMaps[] = +{ + { 66, 5 }, // sport == wheelchair_push_run + { 65, 5 }, // sport == wheelchair_push_walk +}; + static const Profile::SUBFIELD_MAP sessionMaxCadenceMaxRunningCadenceMaps[] = { { 1, 5 }, // sport == running }; +static const Profile::SUBFIELD_MAP sessionMaxCadenceMaxSwimmingCadenceMaps[] = +{ + { 5, 5 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP sessionMaxCadenceMaxPaddlesportCadenceMaps[] = +{ + { 15, 5 }, // sport == rowing + { 37, 5 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP sessionMaxCadenceMaxPushCadenceMaps[] = +{ + { 66, 5 }, // sport == wheelchair_push_run + { 65, 5 }, // sport == wheelchair_push_walk +}; + static const Profile::SUBFIELD sessionTotalCyclesSubFields[] = { { sessionTotalCyclesTotalRepsMaps, 0, "total_reps", "reps", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, @@ -611,11 +645,17 @@ static const Profile::SUBFIELD sessionTotalCyclesSubFields[] = static const Profile::SUBFIELD sessionAvgCadenceSubFields[] = { { sessionAvgCadenceAvgRunningCadenceMaps, 0, "avg_running_cadence", "strides/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { sessionAvgCadenceAvgSwimmingCadenceMaps, 0, "avg_swimming_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { sessionAvgCadenceAvgPaddlesportCadenceMaps, 0, "avg_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, + { sessionAvgCadenceAvgPushCadenceMaps, 0, "avg_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, }; static const Profile::SUBFIELD sessionMaxCadenceSubFields[] = { { sessionMaxCadenceMaxRunningCadenceMaps, 0, "max_running_cadence", "strides/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { sessionMaxCadenceMaxSwimmingCadenceMaps, 0, "max_swimming_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { sessionMaxCadenceMaxPaddlesportCadenceMaps, 0, "max_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, + { sessionMaxCadenceMaxPushCadenceMaps, 0, "max_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, }; static const Profile::FIELD sessionFields[] = @@ -639,8 +679,8 @@ static const Profile::FIELD sessionFields[] = { sessionMaxSpeedComponents, 0, "max_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 1, 0, 15, 132, false, Profile::Type::Uint16 }, { 0, 0, "avg_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 16, 2, false, Profile::Type::Uint8 }, { 0, 0, "max_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 17, 2, false, Profile::Type::Uint8 }, -{ 0, sessionAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 1, 18, 2, false, Profile::Type::Uint8 }, -{ 0, sessionMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 1, 19, 2, false, Profile::Type::Uint8 }, +{ 0, sessionAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 18, 2, false, Profile::Type::Uint8 }, +{ 0, sessionMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 19, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 20, 132, false, Profile::Type::Uint16 }, { 0, 0, "max_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 21, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_ascent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 22, 132, false, Profile::Type::Uint16 }, @@ -693,6 +733,8 @@ static const Profile::FIELD sessionFields[] = { 0, 0, "best_lap_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 70, 132, false, Profile::Type::Uint16 }, { sessionMinAltitudeComponents, 0, "min_altitude", "m", (FIT_FLOAT64)5, (FIT_FLOAT64)500, 1, 0, 71, 132, false, Profile::Type::Uint16 }, { 0, 0, "active_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 78, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_strokes_per_length", "strokes/length", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 79, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_swolf", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 80, 132, false, Profile::Type::Uint16 }, { 0, 0, "player_score", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 82, 132, false, Profile::Type::Uint16 }, { 0, 0, "opponent_score", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 83, 132, false, Profile::Type::Uint16 }, { 0, 0, "opponent_name", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 84, 7, false, Profile::Type::String }, @@ -717,6 +759,9 @@ static const Profile::FIELD sessionFields[] = { 0, 0, "avg_left_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 103, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_right_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 104, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_combined_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 105, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "num_segment_laps", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 106, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "front_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 107, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "rear_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 108, 132, false, Profile::Type::Uint16 }, { 0, 0, "sport_profile_name", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 110, 7, false, Profile::Type::String }, { 0, 0, "sport_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 111, 2, false, Profile::Type::Uint8 }, { 0, 0, "time_standing", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 112, 134, false, Profile::Type::Uint32 }, @@ -778,6 +823,7 @@ static const Profile::FIELD sessionFields[] = { 0, 0, "avg_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 208, 132, false, Profile::Type::Uint16 }, { 0, 0, "min_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 209, 132, false, Profile::Type::Uint16 }, { 0, 0, "max_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 210, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_grade_adjusted_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 211, 134, false, Profile::Type::Uint32 }, }; static const Profile::FIELD_COMPONENT lapAvgSpeedComponents[] = @@ -829,30 +875,77 @@ static const Profile::SUBFIELD_MAP lapTotalCyclesTotalStrokesMaps[] = { 37, 25 }, // sport == stand_up_paddleboarding }; +static const Profile::SUBFIELD_MAP lapTotalCyclesTotalPushesMaps[] = +{ + { 66, 25 }, // sport == wheelchair_push_run + { 65, 25 }, // sport == wheelchair_push_walk +}; + static const Profile::SUBFIELD_MAP lapAvgCadenceAvgRunningCadenceMaps[] = { { 1, 25 }, // sport == running }; +static const Profile::SUBFIELD_MAP lapAvgCadenceAvgSwimmingCadenceMaps[] = +{ + { 5, 25 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP lapAvgCadenceAvgPaddlesportCadenceMaps[] = +{ + { 15, 25 }, // sport == rowing + { 37, 25 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP lapAvgCadenceAvgPushCadenceMaps[] = +{ + { 66, 25 }, // sport == wheelchair_push_run + { 65, 25 }, // sport == wheelchair_push_walk +}; + static const Profile::SUBFIELD_MAP lapMaxCadenceMaxRunningCadenceMaps[] = { { 1, 25 }, // sport == running }; +static const Profile::SUBFIELD_MAP lapMaxCadenceMaxSwimmingCadenceMaps[] = +{ + { 5, 25 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP lapMaxCadenceMaxPaddlesportCadenceMaps[] = +{ + { 15, 25 }, // sport == rowing + { 37, 25 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP lapMaxCadenceMaxPushCadenceMaps[] = +{ + { 66, 25 }, // sport == wheelchair_push_run + { 65, 25 }, // sport == wheelchair_push_walk +}; + static const Profile::SUBFIELD lapTotalCyclesSubFields[] = { { lapTotalCyclesTotalStridesMaps, 0, "total_strides", "strides", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, { lapTotalCyclesTotalStrokesMaps, 0, "total_strokes", "strokes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 4, 0, 134 }, + { lapTotalCyclesTotalPushesMaps, 0, "total_pushes", "pushes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, }; static const Profile::SUBFIELD lapAvgCadenceSubFields[] = { { lapAvgCadenceAvgRunningCadenceMaps, 0, "avg_running_cadence", "strides/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { lapAvgCadenceAvgSwimmingCadenceMaps, 0, "avg_swimming_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { lapAvgCadenceAvgPaddlesportCadenceMaps, 0, "avg_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, + { lapAvgCadenceAvgPushCadenceMaps, 0, "avg_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, }; static const Profile::SUBFIELD lapMaxCadenceSubFields[] = { { lapMaxCadenceMaxRunningCadenceMaps, 0, "max_running_cadence", "strides/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { lapMaxCadenceMaxSwimmingCadenceMaps, 0, "max_swimming_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 2 }, + { lapMaxCadenceMaxPaddlesportCadenceMaps, 0, "max_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, + { lapMaxCadenceMaxPushCadenceMaps, 0, "max_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 2 }, }; static const Profile::FIELD lapFields[] = @@ -869,15 +962,15 @@ static const Profile::FIELD lapFields[] = { 0, 0, "total_elapsed_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 7, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_timer_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 8, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 9, 134, false, Profile::Type::Uint32 }, -{ 0, lapTotalCyclesSubFields, "total_cycles", "cycles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 2, 10, 134, false, Profile::Type::Uint32 }, +{ 0, lapTotalCyclesSubFields, "total_cycles", "cycles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 3, 10, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 11, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_fat_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 12, 132, false, Profile::Type::Uint16 }, { lapAvgSpeedComponents, 0, "avg_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 1, 0, 13, 132, false, Profile::Type::Uint16 }, { lapMaxSpeedComponents, 0, "max_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 1, 0, 14, 132, false, Profile::Type::Uint16 }, { 0, 0, "avg_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 15, 2, false, Profile::Type::Uint8 }, { 0, 0, "max_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 16, 2, false, Profile::Type::Uint8 }, -{ 0, lapAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 1, 17, 2, false, Profile::Type::Uint8 }, -{ 0, lapMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 1, 18, 2, false, Profile::Type::Uint8 }, +{ 0, lapAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 17, 2, false, Profile::Type::Uint8 }, +{ 0, lapMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 18, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 19, 132, false, Profile::Type::Uint16 }, { 0, 0, "max_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 20, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_ascent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 21, 132, false, Profile::Type::Uint16 }, @@ -886,6 +979,10 @@ static const Profile::FIELD lapFields[] = { 0, 0, "lap_trigger", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 24, 0, false, Profile::Type::LapTrigger }, { 0, 0, "sport", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 25, 0, false, Profile::Type::Sport }, { 0, 0, "event_group", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 26, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "nec_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 27, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "nec_long", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 28, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "swc_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 29, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "swc_long", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 30, 133, false, Profile::Type::Sint32 }, { 0, 0, "num_lengths", "lengths", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 32, 132, false, Profile::Type::Uint16 }, { 0, 0, "normalized_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 33, 132, false, Profile::Type::Uint16 }, { 0, 0, "left_right_balance", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 34, 132, false, Profile::Type::LeftRightBalance100 }, @@ -919,6 +1016,7 @@ static const Profile::FIELD lapFields[] = { 0, 0, "min_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 63, 2, false, Profile::Type::Uint8 }, { 0, 0, "active_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 70, 134, false, Profile::Type::Uint32 }, { 0, 0, "wkt_step_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 71, 132, false, Profile::Type::MessageIndex }, +{ 0, 0, "avg_swolf", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 73, 132, false, Profile::Type::Uint16 }, { 0, 0, "opponent_score", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 74, 132, false, Profile::Type::Uint16 }, { 0, 0, "stroke_count", "counts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 75, 132, false, Profile::Type::Uint16 }, { 0, 0, "zone_count", "counts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 76, 132, false, Profile::Type::Uint16 }, @@ -935,11 +1033,14 @@ static const Profile::FIELD lapFields[] = { 0, 0, "avg_saturated_hemoglobin_percent", "%", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 87, 132, false, Profile::Type::Uint16 }, { 0, 0, "min_saturated_hemoglobin_percent", "%", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 88, 132, false, Profile::Type::Uint16 }, { 0, 0, "max_saturated_hemoglobin_percent", "%", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 89, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_strokes_per_length", "strokes / length", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 90, 132, false, Profile::Type::Uint16 }, { 0, 0, "avg_left_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 91, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_right_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 92, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_left_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 93, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_right_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 94, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_combined_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 95, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "front_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 96, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "rear_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 97, 132, false, Profile::Type::Uint16 }, { 0, 0, "time_standing", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 98, 134, false, Profile::Type::Uint32 }, { 0, 0, "stand_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 99, 132, false, Profile::Type::Uint16 }, { 0, 0, "avg_left_pco", "mm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 100, 1, false, Profile::Type::Sint8 }, @@ -976,11 +1077,13 @@ static const Profile::FIELD lapFields[] = { 0, 0, "jump_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 151, 132, false, Profile::Type::Uint16 }, { 0, 0, "avg_grit", "kGrit", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 153, 136, false, Profile::Type::Float32 }, { 0, 0, "avg_flow", "Flow", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 154, 136, false, Profile::Type::Float32 }, +{ 0, 0, "metabolic_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 155, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 156, 2, false, Profile::Type::Uint8 }, { 0, 0, "total_fractional_descent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 157, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 158, 132, false, Profile::Type::Uint16 }, { 0, 0, "min_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 159, 132, false, Profile::Type::Uint16 }, { 0, 0, "max_core_temperature", "C", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 160, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_grade_adjusted_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 161, 134, false, Profile::Type::Uint32 }, }; static const Profile::FIELD_COMPONENT lengthAvgRespirationRateComponents[] = @@ -1017,6 +1120,7 @@ static const Profile::FIELD lengthFields[] = { 0, 0, "enhanced_max_respiration_rate", "Breaths/min", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 23, 132, false, Profile::Type::Uint16 }, { lengthAvgRespirationRateComponents, 0, "avg_respiration_rate", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 1, 0, 24, 2, false, Profile::Type::Uint8 }, { lengthMaxRespirationRateComponents, 0, "max_respiration_rate", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 1, 0, 25, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "metabolic_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 26, 132, false, Profile::Type::Uint16 }, }; static const Profile::FIELD_COMPONENT recordAltitudeComponents[] = @@ -1449,6 +1553,12 @@ static const Profile::FIELD trainingFileFields[] = { 0, 0, "time_created", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 4, 134, false, Profile::Type::DateTime }, }; +static const Profile::FIELD batteryFields[] = +{ +{ 0, 0, "timestamp", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 253, 134, false, Profile::Type::DateTime }, +{ 0, 0, "capacity", "%", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 2, 2, false, Profile::Type::Uint8 }, +}; + static const Profile::FIELD weatherConditionsFields[] = { { 0, 0, "timestamp", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 253, 134, false, Profile::Type::DateTime }, @@ -1549,6 +1659,7 @@ static const Profile::FIELD barometerDataFields[] = { 0, 0, "timestamp_ms", "ms", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 0, 132, false, Profile::Type::Uint16 }, { 0, 0, "sample_time_offset", "ms", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 1, 132, false, Profile::Type::Uint16 }, { 0, 0, "baro_pres", "Pa", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 2, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "enhanced_altitude", "m", (FIT_FLOAT64)5, (FIT_FLOAT64)500, 0, 0, 3, 134, false, Profile::Type::Uint32 }, }; static const Profile::SUBFIELD_MAP threeDSensorCalibrationCalibrationFactorAccelCalFactorMaps[] = @@ -1707,17 +1818,219 @@ static const Profile::FIELD jumpFields[] = { 0, 0, "enhanced_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 8, 134, false, Profile::Type::Uint32 }, }; +static const Profile::SUBFIELD_MAP splitAvgCadenceAvgRunningCadenceMaps[] = +{ + { 1, 11 }, // sport == running +}; + +static const Profile::SUBFIELD_MAP splitAvgCadenceAvgSwimmingCadenceMaps[] = +{ + { 5, 11 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP splitAvgCadenceAvgPaddlesportCadenceMaps[] = +{ + { 15, 11 }, // sport == rowing + { 37, 11 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitAvgCadenceAvgPushCadenceMaps[] = +{ + { 66, 11 }, // sport == wheelchair_push_run + { 65, 11 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitMaxCadenceMaxRunningCadenceMaps[] = +{ + { 1, 11 }, // sport == running +}; + +static const Profile::SUBFIELD_MAP splitMaxCadenceMaxSwimmingCadenceMaps[] = +{ + { 5, 11 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP splitMaxCadenceMaxPaddlesportCadenceMaps[] = +{ + { 15, 11 }, // sport == rowing + { 37, 11 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitMaxCadenceMaxPushCadenceMaps[] = +{ + { 66, 11 }, // sport == wheelchair_push_run + { 65, 11 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitTotalCyclesTotalStridesMaps[] = +{ + { 1, 11 }, // sport == running + { 11, 11 }, // sport == walking +}; + +static const Profile::SUBFIELD_MAP splitTotalCyclesTotalStrokesMaps[] = +{ + { 2, 11 }, // sport == cycling + { 5, 11 }, // sport == swimming + { 15, 11 }, // sport == rowing + { 37, 11 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitTotalCyclesTotalRepsMaps[] = +{ + { 62, 11 }, // sport == hiit +}; + +static const Profile::SUBFIELD_MAP splitTotalCyclesTotalPushesMaps[] = +{ + { 66, 11 }, // sport == wheelchair_push_run + { 65, 11 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeYdsMaps[] = +{ + { 0, 69 }, // climb_grading_scale == yds +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeUiaaMaps[] = +{ + { 1, 69 }, // climb_grading_scale == uiaa +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeFrenchMaps[] = +{ + { 2, 69 }, // climb_grading_scale == french +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeBritishAdjectivalMaps[] = +{ + { 3, 69 }, // climb_grading_scale == british_adjectival +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeBritishTechnicalMaps[] = +{ + { 4, 69 }, // climb_grading_scale == british_technical +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeEwbankMaps[] = +{ + { 5, 69 }, // climb_grading_scale == ewbank +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeBrazilianMaps[] = +{ + { 6, 69 }, // climb_grading_scale == brazilian +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeSaxonMaps[] = +{ + { 7, 69 }, // climb_grading_scale == saxon +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeVerminMaps[] = +{ + { 8, 69 }, // climb_grading_scale == vermin +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeFontMaps[] = +{ + { 9, 69 }, // climb_grading_scale == font +}; + +static const Profile::SUBFIELD_MAP splitClimbGradeValueClimbGradeDankyuMaps[] = +{ + { 10, 69 }, // climb_grading_scale == dankyu +}; + +static const Profile::SUBFIELD_MAP splitMinCadenceMinRunningCadenceMaps[] = +{ + { 1, 11 }, // sport == running +}; + +static const Profile::SUBFIELD_MAP splitMinCadenceMinSwimmingCadenceMaps[] = +{ + { 5, 11 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP splitMinCadenceMinPaddlesportCadenceMaps[] = +{ + { 15, 11 }, // sport == rowing + { 37, 11 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitMinCadenceMinPushCadenceMaps[] = +{ + { 66, 11 }, // sport == wheelchair_push_run + { 65, 11 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD splitAvgCadenceSubFields[] = +{ + { splitAvgCadenceAvgRunningCadenceMaps, 0, "avg_running_cadence", "strides/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitAvgCadenceAvgSwimmingCadenceMaps, 0, "avg_swimming_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitAvgCadenceAvgPaddlesportCadenceMaps, 0, "avg_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 2, 0, 132 }, + { splitAvgCadenceAvgPushCadenceMaps, 0, "avg_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 132 }, +}; + +static const Profile::SUBFIELD splitMaxCadenceSubFields[] = +{ + { splitMaxCadenceMaxRunningCadenceMaps, 0, "max_running_cadence", "strides/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitMaxCadenceMaxSwimmingCadenceMaps, 0, "max_swimming_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitMaxCadenceMaxPaddlesportCadenceMaps, 0, "max_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 2, 0, 132 }, + { splitMaxCadenceMaxPushCadenceMaps, 0, "max_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 132 }, +}; + +static const Profile::SUBFIELD splitTotalCyclesSubFields[] = +{ + { splitTotalCyclesTotalStridesMaps, 0, "total_strides", "strides", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, + { splitTotalCyclesTotalStrokesMaps, 0, "total_strokes", "strokes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 4, 0, 134 }, + { splitTotalCyclesTotalRepsMaps, 0, "total_reps", "reps", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 134 }, + { splitTotalCyclesTotalPushesMaps, 0, "total_pushes", "pushes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, +}; + +static const Profile::SUBFIELD splitClimbGradeValueSubFields[] = +{ + { splitClimbGradeValueClimbGradeYdsMaps, 0, "climb_grade_yds", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeUiaaMaps, 0, "climb_grade_uiaa", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeFrenchMaps, 0, "climb_grade_french", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeBritishAdjectivalMaps, 0, "climb_grade_british_adjectival", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeBritishTechnicalMaps, 0, "climb_grade_british_technical", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeEwbankMaps, 0, "climb_grade_ewbank", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeBrazilianMaps, 0, "climb_grade_brazilian", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeSaxonMaps, 0, "climb_grade_saxon", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeVerminMaps, 0, "climb_grade_vermin", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeFontMaps, 0, "climb_grade_font", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitClimbGradeValueClimbGradeDankyuMaps, 0, "climb_grade_dankyu", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, +}; + +static const Profile::SUBFIELD splitMinCadenceSubFields[] = +{ + { splitMinCadenceMinRunningCadenceMaps, 0, "min_running_cadence", "strides/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitMinCadenceMinSwimmingCadenceMaps, 0, "min_swimming_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitMinCadenceMinPaddlesportCadenceMaps, 0, "min_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 2, 0, 132 }, + { splitMinCadenceMinPushCadenceMaps, 0, "min_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 132 }, +}; + static const Profile::FIELD splitFields[] = { { 0, 0, "message_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 254, 132, false, Profile::Type::MessageIndex }, +{ 0, 0, "timestamp", "s", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 253, 134, false, Profile::Type::DateTime }, { 0, 0, "split_type", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 0, 0, false, Profile::Type::SplitType }, { 0, 0, "total_elapsed_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 1, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_timer_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 2, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 3, 134, false, Profile::Type::Uint32 }, { 0, 0, "avg_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 4, 134, false, Profile::Type::Uint32 }, { 0, 0, "start_time", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 9, 134, false, Profile::Type::DateTime }, +{ 0, 0, "sport", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 11, 0, false, Profile::Type::Sport }, +{ 0, 0, "sub_sport", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 12, 0, false, Profile::Type::SubSport }, { 0, 0, "total_ascent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 13, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_descent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 14, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 15, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "max_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 16, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "nec_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 17, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "nec_long", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 18, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "swc_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 19, 133, false, Profile::Type::Sint32 }, +{ 0, 0, "swc_long", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 20, 133, false, Profile::Type::Sint32 }, { 0, 0, "start_position_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 21, 133, false, Profile::Type::Sint32 }, { 0, 0, "start_position_long", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 22, 133, false, Profile::Type::Sint32 }, { 0, 0, "end_position_lat", "semicircles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 23, 133, false, Profile::Type::Sint32 }, @@ -1726,15 +2039,252 @@ static const Profile::FIELD splitFields[] = { 0, 0, "avg_vert_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 26, 133, false, Profile::Type::Sint32 }, { 0, 0, "end_time", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 27, 134, false, Profile::Type::DateTime }, { 0, 0, "total_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 28, 134, false, Profile::Type::Uint32 }, +{ 0, splitAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 4, 29, 132, false, Profile::Type::Uint16 }, +{ 0, splitMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 4, 30, 132, false, Profile::Type::Uint16 }, +{ 0, splitTotalCyclesSubFields, "total_cycles", "cycles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 31, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 32, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "max_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 33, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "min_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 34, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_vertical_oscillation", "mm", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 35, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_vertical_ratio", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 36, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stance_time", "ms", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 37, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stance_time_balance", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 38, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_step_length", "mm", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 39, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 40, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 41, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "normalized_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 42, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "left_right_balance", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 43, 132, false, Profile::Type::LeftRightBalance100 }, +{ 0, 0, "time_standing", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 44, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_left_pco", "mm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 45, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_right_pco", "mm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 46, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_left_power_phase", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 47, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_left_power_phase_peak", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 48, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_power_phase", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 49, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_power_phase_peak", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 50, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_power_position", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 51, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_power_position", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 52, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_left_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 53, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 54, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_left_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 55, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 56, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_combined_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 57, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_flow", "Flow", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 58, 136, false, Profile::Type::Float32 }, +{ 0, 0, "total_grit", "kGrit", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 59, 136, false, Profile::Type::Float32 }, +{ 0, 0, "swim_stroke", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 62, 0, false, Profile::Type::SwimStroke }, +{ 0, 0, "num_active_lengths", "lengths", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 63, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_swolf", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 64, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stroke_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 65, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_strokes_per_length", "strokes / length", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 66, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "first_lap_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 67, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "num_laps", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 68, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "climb_grading_scale", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 69, 0, false, Profile::Type::ClimbGradingScale }, +{ 0, splitClimbGradeValueSubFields, "climb_grade_value", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 11, 70, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "status", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 71, 0, false, Profile::Type::SplitStatus }, +{ 0, 0, "num_falls", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 72, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "climb_send", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 73, 0, false, Profile::Type::Bool }, { 0, 0, "start_elevation", "m", (FIT_FLOAT64)5, (FIT_FLOAT64)500, 0, 0, 74, 134, false, Profile::Type::Uint32 }, { 0, 0, "active_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 78, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "metabolic_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 79, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "total_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 80, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "total_fractional_descent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 81, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_grade", "%", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 88, 131, false, Profile::Type::Sint16 }, +{ 0, 0, "max_grade", "%", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 89, 131, false, Profile::Type::Sint16 }, +{ 0, splitMinCadenceSubFields, "min_cadence", "rpm", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 4, 90, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_grade_adjusted_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 93, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_stress", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 94, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_vam", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 99, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "jump_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 104, 2, false, Profile::Type::Uint8 }, { 0, 0, "total_moving_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 110, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "dive_section_type", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 112, 0, false, Profile::Type::DiveSectionType }, +{ 0, 0, "avg_ascent_rate", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 113, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "max_ascent_rate", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 114, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_descent_rate", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 115, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "max_descent_rate", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 116, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "total_ascent_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 117, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "total_descent_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 118, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "total_hang_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 119, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "apnea_discipline", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 120, 0, false, Profile::Type::ApneaDiscipline }, +{ 0, 0, "avg_depth", "m", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 121, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "max_depth", "m", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 122, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "min_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 124, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "surface_interval", "s", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 127, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "total_fractional_cycles", "cycles", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 0, 142, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_stance_time_percent", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 144, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "total_anaerobic_training_effect", "", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 168, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "front_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 169, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "rear_gear_shift_count", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 170, 132, false, Profile::Type::Uint16 }, +}; + +static const Profile::SUBFIELD_MAP splitSummaryAvgCadenceAvgRunningCadenceMaps[] = +{ + { 1, 1 }, // sport == running +}; + +static const Profile::SUBFIELD_MAP splitSummaryAvgCadenceAvgSwimmingCadenceMaps[] = +{ + { 5, 1 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP splitSummaryAvgCadenceAvgPaddlesportCadenceMaps[] = +{ + { 15, 1 }, // sport == rowing + { 37, 1 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitSummaryAvgCadenceAvgPushCadenceMaps[] = +{ + { 66, 1 }, // sport == wheelchair_push_run + { 65, 1 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitSummaryMaxCadenceMaxRunningCadenceMaps[] = +{ + { 1, 1 }, // sport == running +}; + +static const Profile::SUBFIELD_MAP splitSummaryMaxCadenceMaxSwimmingCadenceMaps[] = +{ + { 5, 1 }, // sport == swimming +}; + +static const Profile::SUBFIELD_MAP splitSummaryMaxCadenceMaxPaddlesportCadenceMaps[] = +{ + { 15, 1 }, // sport == rowing + { 37, 1 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitSummaryMaxCadenceMaxPushCadenceMaps[] = +{ + { 66, 1 }, // sport == wheelchair_push_run + { 65, 1 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitSummaryTotalCyclesTotalStridesMaps[] = +{ + { 1, 1 }, // sport == running + { 11, 1 }, // sport == walking +}; + +static const Profile::SUBFIELD_MAP splitSummaryTotalCyclesTotalStrokesMaps[] = +{ + { 2, 1 }, // sport == cycling + { 5, 1 }, // sport == swimming + { 15, 1 }, // sport == rowing + { 37, 1 }, // sport == stand_up_paddleboarding +}; + +static const Profile::SUBFIELD_MAP splitSummaryTotalCyclesTotalRepsMaps[] = +{ + { 62, 1 }, // sport == hiit +}; + +static const Profile::SUBFIELD_MAP splitSummaryTotalCyclesTotalPushesMaps[] = +{ + { 66, 1 }, // sport == wheelchair_push_run + { 65, 1 }, // sport == wheelchair_push_walk +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeYdsMaps[] = +{ + { 0, 54 }, // climb_grading_scale == yds +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeUiaaMaps[] = +{ + { 1, 54 }, // climb_grading_scale == uiaa +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeFrenchMaps[] = +{ + { 2, 54 }, // climb_grading_scale == french +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeBritishAdjectivalMaps[] = +{ + { 3, 54 }, // climb_grading_scale == british_adjectival +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeBritishTechnicalMaps[] = +{ + { 4, 54 }, // climb_grading_scale == british_technical +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeEwbankMaps[] = +{ + { 5, 54 }, // climb_grading_scale == ewbank +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeBrazilianMaps[] = +{ + { 6, 54 }, // climb_grading_scale == brazilian +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeSaxonMaps[] = +{ + { 7, 54 }, // climb_grading_scale == saxon +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeVerminMaps[] = +{ + { 8, 54 }, // climb_grading_scale == vermin +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeFontMaps[] = +{ + { 9, 54 }, // climb_grading_scale == font +}; + +static const Profile::SUBFIELD_MAP splitSummaryClimbMaxGradeValueClimbMaxGradeDankyuMaps[] = +{ + { 10, 54 }, // climb_grading_scale == dankyu +}; + +static const Profile::SUBFIELD splitSummaryAvgCadenceSubFields[] = +{ + { splitSummaryAvgCadenceAvgRunningCadenceMaps, 0, "avg_running_cadence", "strides/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitSummaryAvgCadenceAvgSwimmingCadenceMaps, 0, "avg_swimming_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitSummaryAvgCadenceAvgPaddlesportCadenceMaps, 0, "avg_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 2, 0, 132 }, + { splitSummaryAvgCadenceAvgPushCadenceMaps, 0, "avg_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 132 }, +}; + +static const Profile::SUBFIELD splitSummaryMaxCadenceSubFields[] = +{ + { splitSummaryMaxCadenceMaxRunningCadenceMaps, 0, "max_running_cadence", "strides/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitSummaryMaxCadenceMaxSwimmingCadenceMaps, 0, "max_swimming_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 1, 0, 132 }, + { splitSummaryMaxCadenceMaxPaddlesportCadenceMaps, 0, "max_paddlesport_cadence", "strokes/min", (FIT_FLOAT32)128, (FIT_FLOAT32)0, 2, 0, 132 }, + { splitSummaryMaxCadenceMaxPushCadenceMaps, 0, "max_push_cadence", "pushes/min", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 132 }, +}; + +static const Profile::SUBFIELD splitSummaryTotalCyclesSubFields[] = +{ + { splitSummaryTotalCyclesTotalStridesMaps, 0, "total_strides", "strides", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, + { splitSummaryTotalCyclesTotalStrokesMaps, 0, "total_strokes", "strokes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 4, 0, 134 }, + { splitSummaryTotalCyclesTotalRepsMaps, 0, "total_reps", "reps", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 134 }, + { splitSummaryTotalCyclesTotalPushesMaps, 0, "total_pushes", "pushes", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 2, 0, 134 }, +}; + +static const Profile::SUBFIELD splitSummaryClimbMaxGradeValueSubFields[] = +{ + { splitSummaryClimbMaxGradeValueClimbMaxGradeYdsMaps, 0, "climb_max_grade_yds", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeUiaaMaps, 0, "climb_max_grade_uiaa", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeFrenchMaps, 0, "climb_max_grade_french", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeBritishAdjectivalMaps, 0, "climb_max_grade_british_adjectival", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeBritishTechnicalMaps, 0, "climb_max_grade_british_technical", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeEwbankMaps, 0, "climb_max_grade_ewbank", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeBrazilianMaps, 0, "climb_max_grade_brazilian", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeSaxonMaps, 0, "climb_max_grade_saxon", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeVerminMaps, 0, "climb_max_grade_vermin", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeFontMaps, 0, "climb_max_grade_font", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, + { splitSummaryClimbMaxGradeValueClimbMaxGradeDankyuMaps, 0, "climb_max_grade_dankyu", "", (FIT_FLOAT32)1, (FIT_FLOAT32)0, 1, 0, 0 }, }; static const Profile::FIELD splitSummaryFields[] = { { 0, 0, "message_index", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 254, 132, false, Profile::Type::MessageIndex }, +{ 0, 0, "timestamp", "s", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 253, 134, false, Profile::Type::DateTime }, { 0, 0, "split_type", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 0, 0, false, Profile::Type::SplitType }, +{ 0, 0, "sport", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 1, 0, false, Profile::Type::Sport }, +{ 0, 0, "sub_sport", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 2, 0, false, Profile::Type::SubSport }, { 0, 0, "num_splits", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 3, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_timer_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 4, 134, false, Profile::Type::Uint32 }, { 0, 0, "total_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 5, 134, false, Profile::Type::Uint32 }, @@ -1746,8 +2296,63 @@ static const Profile::FIELD splitSummaryFields[] = { 0, 0, "max_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 11, 2, false, Profile::Type::Uint8 }, { 0, 0, "avg_vert_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 12, 133, false, Profile::Type::Sint32 }, { 0, 0, "total_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 13, 134, false, Profile::Type::Uint32 }, +{ 0, splitSummaryAvgCadenceSubFields, "avg_cadence", "rpm", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 4, 14, 132, false, Profile::Type::Uint16 }, +{ 0, splitSummaryMaxCadenceSubFields, "max_cadence", "rpm", (FIT_FLOAT64)128, (FIT_FLOAT64)0, 0, 4, 15, 132, false, Profile::Type::Uint16 }, +{ 0, splitSummaryTotalCyclesSubFields, "total_cycles", "cycles", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 4, 16, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 17, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "max_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 18, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "min_temperature", "C", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 19, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_vertical_oscillation", "mm", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 20, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_vertical_ratio", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 21, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stance_time", "ms", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 22, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stance_time_balance", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 23, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_step_length", "mm", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 24, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 25, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 26, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "normalized_power", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 27, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "left_right_balance", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 28, 132, false, Profile::Type::LeftRightBalance100 }, +{ 0, 0, "time_standing", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 29, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_left_pco", "mm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 30, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_right_pco", "mm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 31, 1, false, Profile::Type::Sint8 }, +{ 0, 0, "avg_left_power_phase", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 32, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_left_power_phase_peak", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 33, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_power_phase", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 34, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_power_phase_peak", "degrees", (FIT_FLOAT64)0.7111111, (FIT_FLOAT64)0, 0, 0, 35, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_power_position", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 36, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_power_position", "watts", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 37, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_left_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 38, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_torque_effectiveness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 39, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_left_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 40, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_right_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 41, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_combined_pedal_smoothness", "percent", (FIT_FLOAT64)2, (FIT_FLOAT64)0, 0, 0, 42, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_flow", "Flow", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 43, 136, false, Profile::Type::Float32 }, +{ 0, 0, "total_grit", "kGrit", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 44, 136, false, Profile::Type::Float32 }, +{ 0, 0, "swim_stroke", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 47, 0, false, Profile::Type::SwimStroke }, +{ 0, 0, "num_active_lengths", "lengths", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 48, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_swolf", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 49, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_stroke_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 50, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_strokes_per_length", "strokes / length", (FIT_FLOAT64)10, (FIT_FLOAT64)0, 0, 0, 51, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "avg_ascent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 52, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_ascent", "m", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 53, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "climb_grading_scale", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 54, 0, false, Profile::Type::ClimbGradingScale }, +{ 0, splitSummaryClimbMaxGradeValueSubFields, "climb_max_grade_value", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 11, 55, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "num_falls", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 56, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "num_climbs_attempted", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 58, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "num_climbs_completed", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 59, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_distance", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 60, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "metabolic_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 64, 132, false, Profile::Type::Uint16 }, { 0, 0, "active_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 65, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "total_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 66, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "total_fractional_descent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 67, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 68, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "max_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 69, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_grade_adjusted_speed", "m/s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 71, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "avg_stress", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 72, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_moving_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 77, 134, false, Profile::Type::Uint32 }, +{ 0, 0, "start_time", "", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 79, 134, false, Profile::Type::DateTime }, +{ 0, 0, "min_heart_rate", "bpm", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 87, 2, false, Profile::Type::Uint8 }, +{ 0, 0, "avg_stance_time_percent", "percent", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 91, 132, false, Profile::Type::Uint16 }, +{ 0, 0, "max_total_timer_time", "s", (FIT_FLOAT64)1000, (FIT_FLOAT64)0, 0, 0, 101, 134, false, Profile::Type::Uint32 }, }; static const Profile::FIELD climbProFields[] = @@ -1965,6 +2570,7 @@ static const Profile::FIELD segmentLapFields[] = { 0, 0, "total_flow", "Flow", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 85, 136, false, Profile::Type::Float32 }, { 0, 0, "avg_grit", "kGrit", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 86, 136, false, Profile::Type::Float32 }, { 0, 0, "avg_flow", "Flow", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 87, 136, false, Profile::Type::Float32 }, +{ 0, 0, "metabolic_calories", "kcal", (FIT_FLOAT64)1, (FIT_FLOAT64)0, 0, 0, 88, 132, false, Profile::Type::Uint16 }, { 0, 0, "total_fractional_ascent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 89, 2, false, Profile::Type::Uint8 }, { 0, 0, "total_fractional_descent", "m", (FIT_FLOAT64)100, (FIT_FLOAT64)0, 0, 0, 90, 2, false, Profile::Type::Uint8 }, { 0, 0, "enhanced_avg_altitude", "m", (FIT_FLOAT64)5, (FIT_FLOAT64)500, 0, 0, 91, 134, false, Profile::Type::Uint32 }, @@ -2980,14 +3586,15 @@ const Profile::MESG Profile::mesgs[MESGS] = { diveGasFields, "dive_gas", FIT_MESG_NUM_DIVE_GAS, 5 }, { goalFields, "goal", FIT_MESG_NUM_GOAL, 13 }, { activityFields, "activity", FIT_MESG_NUM_ACTIVITY, 8 }, - { sessionFields, "session", FIT_MESG_NUM_SESSION, 158 }, - { lapFields, "lap", FIT_MESG_NUM_LAP, 124 }, - { lengthFields, "length", FIT_MESG_NUM_LENGTH, 22 }, + { sessionFields, "session", FIT_MESG_NUM_SESSION, 164 }, + { lapFields, "lap", FIT_MESG_NUM_LAP, 134 }, + { lengthFields, "length", FIT_MESG_NUM_LENGTH, 23 }, { recordFields, "record", FIT_MESG_NUM_RECORD, 84 }, { eventFields, "event", FIT_MESG_NUM_EVENT, 19 }, { deviceInfoFields, "device_info", FIT_MESG_NUM_DEVICE_INFO, 19 }, { deviceAuxBatteryInfoFields, "device_aux_battery_info", FIT_MESG_NUM_DEVICE_AUX_BATTERY_INFO, 5 }, { trainingFileFields, "training_file", FIT_MESG_NUM_TRAINING_FILE, 6 }, + { batteryFields, "battery", FIT_MESG_NUM_BATTERY, 2 }, { weatherConditionsFields, "weather_conditions", FIT_MESG_NUM_WEATHER_CONDITIONS, 16 }, { weatherAlertFields, "weather_alert", FIT_MESG_NUM_WEATHER_ALERT, 6 }, { gpsMetadataFields, "gps_metadata", FIT_MESG_NUM_GPS_METADATA, 9 }, @@ -2995,7 +3602,7 @@ const Profile::MESG Profile::mesgs[MESGS] = { gyroscopeDataFields, "gyroscope_data", FIT_MESG_NUM_GYROSCOPE_DATA, 9 }, { accelerometerDataFields, "accelerometer_data", FIT_MESG_NUM_ACCELEROMETER_DATA, 12 }, { magnetometerDataFields, "magnetometer_data", FIT_MESG_NUM_MAGNETOMETER_DATA, 9 }, - { barometerDataFields, "barometer_data", FIT_MESG_NUM_BAROMETER_DATA, 4 }, + { barometerDataFields, "barometer_data", FIT_MESG_NUM_BAROMETER_DATA, 5 }, { threeDSensorCalibrationFields, "three_d_sensor_calibration", FIT_MESG_NUM_THREE_D_SENSOR_CALIBRATION, 7 }, { oneDSensorCalibrationFields, "one_d_sensor_calibration", FIT_MESG_NUM_ONE_D_SENSOR_CALIBRATION, 6 }, { videoFrameFields, "video_frame", FIT_MESG_NUM_VIDEO_FRAME, 3 }, @@ -3008,8 +3615,8 @@ const Profile::MESG Profile::mesgs[MESGS] = { videoClipFields, "video_clip", FIT_MESG_NUM_VIDEO_CLIP, 7 }, { setFields, "set", FIT_MESG_NUM_SET, 11 }, { jumpFields, "jump", FIT_MESG_NUM_JUMP, 10 }, - { splitFields, "split", FIT_MESG_NUM_SPLIT, 20 }, - { splitSummaryFields, "split_summary", FIT_MESG_NUM_SPLIT_SUMMARY, 15 }, + { splitFields, "split", FIT_MESG_NUM_SPLIT, 100 }, + { splitSummaryFields, "split_summary", FIT_MESG_NUM_SPLIT_SUMMARY, 73 }, { climbProFields, "climb_pro", FIT_MESG_NUM_CLIMB_PRO, 7 }, { fieldDescriptionFields, "field_description", FIT_MESG_NUM_FIELD_DESCRIPTION, 14 }, { developerDataIdFields, "developer_data_id", FIT_MESG_NUM_DEVELOPER_DATA_ID, 5 }, @@ -3018,7 +3625,7 @@ const Profile::MESG Profile::mesgs[MESGS] = { segmentIdFields, "segment_id", FIT_MESG_NUM_SEGMENT_ID, 9 }, { segmentLeaderboardEntryFields, "segment_leaderboard_entry", FIT_MESG_NUM_SEGMENT_LEADERBOARD_ENTRY, 7 }, { segmentPointFields, "segment_point", FIT_MESG_NUM_SEGMENT_POINT, 7 }, - { segmentLapFields, "segment_lap", FIT_MESG_NUM_SEGMENT_LAP, 95 }, + { segmentLapFields, "segment_lap", FIT_MESG_NUM_SEGMENT_LAP, 96 }, { segmentFileFields, "segment_file", FIT_MESG_NUM_SEGMENT_FILE, 9 }, { workoutFields, "workout", FIT_MESG_NUM_WORKOUT, 9 }, { workoutSessionFields, "workout_session", FIT_MESG_NUM_WORKOUT_SESSION, 7 }, diff --git a/src/fit_profile.hpp b/src/fit_profile.hpp index 0044ec7..e1c396f 100644 --- a/src/fit_profile.hpp +++ b/src/fit_profile.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -100,6 +100,7 @@ typedef FIT_UINT16 FIT_MESG_NUM; #define FIT_MESG_NUM_ANT_CHANNEL_ID ((FIT_MESG_NUM)82) #define FIT_MESG_NUM_LENGTH ((FIT_MESG_NUM)101) #define FIT_MESG_NUM_MONITORING_INFO ((FIT_MESG_NUM)103) +#define FIT_MESG_NUM_BATTERY ((FIT_MESG_NUM)104) #define FIT_MESG_NUM_PAD ((FIT_MESG_NUM)105) #define FIT_MESG_NUM_SLAVE_DEVICE ((FIT_MESG_NUM)106) #define FIT_MESG_NUM_CONNECTIVITY ((FIT_MESG_NUM)127) @@ -184,7 +185,7 @@ typedef FIT_UINT16 FIT_MESG_NUM; #define FIT_MESG_NUM_SLEEP_DISRUPTION_OVERNIGHT_SEVERITY ((FIT_MESG_NUM)471) #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 126 +#define FIT_MESG_NUM_COUNT 127 typedef FIT_UINT8 FIT_CHECKSUM; #define FIT_CHECKSUM_INVALID FIT_UINT8_INVALID @@ -1398,8 +1399,10 @@ typedef FIT_UINT16 FIT_MANUFACTURER; #define FIT_MANUFACTURER_CADENCE_APP ((FIT_MANUFACTURER)350) #define FIT_MANUFACTURER_UNA_WATCH ((FIT_MANUFACTURER)351) #define FIT_MANUFACTURER_TYMEWEAR ((FIT_MANUFACTURER)352) +#define FIT_MANUFACTURER_EXPOSURE_LIGHTS ((FIT_MANUFACTURER)353) +#define FIT_MANUFACTURER_FORTO_CYCLING ((FIT_MANUFACTURER)354) #define FIT_MANUFACTURER_ACTIGRAPHCORP ((FIT_MANUFACTURER)5759) -#define FIT_MANUFACTURER_COUNT 245 +#define FIT_MANUFACTURER_COUNT 247 typedef FIT_UINT16 FIT_GARMIN_PRODUCT; #define FIT_GARMIN_PRODUCT_INVALID FIT_UINT16_INVALID @@ -5174,6 +5177,380 @@ typedef FIT_ENUM FIT_GAS_CONSUMPTION_RATE_TYPE; #define FIT_GAS_CONSUMPTION_RATE_TYPE_RMV ((FIT_GAS_CONSUMPTION_RATE_TYPE)2) // Respiratory Minute Volume #define FIT_GAS_CONSUMPTION_RATE_TYPE_COUNT 3 +typedef FIT_ENUM FIT_CLIMB_GRADING_SCALE; +#define FIT_CLIMB_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_CLIMB_GRADING_SCALE_YDS ((FIT_CLIMB_GRADING_SCALE)0) +#define FIT_CLIMB_GRADING_SCALE_UIAA ((FIT_CLIMB_GRADING_SCALE)1) +#define FIT_CLIMB_GRADING_SCALE_FRENCH ((FIT_CLIMB_GRADING_SCALE)2) +#define FIT_CLIMB_GRADING_SCALE_BRITISH_ADJECTIVAL ((FIT_CLIMB_GRADING_SCALE)3) +#define FIT_CLIMB_GRADING_SCALE_BRITISH_TECHNICAL ((FIT_CLIMB_GRADING_SCALE)4) +#define FIT_CLIMB_GRADING_SCALE_EWBANK ((FIT_CLIMB_GRADING_SCALE)5) +#define FIT_CLIMB_GRADING_SCALE_BRAZILIAN ((FIT_CLIMB_GRADING_SCALE)6) +#define FIT_CLIMB_GRADING_SCALE_SAXON ((FIT_CLIMB_GRADING_SCALE)7) +#define FIT_CLIMB_GRADING_SCALE_VERMIN ((FIT_CLIMB_GRADING_SCALE)8) +#define FIT_CLIMB_GRADING_SCALE_FONT ((FIT_CLIMB_GRADING_SCALE)9) +#define FIT_CLIMB_GRADING_SCALE_DANKYU ((FIT_CLIMB_GRADING_SCALE)10) +#define FIT_CLIMB_GRADING_SCALE_YDS_PM ((FIT_CLIMB_GRADING_SCALE)11) // YDS Plus Minus Grading Scale +#define FIT_CLIMB_GRADING_SCALE_COUNT 12 + +typedef FIT_ENUM FIT_YDS_GRADING_SCALE; +#define FIT_YDS_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_YDS_GRADING_SCALE_5_1 ((FIT_YDS_GRADING_SCALE)0) // 5.1 +#define FIT_YDS_GRADING_SCALE_5_2 ((FIT_YDS_GRADING_SCALE)1) // 5.2 +#define FIT_YDS_GRADING_SCALE_5_3 ((FIT_YDS_GRADING_SCALE)2) // 5.3 +#define FIT_YDS_GRADING_SCALE_5_4 ((FIT_YDS_GRADING_SCALE)3) // 5.4 +#define FIT_YDS_GRADING_SCALE_5_5 ((FIT_YDS_GRADING_SCALE)4) // 5.5 +#define FIT_YDS_GRADING_SCALE_5_6 ((FIT_YDS_GRADING_SCALE)5) // 5.6 +#define FIT_YDS_GRADING_SCALE_5_7 ((FIT_YDS_GRADING_SCALE)6) // 5.7 +#define FIT_YDS_GRADING_SCALE_5_8 ((FIT_YDS_GRADING_SCALE)7) // 5.8 +#define FIT_YDS_GRADING_SCALE_5_9 ((FIT_YDS_GRADING_SCALE)8) // 5.9 +#define FIT_YDS_GRADING_SCALE_5_10 ((FIT_YDS_GRADING_SCALE)9) // 5.1 +#define FIT_YDS_GRADING_SCALE_5_10A ((FIT_YDS_GRADING_SCALE)10) // 5.10a +#define FIT_YDS_GRADING_SCALE_5_10B ((FIT_YDS_GRADING_SCALE)11) // 5.10b +#define FIT_YDS_GRADING_SCALE_5_10C ((FIT_YDS_GRADING_SCALE)12) // 5.10c +#define FIT_YDS_GRADING_SCALE_5_10D ((FIT_YDS_GRADING_SCALE)13) // 5.10d +#define FIT_YDS_GRADING_SCALE_5_11 ((FIT_YDS_GRADING_SCALE)14) // 5.11 +#define FIT_YDS_GRADING_SCALE_5_11A ((FIT_YDS_GRADING_SCALE)15) // 5.11a +#define FIT_YDS_GRADING_SCALE_5_11B ((FIT_YDS_GRADING_SCALE)16) // 5.11b +#define FIT_YDS_GRADING_SCALE_5_11C ((FIT_YDS_GRADING_SCALE)17) // 5.11c +#define FIT_YDS_GRADING_SCALE_5_11D ((FIT_YDS_GRADING_SCALE)18) // 5.11d +#define FIT_YDS_GRADING_SCALE_5_12 ((FIT_YDS_GRADING_SCALE)19) // 5.12 +#define FIT_YDS_GRADING_SCALE_5_12A ((FIT_YDS_GRADING_SCALE)20) // 5.12a +#define FIT_YDS_GRADING_SCALE_5_12B ((FIT_YDS_GRADING_SCALE)21) // 5.12b +#define FIT_YDS_GRADING_SCALE_5_12C ((FIT_YDS_GRADING_SCALE)22) // 5.12c +#define FIT_YDS_GRADING_SCALE_5_12D ((FIT_YDS_GRADING_SCALE)23) // 5.12d +#define FIT_YDS_GRADING_SCALE_5_13 ((FIT_YDS_GRADING_SCALE)24) // 5.13 +#define FIT_YDS_GRADING_SCALE_5_13A ((FIT_YDS_GRADING_SCALE)25) // 5.13a +#define FIT_YDS_GRADING_SCALE_5_13B ((FIT_YDS_GRADING_SCALE)26) // 5.13b +#define FIT_YDS_GRADING_SCALE_5_13C ((FIT_YDS_GRADING_SCALE)27) // 5.13c +#define FIT_YDS_GRADING_SCALE_5_13D ((FIT_YDS_GRADING_SCALE)28) // 5.13d +#define FIT_YDS_GRADING_SCALE_5_14 ((FIT_YDS_GRADING_SCALE)29) // 5.14 +#define FIT_YDS_GRADING_SCALE_5_14A ((FIT_YDS_GRADING_SCALE)30) // 5.14a +#define FIT_YDS_GRADING_SCALE_5_14B ((FIT_YDS_GRADING_SCALE)31) // 5.14b +#define FIT_YDS_GRADING_SCALE_5_14C ((FIT_YDS_GRADING_SCALE)32) // 5.14c +#define FIT_YDS_GRADING_SCALE_5_14D ((FIT_YDS_GRADING_SCALE)33) // 5.14d +#define FIT_YDS_GRADING_SCALE_5_15 ((FIT_YDS_GRADING_SCALE)34) // 5.15 +#define FIT_YDS_GRADING_SCALE_5_15A ((FIT_YDS_GRADING_SCALE)35) // 5.15a +#define FIT_YDS_GRADING_SCALE_5_15B ((FIT_YDS_GRADING_SCALE)36) // 5.15b +#define FIT_YDS_GRADING_SCALE_5_15C ((FIT_YDS_GRADING_SCALE)37) // 5.15c +#define FIT_YDS_GRADING_SCALE_5_15D ((FIT_YDS_GRADING_SCALE)38) // 5.15d +#define FIT_YDS_GRADING_SCALE_5_1_MINUS ((FIT_YDS_GRADING_SCALE)39) // 5.1- +#define FIT_YDS_GRADING_SCALE_5_1_PLUS ((FIT_YDS_GRADING_SCALE)40) // 5.1+ +#define FIT_YDS_GRADING_SCALE_5_2_MINUS ((FIT_YDS_GRADING_SCALE)41) // 5.2- +#define FIT_YDS_GRADING_SCALE_5_2_PLUS ((FIT_YDS_GRADING_SCALE)42) // 5.2+ +#define FIT_YDS_GRADING_SCALE_5_3_MINUS ((FIT_YDS_GRADING_SCALE)43) // 5.3- +#define FIT_YDS_GRADING_SCALE_5_3_PLUS ((FIT_YDS_GRADING_SCALE)44) // 5.3+ +#define FIT_YDS_GRADING_SCALE_5_4_MINUS ((FIT_YDS_GRADING_SCALE)45) // 5.4- +#define FIT_YDS_GRADING_SCALE_5_4_PLUS ((FIT_YDS_GRADING_SCALE)46) // 5.4+ +#define FIT_YDS_GRADING_SCALE_5_5_MINUS ((FIT_YDS_GRADING_SCALE)47) // 5.5- +#define FIT_YDS_GRADING_SCALE_5_5_PLUS ((FIT_YDS_GRADING_SCALE)48) // 5.5+ +#define FIT_YDS_GRADING_SCALE_5_6_MINUS ((FIT_YDS_GRADING_SCALE)49) // 5.6- +#define FIT_YDS_GRADING_SCALE_5_6_PLUS ((FIT_YDS_GRADING_SCALE)50) // 5.6+ +#define FIT_YDS_GRADING_SCALE_5_7_MINUS ((FIT_YDS_GRADING_SCALE)51) // 5.7- +#define FIT_YDS_GRADING_SCALE_5_7_PLUS ((FIT_YDS_GRADING_SCALE)52) // 5.7+ +#define FIT_YDS_GRADING_SCALE_5_8_MINUS ((FIT_YDS_GRADING_SCALE)53) // 5.8- +#define FIT_YDS_GRADING_SCALE_5_8_PLUS ((FIT_YDS_GRADING_SCALE)54) // 5.8+ +#define FIT_YDS_GRADING_SCALE_5_9_MINUS ((FIT_YDS_GRADING_SCALE)55) // 5.9- +#define FIT_YDS_GRADING_SCALE_5_9_PLUS ((FIT_YDS_GRADING_SCALE)56) // 5.9+ +#define FIT_YDS_GRADING_SCALE_5_10_MINUS ((FIT_YDS_GRADING_SCALE)57) // 5.10- +#define FIT_YDS_GRADING_SCALE_5_10_PLUS ((FIT_YDS_GRADING_SCALE)58) // 5.10+ +#define FIT_YDS_GRADING_SCALE_5_11_MINUS ((FIT_YDS_GRADING_SCALE)59) // 5.11- +#define FIT_YDS_GRADING_SCALE_5_11_PLUS ((FIT_YDS_GRADING_SCALE)60) // 5.11+ +#define FIT_YDS_GRADING_SCALE_5_12_MINUS ((FIT_YDS_GRADING_SCALE)61) // 5.12- +#define FIT_YDS_GRADING_SCALE_5_12_PLUS ((FIT_YDS_GRADING_SCALE)62) // 5.12+ +#define FIT_YDS_GRADING_SCALE_5_13_MINUS ((FIT_YDS_GRADING_SCALE)63) // 5.13- +#define FIT_YDS_GRADING_SCALE_5_13_PLUS ((FIT_YDS_GRADING_SCALE)64) // 5.13+ +#define FIT_YDS_GRADING_SCALE_5_14_MINUS ((FIT_YDS_GRADING_SCALE)65) // 5.14- +#define FIT_YDS_GRADING_SCALE_5_14_PLUS ((FIT_YDS_GRADING_SCALE)66) // 5.14+ +#define FIT_YDS_GRADING_SCALE_5_15_MINUS ((FIT_YDS_GRADING_SCALE)67) // 5.15- +#define FIT_YDS_GRADING_SCALE_5_15_PLUS ((FIT_YDS_GRADING_SCALE)68) // 5.15+ +#define FIT_YDS_GRADING_SCALE_COUNT 69 + +typedef FIT_ENUM FIT_UIAA_GRADING_SCALE; +#define FIT_UIAA_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_UIAA_GRADING_SCALE_I ((FIT_UIAA_GRADING_SCALE)0) // I +#define FIT_UIAA_GRADING_SCALE_II ((FIT_UIAA_GRADING_SCALE)1) // II +#define FIT_UIAA_GRADING_SCALE_III ((FIT_UIAA_GRADING_SCALE)2) // III +#define FIT_UIAA_GRADING_SCALE_IV_MINUS ((FIT_UIAA_GRADING_SCALE)3) // IV- +#define FIT_UIAA_GRADING_SCALE_IV ((FIT_UIAA_GRADING_SCALE)4) // IV +#define FIT_UIAA_GRADING_SCALE_IV_PLUS ((FIT_UIAA_GRADING_SCALE)5) // IV+ +#define FIT_UIAA_GRADING_SCALE_V_MINUS ((FIT_UIAA_GRADING_SCALE)6) // V- +#define FIT_UIAA_GRADING_SCALE_V ((FIT_UIAA_GRADING_SCALE)7) // V +#define FIT_UIAA_GRADING_SCALE_V_PLUS ((FIT_UIAA_GRADING_SCALE)8) // V+ +#define FIT_UIAA_GRADING_SCALE_VI_MINUS ((FIT_UIAA_GRADING_SCALE)9) // VI- +#define FIT_UIAA_GRADING_SCALE_VI ((FIT_UIAA_GRADING_SCALE)10) // VI +#define FIT_UIAA_GRADING_SCALE_VI_PLUS ((FIT_UIAA_GRADING_SCALE)11) // VI+ +#define FIT_UIAA_GRADING_SCALE_VII_MINUS ((FIT_UIAA_GRADING_SCALE)12) // VII- +#define FIT_UIAA_GRADING_SCALE_VII ((FIT_UIAA_GRADING_SCALE)13) // VII +#define FIT_UIAA_GRADING_SCALE_VII_PLUS ((FIT_UIAA_GRADING_SCALE)14) // VII+ +#define FIT_UIAA_GRADING_SCALE_VIII_MINUS ((FIT_UIAA_GRADING_SCALE)15) // VIII- +#define FIT_UIAA_GRADING_SCALE_VIII ((FIT_UIAA_GRADING_SCALE)16) // VIII +#define FIT_UIAA_GRADING_SCALE_VIII_PLUS ((FIT_UIAA_GRADING_SCALE)17) // VIII+ +#define FIT_UIAA_GRADING_SCALE_IX_MINUS ((FIT_UIAA_GRADING_SCALE)18) // IX- +#define FIT_UIAA_GRADING_SCALE_IX ((FIT_UIAA_GRADING_SCALE)19) // IX +#define FIT_UIAA_GRADING_SCALE_IX_PLUS ((FIT_UIAA_GRADING_SCALE)20) // IX+ +#define FIT_UIAA_GRADING_SCALE_X_MINUS ((FIT_UIAA_GRADING_SCALE)21) // X- +#define FIT_UIAA_GRADING_SCALE_X ((FIT_UIAA_GRADING_SCALE)22) // X +#define FIT_UIAA_GRADING_SCALE_X_PLUS ((FIT_UIAA_GRADING_SCALE)23) // X+ +#define FIT_UIAA_GRADING_SCALE_XI_MINUS ((FIT_UIAA_GRADING_SCALE)24) // XI- +#define FIT_UIAA_GRADING_SCALE_XI ((FIT_UIAA_GRADING_SCALE)25) // XI +#define FIT_UIAA_GRADING_SCALE_XI_PLUS ((FIT_UIAA_GRADING_SCALE)26) // XI+ +#define FIT_UIAA_GRADING_SCALE_XII_MINUS ((FIT_UIAA_GRADING_SCALE)27) // XII- +#define FIT_UIAA_GRADING_SCALE_COUNT 28 + +typedef FIT_ENUM FIT_FRENCH_GRADING_SCALE; +#define FIT_FRENCH_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_FRENCH_GRADING_SCALE_1 ((FIT_FRENCH_GRADING_SCALE)0) // 1 +#define FIT_FRENCH_GRADING_SCALE_2 ((FIT_FRENCH_GRADING_SCALE)1) // 2 +#define FIT_FRENCH_GRADING_SCALE_3 ((FIT_FRENCH_GRADING_SCALE)2) // 3 +#define FIT_FRENCH_GRADING_SCALE_4A ((FIT_FRENCH_GRADING_SCALE)3) // 4a +#define FIT_FRENCH_GRADING_SCALE_4B ((FIT_FRENCH_GRADING_SCALE)4) // 4b +#define FIT_FRENCH_GRADING_SCALE_4C ((FIT_FRENCH_GRADING_SCALE)5) // 4c +#define FIT_FRENCH_GRADING_SCALE_5A ((FIT_FRENCH_GRADING_SCALE)6) // 5a +#define FIT_FRENCH_GRADING_SCALE_5B ((FIT_FRENCH_GRADING_SCALE)7) // 5b +#define FIT_FRENCH_GRADING_SCALE_5C ((FIT_FRENCH_GRADING_SCALE)8) // 5c +#define FIT_FRENCH_GRADING_SCALE_6A ((FIT_FRENCH_GRADING_SCALE)9) // 6a +#define FIT_FRENCH_GRADING_SCALE_6A_PLUS ((FIT_FRENCH_GRADING_SCALE)10) // 6a+ +#define FIT_FRENCH_GRADING_SCALE_6B ((FIT_FRENCH_GRADING_SCALE)11) // 6b +#define FIT_FRENCH_GRADING_SCALE_6B_PLUS ((FIT_FRENCH_GRADING_SCALE)12) // 6b+ +#define FIT_FRENCH_GRADING_SCALE_6C ((FIT_FRENCH_GRADING_SCALE)13) // 6c +#define FIT_FRENCH_GRADING_SCALE_6C_PLUS ((FIT_FRENCH_GRADING_SCALE)14) // 6c+ +#define FIT_FRENCH_GRADING_SCALE_7A ((FIT_FRENCH_GRADING_SCALE)15) // 7a +#define FIT_FRENCH_GRADING_SCALE_7A_PLUS ((FIT_FRENCH_GRADING_SCALE)16) // 7a+ +#define FIT_FRENCH_GRADING_SCALE_7B ((FIT_FRENCH_GRADING_SCALE)17) // 7b +#define FIT_FRENCH_GRADING_SCALE_7B_PLUS ((FIT_FRENCH_GRADING_SCALE)18) // 7b+ +#define FIT_FRENCH_GRADING_SCALE_7C ((FIT_FRENCH_GRADING_SCALE)19) // 7c +#define FIT_FRENCH_GRADING_SCALE_7C_PLUS ((FIT_FRENCH_GRADING_SCALE)20) // 7c+ +#define FIT_FRENCH_GRADING_SCALE_8A ((FIT_FRENCH_GRADING_SCALE)21) // 8a +#define FIT_FRENCH_GRADING_SCALE_8A_PLUS ((FIT_FRENCH_GRADING_SCALE)22) // 8a+ +#define FIT_FRENCH_GRADING_SCALE_8B ((FIT_FRENCH_GRADING_SCALE)23) // 8b +#define FIT_FRENCH_GRADING_SCALE_8B_PLUS ((FIT_FRENCH_GRADING_SCALE)24) // 8b+ +#define FIT_FRENCH_GRADING_SCALE_8C ((FIT_FRENCH_GRADING_SCALE)25) // 8c +#define FIT_FRENCH_GRADING_SCALE_8C_PLUS ((FIT_FRENCH_GRADING_SCALE)26) // 8c+ +#define FIT_FRENCH_GRADING_SCALE_9A ((FIT_FRENCH_GRADING_SCALE)27) // 9a +#define FIT_FRENCH_GRADING_SCALE_9A_PLUS ((FIT_FRENCH_GRADING_SCALE)28) // 9a+ +#define FIT_FRENCH_GRADING_SCALE_9B ((FIT_FRENCH_GRADING_SCALE)29) // 9b +#define FIT_FRENCH_GRADING_SCALE_COUNT 30 + +typedef FIT_ENUM FIT_BRITISH_ADJECTIVAL_GRADING_SCALE; +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_M ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)0) // M +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_D ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)1) // D +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_HD ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)2) // HD +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_VD ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)3) // VD +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_MS ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)4) // MS +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_S ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)5) // S +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_HS ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)6) // HS +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_MVS ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)7) // MVS +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_VS ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)8) // VS +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_HVS ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)9) // HVS +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E1 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)10) // E1 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E2 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)11) // E2 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E3 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)12) // E3 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E4 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)13) // E4 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E5 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)14) // E5 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E6 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)15) // E6 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E7 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)16) // E7 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E8 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)17) // E8 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E9 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)18) // E9 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E10 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)19) // E10 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_E11 ((FIT_BRITISH_ADJECTIVAL_GRADING_SCALE)20) // E11 +#define FIT_BRITISH_ADJECTIVAL_GRADING_SCALE_COUNT 21 + +typedef FIT_ENUM FIT_BRITISH_TECHNICAL_GRADING_SCALE; +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_1 ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)0) // 1 +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_2 ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)1) // 2 +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_3 ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)2) // 3 +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_4A ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)3) // 4a +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_4B ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)4) // 4b +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_4C ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)5) // 4c +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_5A ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)6) // 5a +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_5B ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)7) // 5b +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_5C ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)8) // 5c +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_6A ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)9) // 6a +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_6B ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)10) // 6b +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_6C ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)11) // 6c +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_7A ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)12) // 7a +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_7B ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)13) // 7b +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_7C ((FIT_BRITISH_TECHNICAL_GRADING_SCALE)14) // 7c +#define FIT_BRITISH_TECHNICAL_GRADING_SCALE_COUNT 15 + +typedef FIT_ENUM FIT_EWBANK_GRADING_SCALE; +#define FIT_EWBANK_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_EWBANK_GRADING_SCALE_4 ((FIT_EWBANK_GRADING_SCALE)0) // 4 +#define FIT_EWBANK_GRADING_SCALE_5 ((FIT_EWBANK_GRADING_SCALE)1) // 5 +#define FIT_EWBANK_GRADING_SCALE_6 ((FIT_EWBANK_GRADING_SCALE)2) // 6 +#define FIT_EWBANK_GRADING_SCALE_7 ((FIT_EWBANK_GRADING_SCALE)3) // 7 +#define FIT_EWBANK_GRADING_SCALE_8 ((FIT_EWBANK_GRADING_SCALE)4) // 8 +#define FIT_EWBANK_GRADING_SCALE_9 ((FIT_EWBANK_GRADING_SCALE)5) // 9 +#define FIT_EWBANK_GRADING_SCALE_10 ((FIT_EWBANK_GRADING_SCALE)6) // 10 +#define FIT_EWBANK_GRADING_SCALE_11 ((FIT_EWBANK_GRADING_SCALE)7) // 11 +#define FIT_EWBANK_GRADING_SCALE_12 ((FIT_EWBANK_GRADING_SCALE)8) // 12 +#define FIT_EWBANK_GRADING_SCALE_13 ((FIT_EWBANK_GRADING_SCALE)9) // 13 +#define FIT_EWBANK_GRADING_SCALE_14 ((FIT_EWBANK_GRADING_SCALE)10) // 14 +#define FIT_EWBANK_GRADING_SCALE_15 ((FIT_EWBANK_GRADING_SCALE)11) // 15 +#define FIT_EWBANK_GRADING_SCALE_16 ((FIT_EWBANK_GRADING_SCALE)12) // 16 +#define FIT_EWBANK_GRADING_SCALE_17 ((FIT_EWBANK_GRADING_SCALE)13) // 17 +#define FIT_EWBANK_GRADING_SCALE_18 ((FIT_EWBANK_GRADING_SCALE)14) // 18 +#define FIT_EWBANK_GRADING_SCALE_19 ((FIT_EWBANK_GRADING_SCALE)15) // 19 +#define FIT_EWBANK_GRADING_SCALE_20 ((FIT_EWBANK_GRADING_SCALE)16) // 20 +#define FIT_EWBANK_GRADING_SCALE_21 ((FIT_EWBANK_GRADING_SCALE)17) // 21 +#define FIT_EWBANK_GRADING_SCALE_22 ((FIT_EWBANK_GRADING_SCALE)18) // 22 +#define FIT_EWBANK_GRADING_SCALE_23 ((FIT_EWBANK_GRADING_SCALE)19) // 23 +#define FIT_EWBANK_GRADING_SCALE_24 ((FIT_EWBANK_GRADING_SCALE)20) // 24 +#define FIT_EWBANK_GRADING_SCALE_25 ((FIT_EWBANK_GRADING_SCALE)21) // 25 +#define FIT_EWBANK_GRADING_SCALE_26 ((FIT_EWBANK_GRADING_SCALE)22) // 26 +#define FIT_EWBANK_GRADING_SCALE_27 ((FIT_EWBANK_GRADING_SCALE)23) // 27 +#define FIT_EWBANK_GRADING_SCALE_28 ((FIT_EWBANK_GRADING_SCALE)24) // 28 +#define FIT_EWBANK_GRADING_SCALE_29 ((FIT_EWBANK_GRADING_SCALE)25) // 29 +#define FIT_EWBANK_GRADING_SCALE_30 ((FIT_EWBANK_GRADING_SCALE)26) // 30 +#define FIT_EWBANK_GRADING_SCALE_31 ((FIT_EWBANK_GRADING_SCALE)27) // 31 +#define FIT_EWBANK_GRADING_SCALE_32 ((FIT_EWBANK_GRADING_SCALE)28) // 32 +#define FIT_EWBANK_GRADING_SCALE_33 ((FIT_EWBANK_GRADING_SCALE)29) // 33 +#define FIT_EWBANK_GRADING_SCALE_34 ((FIT_EWBANK_GRADING_SCALE)30) // 34 +#define FIT_EWBANK_GRADING_SCALE_35 ((FIT_EWBANK_GRADING_SCALE)31) // 35 +#define FIT_EWBANK_GRADING_SCALE_36 ((FIT_EWBANK_GRADING_SCALE)32) // 36 +#define FIT_EWBANK_GRADING_SCALE_37 ((FIT_EWBANK_GRADING_SCALE)33) // 37 +#define FIT_EWBANK_GRADING_SCALE_38 ((FIT_EWBANK_GRADING_SCALE)34) // 38 +#define FIT_EWBANK_GRADING_SCALE_COUNT 35 + +typedef FIT_ENUM FIT_BRAZILIAN_GRADING_SCALE; +#define FIT_BRAZILIAN_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_BRAZILIAN_GRADING_SCALE_2 ((FIT_BRAZILIAN_GRADING_SCALE)0) // 2 +#define FIT_BRAZILIAN_GRADING_SCALE_3 ((FIT_BRAZILIAN_GRADING_SCALE)1) // 3 +#define FIT_BRAZILIAN_GRADING_SCALE_3C ((FIT_BRAZILIAN_GRADING_SCALE)2) // 3c +#define FIT_BRAZILIAN_GRADING_SCALE_4 ((FIT_BRAZILIAN_GRADING_SCALE)3) // 4 +#define FIT_BRAZILIAN_GRADING_SCALE_5A ((FIT_BRAZILIAN_GRADING_SCALE)4) // 5a +#define FIT_BRAZILIAN_GRADING_SCALE_5B ((FIT_BRAZILIAN_GRADING_SCALE)5) // 5b +#define FIT_BRAZILIAN_GRADING_SCALE_5C ((FIT_BRAZILIAN_GRADING_SCALE)6) // 5c +#define FIT_BRAZILIAN_GRADING_SCALE_6A ((FIT_BRAZILIAN_GRADING_SCALE)7) // 6a +#define FIT_BRAZILIAN_GRADING_SCALE_6B ((FIT_BRAZILIAN_GRADING_SCALE)8) // 6b +#define FIT_BRAZILIAN_GRADING_SCALE_6C ((FIT_BRAZILIAN_GRADING_SCALE)9) // 6c +#define FIT_BRAZILIAN_GRADING_SCALE_7A ((FIT_BRAZILIAN_GRADING_SCALE)10) // 7a +#define FIT_BRAZILIAN_GRADING_SCALE_7B ((FIT_BRAZILIAN_GRADING_SCALE)11) // 7b +#define FIT_BRAZILIAN_GRADING_SCALE_7C ((FIT_BRAZILIAN_GRADING_SCALE)12) // 7c +#define FIT_BRAZILIAN_GRADING_SCALE_8A ((FIT_BRAZILIAN_GRADING_SCALE)13) // 8a +#define FIT_BRAZILIAN_GRADING_SCALE_8B ((FIT_BRAZILIAN_GRADING_SCALE)14) // 8b +#define FIT_BRAZILIAN_GRADING_SCALE_8C ((FIT_BRAZILIAN_GRADING_SCALE)15) // 8c +#define FIT_BRAZILIAN_GRADING_SCALE_9A ((FIT_BRAZILIAN_GRADING_SCALE)16) // 9a +#define FIT_BRAZILIAN_GRADING_SCALE_9B ((FIT_BRAZILIAN_GRADING_SCALE)17) // 9b +#define FIT_BRAZILIAN_GRADING_SCALE_9C ((FIT_BRAZILIAN_GRADING_SCALE)18) // 9c +#define FIT_BRAZILIAN_GRADING_SCALE_10A ((FIT_BRAZILIAN_GRADING_SCALE)19) // 10a +#define FIT_BRAZILIAN_GRADING_SCALE_10B ((FIT_BRAZILIAN_GRADING_SCALE)20) // 10b +#define FIT_BRAZILIAN_GRADING_SCALE_10C ((FIT_BRAZILIAN_GRADING_SCALE)21) // 10c +#define FIT_BRAZILIAN_GRADING_SCALE_11A ((FIT_BRAZILIAN_GRADING_SCALE)22) // 11a +#define FIT_BRAZILIAN_GRADING_SCALE_11B ((FIT_BRAZILIAN_GRADING_SCALE)23) // 11b +#define FIT_BRAZILIAN_GRADING_SCALE_11C ((FIT_BRAZILIAN_GRADING_SCALE)24) // 11c +#define FIT_BRAZILIAN_GRADING_SCALE_12A ((FIT_BRAZILIAN_GRADING_SCALE)25) // 12a +#define FIT_BRAZILIAN_GRADING_SCALE_12B ((FIT_BRAZILIAN_GRADING_SCALE)26) // 12b +#define FIT_BRAZILIAN_GRADING_SCALE_COUNT 27 + +typedef FIT_ENUM FIT_SAXON_GRADING_SCALE; +#define FIT_SAXON_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_SAXON_GRADING_SCALE_I ((FIT_SAXON_GRADING_SCALE)0) // I +#define FIT_SAXON_GRADING_SCALE_II ((FIT_SAXON_GRADING_SCALE)1) // II +#define FIT_SAXON_GRADING_SCALE_III ((FIT_SAXON_GRADING_SCALE)2) // III +#define FIT_SAXON_GRADING_SCALE_IV ((FIT_SAXON_GRADING_SCALE)3) // IV +#define FIT_SAXON_GRADING_SCALE_V ((FIT_SAXON_GRADING_SCALE)4) // V +#define FIT_SAXON_GRADING_SCALE_VI ((FIT_SAXON_GRADING_SCALE)5) // VI +#define FIT_SAXON_GRADING_SCALE_VII_A ((FIT_SAXON_GRADING_SCALE)6) // VIIa +#define FIT_SAXON_GRADING_SCALE_VII_B ((FIT_SAXON_GRADING_SCALE)7) // VIIb +#define FIT_SAXON_GRADING_SCALE_VII_C ((FIT_SAXON_GRADING_SCALE)8) // VIIc +#define FIT_SAXON_GRADING_SCALE_VIII_A ((FIT_SAXON_GRADING_SCALE)9) // VIIIa +#define FIT_SAXON_GRADING_SCALE_VIII_B ((FIT_SAXON_GRADING_SCALE)10) // VIIIb +#define FIT_SAXON_GRADING_SCALE_VIII_C ((FIT_SAXON_GRADING_SCALE)11) // VIIIc +#define FIT_SAXON_GRADING_SCALE_IX_A ((FIT_SAXON_GRADING_SCALE)12) // IXa +#define FIT_SAXON_GRADING_SCALE_IX_B ((FIT_SAXON_GRADING_SCALE)13) // IXb +#define FIT_SAXON_GRADING_SCALE_IX_C ((FIT_SAXON_GRADING_SCALE)14) // IXc +#define FIT_SAXON_GRADING_SCALE_X_A ((FIT_SAXON_GRADING_SCALE)15) // Xa +#define FIT_SAXON_GRADING_SCALE_X_B ((FIT_SAXON_GRADING_SCALE)16) // Xb +#define FIT_SAXON_GRADING_SCALE_X_C ((FIT_SAXON_GRADING_SCALE)17) // Xc +#define FIT_SAXON_GRADING_SCALE_XI_A ((FIT_SAXON_GRADING_SCALE)18) // XIa +#define FIT_SAXON_GRADING_SCALE_XI_B ((FIT_SAXON_GRADING_SCALE)19) // XIb +#define FIT_SAXON_GRADING_SCALE_XI_C ((FIT_SAXON_GRADING_SCALE)20) // XIc +#define FIT_SAXON_GRADING_SCALE_XII_A ((FIT_SAXON_GRADING_SCALE)21) // XIIa +#define FIT_SAXON_GRADING_SCALE_XII_B ((FIT_SAXON_GRADING_SCALE)22) // XIIb +#define FIT_SAXON_GRADING_SCALE_XII_C ((FIT_SAXON_GRADING_SCALE)23) // XIIc +#define FIT_SAXON_GRADING_SCALE_COUNT 24 + +typedef FIT_ENUM FIT_VERMIN_GRADING_SCALE; +#define FIT_VERMIN_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_VERMIN_GRADING_SCALE_VB ((FIT_VERMIN_GRADING_SCALE)0) // VB +#define FIT_VERMIN_GRADING_SCALE_V0 ((FIT_VERMIN_GRADING_SCALE)1) // V0 +#define FIT_VERMIN_GRADING_SCALE_V1 ((FIT_VERMIN_GRADING_SCALE)2) // V1 +#define FIT_VERMIN_GRADING_SCALE_V2 ((FIT_VERMIN_GRADING_SCALE)3) // V2 +#define FIT_VERMIN_GRADING_SCALE_V3 ((FIT_VERMIN_GRADING_SCALE)4) // V3 +#define FIT_VERMIN_GRADING_SCALE_V4 ((FIT_VERMIN_GRADING_SCALE)5) // V4 +#define FIT_VERMIN_GRADING_SCALE_V5 ((FIT_VERMIN_GRADING_SCALE)6) // V5 +#define FIT_VERMIN_GRADING_SCALE_V6 ((FIT_VERMIN_GRADING_SCALE)7) // V6 +#define FIT_VERMIN_GRADING_SCALE_V7 ((FIT_VERMIN_GRADING_SCALE)8) // V7 +#define FIT_VERMIN_GRADING_SCALE_V8 ((FIT_VERMIN_GRADING_SCALE)9) // V8 +#define FIT_VERMIN_GRADING_SCALE_V9 ((FIT_VERMIN_GRADING_SCALE)10) // V9 +#define FIT_VERMIN_GRADING_SCALE_V10 ((FIT_VERMIN_GRADING_SCALE)11) // V10 +#define FIT_VERMIN_GRADING_SCALE_V11 ((FIT_VERMIN_GRADING_SCALE)12) // V11 +#define FIT_VERMIN_GRADING_SCALE_V12 ((FIT_VERMIN_GRADING_SCALE)13) // V12 +#define FIT_VERMIN_GRADING_SCALE_V13 ((FIT_VERMIN_GRADING_SCALE)14) // V13 +#define FIT_VERMIN_GRADING_SCALE_V14 ((FIT_VERMIN_GRADING_SCALE)15) // V14 +#define FIT_VERMIN_GRADING_SCALE_V15 ((FIT_VERMIN_GRADING_SCALE)16) // V15 +#define FIT_VERMIN_GRADING_SCALE_V16 ((FIT_VERMIN_GRADING_SCALE)17) // V16 +#define FIT_VERMIN_GRADING_SCALE_V17 ((FIT_VERMIN_GRADING_SCALE)18) // V17 +#define FIT_VERMIN_GRADING_SCALE_COUNT 19 + +typedef FIT_ENUM FIT_FONT_GRADING_SCALE; +#define FIT_FONT_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_FONT_GRADING_SCALE_1 ((FIT_FONT_GRADING_SCALE)0) // 1 +#define FIT_FONT_GRADING_SCALE_2 ((FIT_FONT_GRADING_SCALE)1) // 2 +#define FIT_FONT_GRADING_SCALE_3 ((FIT_FONT_GRADING_SCALE)2) // 3 +#define FIT_FONT_GRADING_SCALE_4 ((FIT_FONT_GRADING_SCALE)3) // 4 +#define FIT_FONT_GRADING_SCALE_4_PLUS ((FIT_FONT_GRADING_SCALE)4) // 4+ +#define FIT_FONT_GRADING_SCALE_5 ((FIT_FONT_GRADING_SCALE)5) // 5 +#define FIT_FONT_GRADING_SCALE_5_PLUS ((FIT_FONT_GRADING_SCALE)6) // 5+ +#define FIT_FONT_GRADING_SCALE_6A ((FIT_FONT_GRADING_SCALE)7) // 6A +#define FIT_FONT_GRADING_SCALE_6A_PLUS ((FIT_FONT_GRADING_SCALE)8) // 6A+ +#define FIT_FONT_GRADING_SCALE_6B ((FIT_FONT_GRADING_SCALE)9) // 6B +#define FIT_FONT_GRADING_SCALE_6B_PLUS ((FIT_FONT_GRADING_SCALE)10) // 6B+ +#define FIT_FONT_GRADING_SCALE_6C ((FIT_FONT_GRADING_SCALE)11) // 6C +#define FIT_FONT_GRADING_SCALE_6C_PLUS ((FIT_FONT_GRADING_SCALE)12) // 6C+ +#define FIT_FONT_GRADING_SCALE_7A ((FIT_FONT_GRADING_SCALE)13) // 7A +#define FIT_FONT_GRADING_SCALE_7A_PLUS ((FIT_FONT_GRADING_SCALE)14) // 7A+ +#define FIT_FONT_GRADING_SCALE_7B ((FIT_FONT_GRADING_SCALE)15) // 7B +#define FIT_FONT_GRADING_SCALE_7B_PLUS ((FIT_FONT_GRADING_SCALE)16) // 7B+ +#define FIT_FONT_GRADING_SCALE_7C ((FIT_FONT_GRADING_SCALE)17) // 7C +#define FIT_FONT_GRADING_SCALE_7C_PLUS ((FIT_FONT_GRADING_SCALE)18) // 7C+ +#define FIT_FONT_GRADING_SCALE_8A ((FIT_FONT_GRADING_SCALE)19) // 8A +#define FIT_FONT_GRADING_SCALE_8A_PLUS ((FIT_FONT_GRADING_SCALE)20) // 8A+ +#define FIT_FONT_GRADING_SCALE_8B ((FIT_FONT_GRADING_SCALE)21) // 8B +#define FIT_FONT_GRADING_SCALE_8B_PLUS ((FIT_FONT_GRADING_SCALE)22) // 8B+ +#define FIT_FONT_GRADING_SCALE_8C ((FIT_FONT_GRADING_SCALE)23) // 8C +#define FIT_FONT_GRADING_SCALE_8C_PLUS ((FIT_FONT_GRADING_SCALE)24) // 8C+ +#define FIT_FONT_GRADING_SCALE_9A ((FIT_FONT_GRADING_SCALE)25) // 9A +#define FIT_FONT_GRADING_SCALE_COUNT 26 + +typedef FIT_ENUM FIT_DANKYU_GRADING_SCALE; +#define FIT_DANKYU_GRADING_SCALE_INVALID FIT_ENUM_INVALID +#define FIT_DANKYU_GRADING_SCALE_7_KYUU ((FIT_DANKYU_GRADING_SCALE)0) // 7 kyuu +#define FIT_DANKYU_GRADING_SCALE_6_KYUU ((FIT_DANKYU_GRADING_SCALE)1) // 6 kyuu +#define FIT_DANKYU_GRADING_SCALE_5_KYUU ((FIT_DANKYU_GRADING_SCALE)2) // 5 kyuu +#define FIT_DANKYU_GRADING_SCALE_4_KYUU ((FIT_DANKYU_GRADING_SCALE)3) // 4 kyuu +#define FIT_DANKYU_GRADING_SCALE_3_KYUU ((FIT_DANKYU_GRADING_SCALE)4) // 3 kyuu +#define FIT_DANKYU_GRADING_SCALE_2_KYUU ((FIT_DANKYU_GRADING_SCALE)5) // 2 kyuu +#define FIT_DANKYU_GRADING_SCALE_1_KYUU ((FIT_DANKYU_GRADING_SCALE)6) // 1 kyuu +#define FIT_DANKYU_GRADING_SCALE_1_DAN ((FIT_DANKYU_GRADING_SCALE)7) // 1 dan +#define FIT_DANKYU_GRADING_SCALE_2_DAN ((FIT_DANKYU_GRADING_SCALE)8) // 2 dan +#define FIT_DANKYU_GRADING_SCALE_3_DAN ((FIT_DANKYU_GRADING_SCALE)9) // 3 dan +#define FIT_DANKYU_GRADING_SCALE_4_DAN ((FIT_DANKYU_GRADING_SCALE)10) // 4 dan +#define FIT_DANKYU_GRADING_SCALE_5_DAN ((FIT_DANKYU_GRADING_SCALE)11) // 5 dan +#define FIT_DANKYU_GRADING_SCALE_COUNT 12 + +typedef FIT_ENUM FIT_SPLIT_STATUS; // Use with indoor climbing activities only +#define FIT_SPLIT_STATUS_INVALID FIT_ENUM_INVALID +#define FIT_SPLIT_STATUS_FAILURE ((FIT_SPLIT_STATUS)0) +#define FIT_SPLIT_STATUS_SUCCESS ((FIT_SPLIT_STATUS)1) +#define FIT_SPLIT_STATUS_CLIMB_ATTEMPTED ((FIT_SPLIT_STATUS)2) +#define FIT_SPLIT_STATUS_CLIMB_COMPLETED ((FIT_SPLIT_STATUS)3) +#define FIT_SPLIT_STATUS_COUNT 4 + typedef FIT_ENUM FIT_TAP_SENSITIVITY; #define FIT_TAP_SENSITIVITY_INVALID FIT_ENUM_INVALID #define FIT_TAP_SENSITIVITY_HIGH ((FIT_TAP_SENSITIVITY)0) @@ -5254,6 +5631,28 @@ typedef FIT_ENUM FIT_NO_FLY_TIME_MODE; #define FIT_NO_FLY_TIME_MODE_FLAT_24_HOURS ((FIT_NO_FLY_TIME_MODE)1) // Flat 24 hour no-fly guidance #define FIT_NO_FLY_TIME_MODE_COUNT 2 +typedef FIT_ENUM FIT_DIVE_SECTION_TYPE; +#define FIT_DIVE_SECTION_TYPE_INVALID FIT_ENUM_INVALID +#define FIT_DIVE_SECTION_TYPE_ASCENT ((FIT_DIVE_SECTION_TYPE)0) +#define FIT_DIVE_SECTION_TYPE_DESCENT ((FIT_DIVE_SECTION_TYPE)1) +#define FIT_DIVE_SECTION_TYPE_HANG ((FIT_DIVE_SECTION_TYPE)2) +#define FIT_DIVE_SECTION_TYPE_COUNT 3 + +typedef FIT_ENUM FIT_APNEA_DISCIPLINE; +#define FIT_APNEA_DISCIPLINE_INVALID FIT_ENUM_INVALID +#define FIT_APNEA_DISCIPLINE_CONSTANT_WEIGHT_WITH_FINS ((FIT_APNEA_DISCIPLINE)0) +#define FIT_APNEA_DISCIPLINE_CONSTANT_WEIGHT_WITH_BIFINS ((FIT_APNEA_DISCIPLINE)1) +#define FIT_APNEA_DISCIPLINE_CONSTANT_WEIGHT_WITHOUT_FINS ((FIT_APNEA_DISCIPLINE)2) +#define FIT_APNEA_DISCIPLINE_DYNAMIC_WITH_FINS ((FIT_APNEA_DISCIPLINE)3) +#define FIT_APNEA_DISCIPLINE_DYNAMIC_WITH_BIFINS ((FIT_APNEA_DISCIPLINE)4) +#define FIT_APNEA_DISCIPLINE_DYNAMIC_WITHOUT_FINS ((FIT_APNEA_DISCIPLINE)5) +#define FIT_APNEA_DISCIPLINE_FREE_IMMERSION ((FIT_APNEA_DISCIPLINE)6) +#define FIT_APNEA_DISCIPLINE_NO_LIMIT ((FIT_APNEA_DISCIPLINE)7) +#define FIT_APNEA_DISCIPLINE_SPEED_ENDURANCE_APNEA ((FIT_APNEA_DISCIPLINE)8) +#define FIT_APNEA_DISCIPLINE_STATIC_APNEA ((FIT_APNEA_DISCIPLINE)9) +#define FIT_APNEA_DISCIPLINE_VARIABLE_WEIGHT ((FIT_APNEA_DISCIPLINE)10) +#define FIT_APNEA_DISCIPLINE_COUNT 11 + #endif // !defined(FIT_CPP_INCLUDE_C) @@ -5482,6 +5881,19 @@ class Profile SplitType, ClimbProEvent, GasConsumptionRateType, + ClimbGradingScale, + YdsGradingScale, + UiaaGradingScale, + FrenchGradingScale, + BritishAdjectivalGradingScale, + BritishTechnicalGradingScale, + EwbankGradingScale, + BrazilianGradingScale, + SaxonGradingScale, + VerminGradingScale, + FontGradingScale, + DankyuGradingScale, + SplitStatus, TapSensitivity, RadarThreatLevelType, SleepDisruptionSeverity, @@ -5491,6 +5903,8 @@ class Profile MaxMetHeartRateSource, HrvStatus, NoFlyTimeMode, + DiveSectionType, + ApneaDiscipline, Invalid }; @@ -5536,6 +5950,7 @@ class Profile MESG_DEVICE_INFO, MESG_DEVICE_AUX_BATTERY_INFO, MESG_TRAINING_FILE, + MESG_BATTERY, MESG_WEATHER_CONDITIONS, MESG_WEATHER_ALERT, MESG_GPS_METADATA, @@ -6193,6 +6608,8 @@ class Profile SESSION_MESG_BEST_LAP_INDEX, SESSION_MESG_MIN_ALTITUDE, SESSION_MESG_ACTIVE_TIME, + SESSION_MESG_AVG_STROKES_PER_LENGTH, + SESSION_MESG_AVG_SWOLF, SESSION_MESG_PLAYER_SCORE, SESSION_MESG_OPPONENT_SCORE, SESSION_MESG_OPPONENT_NAME, @@ -6217,6 +6634,9 @@ class Profile SESSION_MESG_AVG_LEFT_PEDAL_SMOOTHNESS, SESSION_MESG_AVG_RIGHT_PEDAL_SMOOTHNESS, SESSION_MESG_AVG_COMBINED_PEDAL_SMOOTHNESS, + SESSION_MESG_NUM_SEGMENT_LAPS, + SESSION_MESG_FRONT_GEAR_SHIFT_COUNT, + SESSION_MESG_REAR_GEAR_SHIFT_COUNT, SESSION_MESG_SPORT_PROFILE_NAME, SESSION_MESG_SPORT_INDEX, SESSION_MESG_TIME_STANDING, @@ -6278,6 +6698,7 @@ class Profile SESSION_MESG_AVG_CORE_TEMPERATURE, SESSION_MESG_MIN_CORE_TEMPERATURE, SESSION_MESG_MAX_CORE_TEMPERATURE, + SESSION_MESG_AVG_GRADE_ADJUSTED_SPEED, SESSION_MESG_FIELDS } SESSION_MESG_FIELD_INDEX; @@ -6295,6 +6716,9 @@ class Profile typedef enum { SESSION_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE, + SESSION_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE, + SESSION_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE, + SESSION_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE, SESSION_MESG_AVG_CADENCE_FIELD_SUBFIELDS, SESSION_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, SESSION_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD @@ -6303,6 +6727,9 @@ class Profile typedef enum { SESSION_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE, + SESSION_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE, + SESSION_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE, + SESSION_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE, SESSION_MESG_MAX_CADENCE_FIELD_SUBFIELDS, SESSION_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, SESSION_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD @@ -6339,6 +6766,10 @@ class Profile LAP_MESG_LAP_TRIGGER, LAP_MESG_SPORT, LAP_MESG_EVENT_GROUP, + LAP_MESG_NEC_LAT, + LAP_MESG_NEC_LONG, + LAP_MESG_SWC_LAT, + LAP_MESG_SWC_LONG, LAP_MESG_NUM_LENGTHS, LAP_MESG_NORMALIZED_POWER, LAP_MESG_LEFT_RIGHT_BALANCE, @@ -6372,6 +6803,7 @@ class Profile LAP_MESG_MIN_HEART_RATE, LAP_MESG_ACTIVE_TIME, LAP_MESG_WKT_STEP_INDEX, + LAP_MESG_AVG_SWOLF, LAP_MESG_OPPONENT_SCORE, LAP_MESG_STROKE_COUNT, LAP_MESG_ZONE_COUNT, @@ -6388,11 +6820,14 @@ class Profile LAP_MESG_AVG_SATURATED_HEMOGLOBIN_PERCENT, LAP_MESG_MIN_SATURATED_HEMOGLOBIN_PERCENT, LAP_MESG_MAX_SATURATED_HEMOGLOBIN_PERCENT, + LAP_MESG_AVG_STROKES_PER_LENGTH, LAP_MESG_AVG_LEFT_TORQUE_EFFECTIVENESS, LAP_MESG_AVG_RIGHT_TORQUE_EFFECTIVENESS, LAP_MESG_AVG_LEFT_PEDAL_SMOOTHNESS, LAP_MESG_AVG_RIGHT_PEDAL_SMOOTHNESS, LAP_MESG_AVG_COMBINED_PEDAL_SMOOTHNESS, + LAP_MESG_FRONT_GEAR_SHIFT_COUNT, + LAP_MESG_REAR_GEAR_SHIFT_COUNT, LAP_MESG_TIME_STANDING, LAP_MESG_STAND_COUNT, LAP_MESG_AVG_LEFT_PCO, @@ -6429,11 +6864,13 @@ class Profile LAP_MESG_JUMP_COUNT, LAP_MESG_AVG_GRIT, LAP_MESG_AVG_FLOW, + LAP_MESG_METABOLIC_CALORIES, LAP_MESG_TOTAL_FRACTIONAL_ASCENT, LAP_MESG_TOTAL_FRACTIONAL_DESCENT, LAP_MESG_AVG_CORE_TEMPERATURE, LAP_MESG_MIN_CORE_TEMPERATURE, LAP_MESG_MAX_CORE_TEMPERATURE, + LAP_MESG_AVG_GRADE_ADJUSTED_SPEED, LAP_MESG_FIELDS } LAP_MESG_FIELD_INDEX; @@ -6441,6 +6878,7 @@ class Profile { LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES, LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES, + LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES, LAP_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS, LAP_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, LAP_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD @@ -6449,6 +6887,9 @@ class Profile typedef enum { LAP_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE, + LAP_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE, + LAP_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE, + LAP_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE, LAP_MESG_AVG_CADENCE_FIELD_SUBFIELDS, LAP_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, LAP_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD @@ -6457,6 +6898,9 @@ class Profile typedef enum { LAP_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE, + LAP_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE, + LAP_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE, + LAP_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE, LAP_MESG_MAX_CADENCE_FIELD_SUBFIELDS, LAP_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, LAP_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD @@ -6486,6 +6930,7 @@ class Profile LENGTH_MESG_ENHANCED_MAX_RESPIRATION_RATE, LENGTH_MESG_AVG_RESPIRATION_RATE, LENGTH_MESG_MAX_RESPIRATION_RATE, + LENGTH_MESG_METABOLIC_CALORIES, LENGTH_MESG_FIELDS } LENGTH_MESG_FIELD_INDEX; @@ -6714,6 +7159,13 @@ class Profile TRAINING_FILE_MESG_PRODUCT_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD } TRAINING_FILE_MESG_PRODUCT_FIELD_SUBFIELD_INDEX; + typedef enum + { + BATTERY_MESG_TIMESTAMP, + BATTERY_MESG_CAPACITY, + BATTERY_MESG_FIELDS + } BATTERY_MESG_FIELD_INDEX; + typedef enum { WEATHER_CONDITIONS_MESG_TIMESTAMP, @@ -6821,6 +7273,7 @@ class Profile BAROMETER_DATA_MESG_TIMESTAMP_MS, BAROMETER_DATA_MESG_SAMPLE_TIME_OFFSET, BAROMETER_DATA_MESG_BARO_PRES, + BAROMETER_DATA_MESG_ENHANCED_ALTITUDE, BAROMETER_DATA_MESG_FIELDS } BAROMETER_DATA_MESG_FIELD_INDEX; @@ -6981,14 +7434,23 @@ class Profile typedef enum { SPLIT_MESG_MESSAGE_INDEX, + SPLIT_MESG_TIMESTAMP, SPLIT_MESG_SPLIT_TYPE, SPLIT_MESG_TOTAL_ELAPSED_TIME, SPLIT_MESG_TOTAL_TIMER_TIME, SPLIT_MESG_TOTAL_DISTANCE, SPLIT_MESG_AVG_SPEED, SPLIT_MESG_START_TIME, + SPLIT_MESG_SPORT, + SPLIT_MESG_SUB_SPORT, SPLIT_MESG_TOTAL_ASCENT, SPLIT_MESG_TOTAL_DESCENT, + SPLIT_MESG_AVG_HEART_RATE, + SPLIT_MESG_MAX_HEART_RATE, + SPLIT_MESG_NEC_LAT, + SPLIT_MESG_NEC_LONG, + SPLIT_MESG_SWC_LAT, + SPLIT_MESG_SWC_LONG, SPLIT_MESG_START_POSITION_LAT, SPLIT_MESG_START_POSITION_LONG, SPLIT_MESG_END_POSITION_LAT, @@ -6997,16 +7459,152 @@ class Profile SPLIT_MESG_AVG_VERT_SPEED, SPLIT_MESG_END_TIME, SPLIT_MESG_TOTAL_CALORIES, + SPLIT_MESG_AVG_CADENCE, + SPLIT_MESG_MAX_CADENCE, + SPLIT_MESG_TOTAL_CYCLES, + SPLIT_MESG_AVG_TEMPERATURE, + SPLIT_MESG_MAX_TEMPERATURE, + SPLIT_MESG_MIN_TEMPERATURE, + SPLIT_MESG_AVG_VERTICAL_OSCILLATION, + SPLIT_MESG_AVG_VERTICAL_RATIO, + SPLIT_MESG_AVG_STANCE_TIME, + SPLIT_MESG_AVG_STANCE_TIME_BALANCE, + SPLIT_MESG_AVG_STEP_LENGTH, + SPLIT_MESG_AVG_POWER, + SPLIT_MESG_MAX_POWER, + SPLIT_MESG_NORMALIZED_POWER, + SPLIT_MESG_LEFT_RIGHT_BALANCE, + SPLIT_MESG_TIME_STANDING, + SPLIT_MESG_AVG_LEFT_PCO, + SPLIT_MESG_AVG_RIGHT_PCO, + SPLIT_MESG_AVG_LEFT_POWER_PHASE, + SPLIT_MESG_AVG_LEFT_POWER_PHASE_PEAK, + SPLIT_MESG_AVG_RIGHT_POWER_PHASE, + SPLIT_MESG_AVG_RIGHT_POWER_PHASE_PEAK, + SPLIT_MESG_AVG_POWER_POSITION, + SPLIT_MESG_MAX_POWER_POSITION, + SPLIT_MESG_AVG_LEFT_TORQUE_EFFECTIVENESS, + SPLIT_MESG_AVG_RIGHT_TORQUE_EFFECTIVENESS, + SPLIT_MESG_AVG_LEFT_PEDAL_SMOOTHNESS, + SPLIT_MESG_AVG_RIGHT_PEDAL_SMOOTHNESS, + SPLIT_MESG_AVG_COMBINED_PEDAL_SMOOTHNESS, + SPLIT_MESG_AVG_FLOW, + SPLIT_MESG_TOTAL_GRIT, + SPLIT_MESG_SWIM_STROKE, + SPLIT_MESG_NUM_ACTIVE_LENGTHS, + SPLIT_MESG_AVG_SWOLF, + SPLIT_MESG_AVG_STROKE_DISTANCE, + SPLIT_MESG_AVG_STROKES_PER_LENGTH, + SPLIT_MESG_FIRST_LAP_INDEX, + SPLIT_MESG_NUM_LAPS, + SPLIT_MESG_CLIMB_GRADING_SCALE, + SPLIT_MESG_CLIMB_GRADE_VALUE, + SPLIT_MESG_STATUS, + SPLIT_MESG_NUM_FALLS, + SPLIT_MESG_CLIMB_SEND, SPLIT_MESG_START_ELEVATION, SPLIT_MESG_ACTIVE_TIME, + SPLIT_MESG_METABOLIC_CALORIES, + SPLIT_MESG_TOTAL_FRACTIONAL_ASCENT, + SPLIT_MESG_TOTAL_FRACTIONAL_DESCENT, + SPLIT_MESG_AVG_GRADE, + SPLIT_MESG_MAX_GRADE, + SPLIT_MESG_MIN_CADENCE, + SPLIT_MESG_AVG_GRADE_ADJUSTED_SPEED, + SPLIT_MESG_AVG_STRESS, + SPLIT_MESG_AVG_VAM, + SPLIT_MESG_JUMP_COUNT, SPLIT_MESG_TOTAL_MOVING_TIME, + SPLIT_MESG_DIVE_SECTION_TYPE, + SPLIT_MESG_AVG_ASCENT_RATE, + SPLIT_MESG_MAX_ASCENT_RATE, + SPLIT_MESG_AVG_DESCENT_RATE, + SPLIT_MESG_MAX_DESCENT_RATE, + SPLIT_MESG_TOTAL_ASCENT_TIME, + SPLIT_MESG_TOTAL_DESCENT_TIME, + SPLIT_MESG_TOTAL_HANG_TIME, + SPLIT_MESG_APNEA_DISCIPLINE, + SPLIT_MESG_AVG_DEPTH, + SPLIT_MESG_MAX_DEPTH, + SPLIT_MESG_MIN_HEART_RATE, + SPLIT_MESG_SURFACE_INTERVAL, + SPLIT_MESG_TOTAL_FRACTIONAL_CYCLES, + SPLIT_MESG_AVG_STANCE_TIME_PERCENT, + SPLIT_MESG_TOTAL_ANAEROBIC_TRAINING_EFFECT, + SPLIT_MESG_FRONT_GEAR_SHIFT_COUNT, + SPLIT_MESG_REAR_GEAR_SHIFT_COUNT, SPLIT_MESG_FIELDS } SPLIT_MESG_FIELD_INDEX; + typedef enum + { + SPLIT_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE, + SPLIT_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE, + SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE, + SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE, + SPLIT_MESG_AVG_CADENCE_FIELD_SUBFIELDS, + SPLIT_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_MESG_AVG_CADENCE_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE, + SPLIT_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE, + SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE, + SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE, + SPLIT_MESG_MAX_CADENCE_FIELD_SUBFIELDS, + SPLIT_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_MESG_MAX_CADENCE_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES, + SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES, + SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS, + SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES, + SPLIT_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS, + SPLIT_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_MESG_TOTAL_CYCLES_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_YDS, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_UIAA, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FRENCH, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_ADJECTIVAL, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_TECHNICAL, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_EWBANK, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRAZILIAN, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_SAXON, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_VERMIN, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FONT, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_DANKYU, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_SUBFIELDS, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_MESG_MIN_CADENCE_FIELD_MIN_RUNNING_CADENCE, + SPLIT_MESG_MIN_CADENCE_FIELD_MIN_SWIMMING_CADENCE, + SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PADDLESPORT_CADENCE, + SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PUSH_CADENCE, + SPLIT_MESG_MIN_CADENCE_FIELD_SUBFIELDS, + SPLIT_MESG_MIN_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_MESG_MIN_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_MESG_MIN_CADENCE_FIELD_SUBFIELD_INDEX; + typedef enum { SPLIT_SUMMARY_MESG_MESSAGE_INDEX, + SPLIT_SUMMARY_MESG_TIMESTAMP, SPLIT_SUMMARY_MESG_SPLIT_TYPE, + SPLIT_SUMMARY_MESG_SPORT, + SPLIT_SUMMARY_MESG_SUB_SPORT, SPLIT_SUMMARY_MESG_NUM_SPLITS, SPLIT_SUMMARY_MESG_TOTAL_TIMER_TIME, SPLIT_SUMMARY_MESG_TOTAL_DISTANCE, @@ -7018,11 +7616,117 @@ class Profile SPLIT_SUMMARY_MESG_MAX_HEART_RATE, SPLIT_SUMMARY_MESG_AVG_VERT_SPEED, SPLIT_SUMMARY_MESG_TOTAL_CALORIES, + SPLIT_SUMMARY_MESG_AVG_CADENCE, + SPLIT_SUMMARY_MESG_MAX_CADENCE, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES, + SPLIT_SUMMARY_MESG_AVG_TEMPERATURE, + SPLIT_SUMMARY_MESG_MAX_TEMPERATURE, + SPLIT_SUMMARY_MESG_MIN_TEMPERATURE, + SPLIT_SUMMARY_MESG_AVG_VERTICAL_OSCILLATION, + SPLIT_SUMMARY_MESG_AVG_VERTICAL_RATIO, + SPLIT_SUMMARY_MESG_AVG_STANCE_TIME, + SPLIT_SUMMARY_MESG_AVG_STANCE_TIME_BALANCE, + SPLIT_SUMMARY_MESG_AVG_STEP_LENGTH, + SPLIT_SUMMARY_MESG_AVG_POWER, + SPLIT_SUMMARY_MESG_MAX_POWER, + SPLIT_SUMMARY_MESG_NORMALIZED_POWER, + SPLIT_SUMMARY_MESG_LEFT_RIGHT_BALANCE, + SPLIT_SUMMARY_MESG_TIME_STANDING, + SPLIT_SUMMARY_MESG_AVG_LEFT_PCO, + SPLIT_SUMMARY_MESG_AVG_RIGHT_PCO, + SPLIT_SUMMARY_MESG_AVG_LEFT_POWER_PHASE, + SPLIT_SUMMARY_MESG_AVG_LEFT_POWER_PHASE_PEAK, + SPLIT_SUMMARY_MESG_AVG_RIGHT_POWER_PHASE, + SPLIT_SUMMARY_MESG_AVG_RIGHT_POWER_PHASE_PEAK, + SPLIT_SUMMARY_MESG_AVG_POWER_POSITION, + SPLIT_SUMMARY_MESG_MAX_POWER_POSITION, + SPLIT_SUMMARY_MESG_AVG_LEFT_TORQUE_EFFECTIVENESS, + SPLIT_SUMMARY_MESG_AVG_RIGHT_TORQUE_EFFECTIVENESS, + SPLIT_SUMMARY_MESG_AVG_LEFT_PEDAL_SMOOTHNESS, + SPLIT_SUMMARY_MESG_AVG_RIGHT_PEDAL_SMOOTHNESS, + SPLIT_SUMMARY_MESG_AVG_COMBINED_PEDAL_SMOOTHNESS, + SPLIT_SUMMARY_MESG_AVG_FLOW, + SPLIT_SUMMARY_MESG_TOTAL_GRIT, + SPLIT_SUMMARY_MESG_SWIM_STROKE, + SPLIT_SUMMARY_MESG_NUM_ACTIVE_LENGTHS, + SPLIT_SUMMARY_MESG_AVG_SWOLF, + SPLIT_SUMMARY_MESG_AVG_STROKE_DISTANCE, + SPLIT_SUMMARY_MESG_AVG_STROKES_PER_LENGTH, + SPLIT_SUMMARY_MESG_AVG_ASCENT, + SPLIT_SUMMARY_MESG_MAX_ASCENT, + SPLIT_SUMMARY_MESG_CLIMB_GRADING_SCALE, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE, + SPLIT_SUMMARY_MESG_NUM_FALLS, + SPLIT_SUMMARY_MESG_NUM_CLIMBS_ATTEMPTED, + SPLIT_SUMMARY_MESG_NUM_CLIMBS_COMPLETED, + SPLIT_SUMMARY_MESG_MAX_DISTANCE, + SPLIT_SUMMARY_MESG_METABOLIC_CALORIES, SPLIT_SUMMARY_MESG_ACTIVE_TIME, + SPLIT_SUMMARY_MESG_TOTAL_FRACTIONAL_ASCENT, + SPLIT_SUMMARY_MESG_TOTAL_FRACTIONAL_DESCENT, + SPLIT_SUMMARY_MESG_AVG_FRACTIONAL_ASCENT, + SPLIT_SUMMARY_MESG_MAX_FRACTIONAL_ASCENT, + SPLIT_SUMMARY_MESG_AVG_GRADE_ADJUSTED_SPEED, + SPLIT_SUMMARY_MESG_AVG_STRESS, SPLIT_SUMMARY_MESG_TOTAL_MOVING_TIME, + SPLIT_SUMMARY_MESG_START_TIME, + SPLIT_SUMMARY_MESG_MIN_HEART_RATE, + SPLIT_SUMMARY_MESG_AVG_STANCE_TIME_PERCENT, + SPLIT_SUMMARY_MESG_MAX_TOTAL_TIMER_TIME, SPLIT_SUMMARY_MESG_FIELDS } SPLIT_SUMMARY_MESG_FIELD_INDEX; + typedef enum + { + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_SUBFIELDS, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_SUBFIELDS, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_SUBFIELD_INDEX; + + typedef enum + { + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_YDS, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_UIAA, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FRENCH, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_ADJECTIVAL, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_TECHNICAL, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_EWBANK, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRAZILIAN, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_SAXON, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_VERMIN, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FONT, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_DANKYU, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_SUBFIELDS, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_ACTIVE_SUBFIELD = FIT_SUBFIELD_INDEX_ACTIVE_SUBFIELD, + SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_MAIN_FIELD = FIT_SUBFIELD_INDEX_MAIN_FIELD + } SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_SUBFIELD_INDEX; + typedef enum { CLIMB_PRO_MESG_TIMESTAMP, @@ -7216,6 +7920,7 @@ class Profile SEGMENT_LAP_MESG_TOTAL_FLOW, SEGMENT_LAP_MESG_AVG_GRIT, SEGMENT_LAP_MESG_AVG_FLOW, + SEGMENT_LAP_MESG_METABOLIC_CALORIES, SEGMENT_LAP_MESG_TOTAL_FRACTIONAL_ASCENT, SEGMENT_LAP_MESG_TOTAL_FRACTIONAL_DESCENT, SEGMENT_LAP_MESG_ENHANCED_AVG_ALTITUDE, diff --git a/src/fit_protocol_validator.cpp b/src/fit_protocol_validator.cpp index a5581f4..9f169b1 100644 --- a/src/fit_protocol_validator.cpp +++ b/src/fit_protocol_validator.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_protocol_validator.hpp b/src/fit_protocol_validator.hpp index 1455d7c..62aaec3 100644 --- a/src/fit_protocol_validator.hpp +++ b/src/fit_protocol_validator.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_raw_bbi_mesg.hpp b/src/fit_raw_bbi_mesg.hpp index 2aa4e92..3eb6a4a 100644 --- a/src/fit_raw_bbi_mesg.hpp +++ b/src/fit_raw_bbi_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_raw_bbi_mesg_listener.hpp b/src/fit_raw_bbi_mesg_listener.hpp index 4b18155..d03886d 100644 --- a/src/fit_raw_bbi_mesg_listener.hpp +++ b/src/fit_raw_bbi_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_record_mesg.hpp b/src/fit_record_mesg.hpp index acc7eb2..adf0843 100644 --- a/src/fit_record_mesg.hpp +++ b/src/fit_record_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_record_mesg_listener.hpp b/src/fit_record_mesg_listener.hpp index 34ad045..6f59be0 100644 --- a/src/fit_record_mesg_listener.hpp +++ b/src/fit_record_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_respiration_rate_mesg.hpp b/src/fit_respiration_rate_mesg.hpp index 9c6e6ad..3d49f0a 100644 --- a/src/fit_respiration_rate_mesg.hpp +++ b/src/fit_respiration_rate_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_respiration_rate_mesg_listener.hpp b/src/fit_respiration_rate_mesg_listener.hpp index a58e052..83f7135 100644 --- a/src/fit_respiration_rate_mesg_listener.hpp +++ b/src/fit_respiration_rate_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_runtime_exception.hpp b/src/fit_runtime_exception.hpp index fa5863f..acb0f4d 100644 --- a/src/fit_runtime_exception.hpp +++ b/src/fit_runtime_exception.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_schedule_mesg.hpp b/src/fit_schedule_mesg.hpp index 44f19d2..cf38f7b 100644 --- a/src/fit_schedule_mesg.hpp +++ b/src/fit_schedule_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_schedule_mesg_listener.hpp b/src/fit_schedule_mesg_listener.hpp index 79b920d..1f8103b 100644 --- a/src/fit_schedule_mesg_listener.hpp +++ b/src/fit_schedule_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sdm_profile_mesg.hpp b/src/fit_sdm_profile_mesg.hpp index 9a1e3e2..722d9ab 100644 --- a/src/fit_sdm_profile_mesg.hpp +++ b/src/fit_sdm_profile_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sdm_profile_mesg_listener.hpp b/src/fit_sdm_profile_mesg_listener.hpp index 7cdbe88..f429bf2 100644 --- a/src/fit_sdm_profile_mesg_listener.hpp +++ b/src/fit_sdm_profile_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_file_mesg.hpp b/src/fit_segment_file_mesg.hpp index e993ae3..fe05cb0 100644 --- a/src/fit_segment_file_mesg.hpp +++ b/src/fit_segment_file_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_file_mesg_listener.hpp b/src/fit_segment_file_mesg_listener.hpp index 056bb52..ef78174 100644 --- a/src/fit_segment_file_mesg_listener.hpp +++ b/src/fit_segment_file_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_id_mesg.hpp b/src/fit_segment_id_mesg.hpp index 148d0c7..abdee5a 100644 --- a/src/fit_segment_id_mesg.hpp +++ b/src/fit_segment_id_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_id_mesg_listener.hpp b/src/fit_segment_id_mesg_listener.hpp index 4035c2d..2737ef0 100644 --- a/src/fit_segment_id_mesg_listener.hpp +++ b/src/fit_segment_id_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_lap_mesg.hpp b/src/fit_segment_lap_mesg.hpp index a03df4c..7c34624 100644 --- a/src/fit_segment_lap_mesg.hpp +++ b/src/fit_segment_lap_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -115,6 +115,7 @@ class SegmentLapMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 TotalFlow = 85; static const FIT_UINT8 AvgGrit = 86; static const FIT_UINT8 AvgFlow = 87; + static const FIT_UINT8 MetabolicCalories = 88; static const FIT_UINT8 TotalFractionalAscent = 89; static const FIT_UINT8 TotalFractionalDescent = 90; static const FIT_UINT8 EnhancedAvgAltitude = 91; @@ -3258,6 +3259,39 @@ class SegmentLapMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(87, avgFlow, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of metabolic_calories field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMetabolicCaloriesValid() const + { + const Field* field = GetField(88); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMetabolicCalories(void) const + { + return GetFieldUINT16Value(88, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + void SetMetabolicCalories(FIT_UINT16 metabolicCalories) + { + SetFieldUINT16Value(88, metabolicCalories, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of total_fractional_ascent field // Returns FIT_TRUE if field is valid diff --git a/src/fit_segment_lap_mesg_listener.hpp b/src/fit_segment_lap_mesg_listener.hpp index 22cf7c2..1a535ee 100644 --- a/src/fit_segment_lap_mesg_listener.hpp +++ b/src/fit_segment_lap_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_leaderboard_entry_mesg.hpp b/src/fit_segment_leaderboard_entry_mesg.hpp index 743c34a..a0c7ac8 100644 --- a/src/fit_segment_leaderboard_entry_mesg.hpp +++ b/src/fit_segment_leaderboard_entry_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_leaderboard_entry_mesg_listener.hpp b/src/fit_segment_leaderboard_entry_mesg_listener.hpp index 82b6287..8b777fe 100644 --- a/src/fit_segment_leaderboard_entry_mesg_listener.hpp +++ b/src/fit_segment_leaderboard_entry_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_point_mesg.hpp b/src/fit_segment_point_mesg.hpp index 43e7172..666504f 100644 --- a/src/fit_segment_point_mesg.hpp +++ b/src/fit_segment_point_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_segment_point_mesg_listener.hpp b/src/fit_segment_point_mesg_listener.hpp index a90a15a..3526c39 100644 --- a/src/fit_segment_point_mesg_listener.hpp +++ b/src/fit_segment_point_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_session_mesg.hpp b/src/fit_session_mesg.hpp index 4110853..7b811db 100644 --- a/src/fit_session_mesg.hpp +++ b/src/fit_session_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -98,6 +98,8 @@ class SessionMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 BestLapIndex = 70; static const FIT_UINT8 MinAltitude = 71; static const FIT_UINT8 ActiveTime = 78; + static const FIT_UINT8 AvgStrokesPerLength = 79; + static const FIT_UINT8 AvgSwolf = 80; static const FIT_UINT8 PlayerScore = 82; static const FIT_UINT8 OpponentScore = 83; static const FIT_UINT8 OpponentName = 84; @@ -122,6 +124,9 @@ class SessionMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 AvgLeftPedalSmoothness = 103; static const FIT_UINT8 AvgRightPedalSmoothness = 104; static const FIT_UINT8 AvgCombinedPedalSmoothness = 105; + static const FIT_UINT8 NumSegmentLaps = 106; + static const FIT_UINT8 FrontGearShiftCount = 107; + static const FIT_UINT8 RearGearShiftCount = 108; static const FIT_UINT8 SportProfileName = 110; static const FIT_UINT8 SportIndex = 111; static const FIT_UINT8 TimeStanding = 112; @@ -183,6 +188,7 @@ class SessionMesg : public Mesg, public MesgWithEvent static const FIT_UINT8 AvgCoreTemperature = 208; static const FIT_UINT8 MinCoreTemperature = 209; static const FIT_UINT8 MaxCoreTemperature = 210; + static const FIT_UINT8 AvgGradeAdjustedSpeed = 211; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -1055,6 +1061,125 @@ class SessionMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(18, avgRunningCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwimmingCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgSwimmingCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgSwimmingCadence(FIT_UINT8 avgSwimmingCadence) + { + SetFieldUINT8Value(18, avgSwimmingCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPaddlesportCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgPaddlesportCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgPaddlesportCadence(FIT_UINT8 avgPaddlesportCadence) + { + SetFieldUINT8Value(18, avgPaddlesportCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPushCadenceValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a session + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgPushCadence(void) const + { + return GetFieldUINT8Value(18, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a session + /////////////////////////////////////////////////////////////////////// + void SetAvgPushCadence(FIT_UINT8 avgPushCadence) + { + SetFieldUINT8Value(18, avgPushCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of max_cadence field // Returns FIT_TRUE if field is valid @@ -1127,6 +1252,125 @@ class SessionMesg : public Mesg, public MesgWithEvent SetFieldUINT8Value(19, maxRunningCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxSwimmingCadenceValid() const + { + const Field* field = GetField(19); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxSwimmingCadence(void) const + { + return GetFieldUINT8Value(19, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxSwimmingCadence(FIT_UINT8 maxSwimmingCadence) + { + SetFieldUINT8Value(19, maxSwimmingCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPaddlesportCadenceValid() const + { + const Field* field = GetField(19); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxPaddlesportCadence(void) const + { + return GetFieldUINT8Value(19, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxPaddlesportCadence(FIT_UINT8 maxPaddlesportCadence) + { + SetFieldUINT8Value(19, maxPaddlesportCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPushCadenceValid() const + { + const Field* field = GetField(19); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a session + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxPushCadence(void) const + { + return GetFieldUINT8Value(19, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a session + /////////////////////////////////////////////////////////////////////// + void SetMaxPushCadence(FIT_UINT8 maxPushCadence) + { + SetFieldUINT8Value(19, maxPushCadence, 0, (FIT_UINT16) Profile::SESSION_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of avg_power field // Returns FIT_TRUE if field is valid @@ -2873,6 +3117,70 @@ class SessionMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(78, activeTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_strokes_per_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokesPerLengthValid() const + { + const Field* field = GetField(79); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_strokes_per_length field + // Units: strokes/length + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokesPerLength(void) const + { + return GetFieldFLOAT32Value(79, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_strokes_per_length field + // Units: strokes/length + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokesPerLength(FIT_FLOAT32 avgStrokesPerLength) + { + SetFieldFLOAT32Value(79, avgStrokesPerLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swolf field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwolfValid() const + { + const Field* field = GetField(80); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swolf field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgSwolf(void) const + { + return GetFieldUINT16Value(80, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swolf field + /////////////////////////////////////////////////////////////////////// + void SetAvgSwolf(FIT_UINT16 avgSwolf) + { + SetFieldUINT16Value(80, avgSwolf, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of player_score field // Returns FIT_TRUE if field is valid @@ -3745,6 +4053,99 @@ class SessionMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(105, avgCombinedPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_segment_laps field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumSegmentLapsValid() const + { + const Field* field = GetField(106); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_segment_laps field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumSegmentLaps(void) const + { + return GetFieldUINT16Value(106, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_segment_laps field + /////////////////////////////////////////////////////////////////////// + void SetNumSegmentLaps(FIT_UINT16 numSegmentLaps) + { + SetFieldUINT16Value(106, numSegmentLaps, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of front_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsFrontGearShiftCountValid() const + { + const Field* field = GetField(107); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetFrontGearShiftCount(void) const + { + return GetFieldUINT16Value(107, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetFrontGearShiftCount(FIT_UINT16 frontGearShiftCount) + { + SetFieldUINT16Value(107, frontGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of rear_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsRearGearShiftCountValid() const + { + const Field* field = GetField(108); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetRearGearShiftCount(void) const + { + return GetFieldUINT16Value(108, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetRearGearShiftCount(FIT_UINT16 rearGearShiftCount) + { + SetFieldUINT16Value(108, rearGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of sport_profile_name field // Returns FIT_TRUE if field is valid @@ -5860,6 +6261,39 @@ class SessionMesg : public Mesg, public MesgWithEvent SetFieldFLOAT32Value(210, maxCoreTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_grade_adjusted_speed field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgGradeAdjustedSpeedValid() const + { + const Field* field = GetField(211); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgGradeAdjustedSpeed(void) const + { + return GetFieldFLOAT32Value(211, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgGradeAdjustedSpeed(FIT_FLOAT32 avgGradeAdjustedSpeed) + { + SetFieldFLOAT32Value(211, avgGradeAdjustedSpeed, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + }; } // namespace fit diff --git a/src/fit_session_mesg_listener.hpp b/src/fit_session_mesg_listener.hpp index 395367f..c273752 100644 --- a/src/fit_session_mesg_listener.hpp +++ b/src/fit_session_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_set_mesg.hpp b/src/fit_set_mesg.hpp index 87e624c..89a68d9 100644 --- a/src/fit_set_mesg.hpp +++ b/src/fit_set_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_set_mesg_listener.hpp b/src/fit_set_mesg_listener.hpp index f974fe2..a28a49b 100644 --- a/src/fit_set_mesg_listener.hpp +++ b/src/fit_set_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_skin_temp_overnight_mesg.hpp b/src/fit_skin_temp_overnight_mesg.hpp index 27fd517..a5eb32d 100644 --- a/src/fit_skin_temp_overnight_mesg.hpp +++ b/src/fit_skin_temp_overnight_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_skin_temp_overnight_mesg_listener.hpp b/src/fit_skin_temp_overnight_mesg_listener.hpp index bdc94cc..9df00b9 100644 --- a/src/fit_skin_temp_overnight_mesg_listener.hpp +++ b/src/fit_skin_temp_overnight_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_slave_device_mesg.hpp b/src/fit_slave_device_mesg.hpp index 1a55eae..80e6431 100644 --- a/src/fit_slave_device_mesg.hpp +++ b/src/fit_slave_device_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_slave_device_mesg_listener.hpp b/src/fit_slave_device_mesg_listener.hpp index 74199d3..e88ee97 100644 --- a/src/fit_slave_device_mesg_listener.hpp +++ b/src/fit_slave_device_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_assessment_mesg.hpp b/src/fit_sleep_assessment_mesg.hpp index f99ee45..00b0d2b 100644 --- a/src/fit_sleep_assessment_mesg.hpp +++ b/src/fit_sleep_assessment_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_assessment_mesg_listener.hpp b/src/fit_sleep_assessment_mesg_listener.hpp index 0d81bc8..0205068 100644 --- a/src/fit_sleep_assessment_mesg_listener.hpp +++ b/src/fit_sleep_assessment_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_disruption_overnight_severity_mesg.hpp b/src/fit_sleep_disruption_overnight_severity_mesg.hpp index 06b8eaa..69367ff 100644 --- a/src/fit_sleep_disruption_overnight_severity_mesg.hpp +++ b/src/fit_sleep_disruption_overnight_severity_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_disruption_overnight_severity_mesg_listener.hpp b/src/fit_sleep_disruption_overnight_severity_mesg_listener.hpp index ffd5358..2aebfd9 100644 --- a/src/fit_sleep_disruption_overnight_severity_mesg_listener.hpp +++ b/src/fit_sleep_disruption_overnight_severity_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_disruption_severity_period_mesg.hpp b/src/fit_sleep_disruption_severity_period_mesg.hpp index 14621f6..2626296 100644 --- a/src/fit_sleep_disruption_severity_period_mesg.hpp +++ b/src/fit_sleep_disruption_severity_period_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_disruption_severity_period_mesg_listener.hpp b/src/fit_sleep_disruption_severity_period_mesg_listener.hpp index b608e49..6669051 100644 --- a/src/fit_sleep_disruption_severity_period_mesg_listener.hpp +++ b/src/fit_sleep_disruption_severity_period_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_level_mesg.hpp b/src/fit_sleep_level_mesg.hpp index dc979c7..22f6775 100644 --- a/src/fit_sleep_level_mesg.hpp +++ b/src/fit_sleep_level_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sleep_level_mesg_listener.hpp b/src/fit_sleep_level_mesg_listener.hpp index 2124bcd..2a35219 100644 --- a/src/fit_sleep_level_mesg_listener.hpp +++ b/src/fit_sleep_level_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_software_mesg.hpp b/src/fit_software_mesg.hpp index 6626d55..cf861d2 100644 --- a/src/fit_software_mesg.hpp +++ b/src/fit_software_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_software_mesg_listener.hpp b/src/fit_software_mesg_listener.hpp index 8425345..4c0f475 100644 --- a/src/fit_software_mesg_listener.hpp +++ b/src/fit_software_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_speed_zone_mesg.hpp b/src/fit_speed_zone_mesg.hpp index a87e551..64992ae 100644 --- a/src/fit_speed_zone_mesg.hpp +++ b/src/fit_speed_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_speed_zone_mesg_listener.hpp b/src/fit_speed_zone_mesg_listener.hpp index d6700b0..829411a 100644 --- a/src/fit_speed_zone_mesg_listener.hpp +++ b/src/fit_speed_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_split_mesg.hpp b/src/fit_split_mesg.hpp index 038ce35..a690cfb 100644 --- a/src/fit_split_mesg.hpp +++ b/src/fit_split_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -25,14 +25,23 @@ class SplitMesg : public Mesg { public: static const FIT_UINT8 MessageIndex = 254; + static const FIT_UINT8 Timestamp = 253; static const FIT_UINT8 SplitType = 0; static const FIT_UINT8 TotalElapsedTime = 1; static const FIT_UINT8 TotalTimerTime = 2; static const FIT_UINT8 TotalDistance = 3; static const FIT_UINT8 AvgSpeed = 4; static const FIT_UINT8 StartTime = 9; + static const FIT_UINT8 Sport = 11; + static const FIT_UINT8 SubSport = 12; static const FIT_UINT8 TotalAscent = 13; static const FIT_UINT8 TotalDescent = 14; + static const FIT_UINT8 AvgHeartRate = 15; + static const FIT_UINT8 MaxHeartRate = 16; + static const FIT_UINT8 NecLat = 17; + static const FIT_UINT8 NecLong = 18; + static const FIT_UINT8 SwcLat = 19; + static const FIT_UINT8 SwcLong = 20; static const FIT_UINT8 StartPositionLat = 21; static const FIT_UINT8 StartPositionLong = 22; static const FIT_UINT8 EndPositionLat = 23; @@ -41,9 +50,80 @@ class SplitMesg : public Mesg static const FIT_UINT8 AvgVertSpeed = 26; static const FIT_UINT8 EndTime = 27; static const FIT_UINT8 TotalCalories = 28; + static const FIT_UINT8 AvgCadence = 29; + static const FIT_UINT8 MaxCadence = 30; + static const FIT_UINT8 TotalCycles = 31; + static const FIT_UINT8 AvgTemperature = 32; + static const FIT_UINT8 MaxTemperature = 33; + static const FIT_UINT8 MinTemperature = 34; + static const FIT_UINT8 AvgVerticalOscillation = 35; + static const FIT_UINT8 AvgVerticalRatio = 36; + static const FIT_UINT8 AvgStanceTime = 37; + static const FIT_UINT8 AvgStanceTimeBalance = 38; + static const FIT_UINT8 AvgStepLength = 39; + static const FIT_UINT8 AvgPower = 40; + static const FIT_UINT8 MaxPower = 41; + static const FIT_UINT8 NormalizedPower = 42; + static const FIT_UINT8 LeftRightBalance = 43; + static const FIT_UINT8 TimeStanding = 44; + static const FIT_UINT8 AvgLeftPco = 45; + static const FIT_UINT8 AvgRightPco = 46; + static const FIT_UINT8 AvgLeftPowerPhase = 47; + static const FIT_UINT8 AvgLeftPowerPhasePeak = 48; + static const FIT_UINT8 AvgRightPowerPhase = 49; + static const FIT_UINT8 AvgRightPowerPhasePeak = 50; + static const FIT_UINT8 AvgPowerPosition = 51; + static const FIT_UINT8 MaxPowerPosition = 52; + static const FIT_UINT8 AvgLeftTorqueEffectiveness = 53; + static const FIT_UINT8 AvgRightTorqueEffectiveness = 54; + static const FIT_UINT8 AvgLeftPedalSmoothness = 55; + static const FIT_UINT8 AvgRightPedalSmoothness = 56; + static const FIT_UINT8 AvgCombinedPedalSmoothness = 57; + static const FIT_UINT8 AvgFlow = 58; + static const FIT_UINT8 TotalGrit = 59; + static const FIT_UINT8 SwimStroke = 62; + static const FIT_UINT8 NumActiveLengths = 63; + static const FIT_UINT8 AvgSwolf = 64; + static const FIT_UINT8 AvgStrokeDistance = 65; + static const FIT_UINT8 AvgStrokesPerLength = 66; + static const FIT_UINT8 FirstLapIndex = 67; + static const FIT_UINT8 NumLaps = 68; + static const FIT_UINT8 ClimbGradingScale = 69; + static const FIT_UINT8 ClimbGradeValue = 70; + static const FIT_UINT8 Status = 71; + static const FIT_UINT8 NumFalls = 72; + static const FIT_UINT8 ClimbSend = 73; static const FIT_UINT8 StartElevation = 74; static const FIT_UINT8 ActiveTime = 78; + static const FIT_UINT8 MetabolicCalories = 79; + static const FIT_UINT8 TotalFractionalAscent = 80; + static const FIT_UINT8 TotalFractionalDescent = 81; + static const FIT_UINT8 AvgGrade = 88; + static const FIT_UINT8 MaxGrade = 89; + static const FIT_UINT8 MinCadence = 90; + static const FIT_UINT8 AvgGradeAdjustedSpeed = 93; + static const FIT_UINT8 AvgStress = 94; + static const FIT_UINT8 AvgVam = 99; + static const FIT_UINT8 JumpCount = 104; static const FIT_UINT8 TotalMovingTime = 110; + static const FIT_UINT8 DiveSectionType = 112; + static const FIT_UINT8 AvgAscentRate = 113; + static const FIT_UINT8 MaxAscentRate = 114; + static const FIT_UINT8 AvgDescentRate = 115; + static const FIT_UINT8 MaxDescentRate = 116; + static const FIT_UINT8 TotalAscentTime = 117; + static const FIT_UINT8 TotalDescentTime = 118; + static const FIT_UINT8 TotalHangTime = 119; + static const FIT_UINT8 ApneaDiscipline = 120; + static const FIT_UINT8 AvgDepth = 121; + static const FIT_UINT8 MaxDepth = 122; + static const FIT_UINT8 MinHeartRate = 124; + static const FIT_UINT8 SurfaceInterval = 127; + static const FIT_UINT8 TotalFractionalCycles = 142; + static const FIT_UINT8 AvgStanceTimePercent = 144; + static const FIT_UINT8 TotalAnaerobicTrainingEffect = 168; + static const FIT_UINT8 FrontGearShiftCount = 169; + static const FIT_UINT8 RearGearShiftCount = 170; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -86,6 +166,39 @@ class SplitMesg : public Mesg SetFieldUINT16Value(254, messageIndex, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of timestamp field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTimestampValid() const + { + const Field* field = GetField(253); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns timestamp field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_DATE_TIME GetTimestamp(void) const + { + return GetFieldUINT32Value(253, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set timestamp field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTimestamp(FIT_DATE_TIME timestamp) + { + SetFieldUINT32Value(253, timestamp, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of split_type field // Returns FIT_TRUE if field is valid @@ -280,6 +393,68 @@ class SplitMesg : public Mesg SetFieldUINT32Value(9, startTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of sport field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSportValid() const + { + const Field* field = GetField(11); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns sport field + /////////////////////////////////////////////////////////////////////// + FIT_SPORT GetSport(void) const + { + return GetFieldENUMValue(11, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set sport field + /////////////////////////////////////////////////////////////////////// + void SetSport(FIT_SPORT sport) + { + SetFieldENUMValue(11, sport, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of sub_sport field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSubSportValid() const + { + const Field* field = GetField(12); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns sub_sport field + /////////////////////////////////////////////////////////////////////// + FIT_SUB_SPORT GetSubSport(void) const + { + return GetFieldENUMValue(12, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set sub_sport field + /////////////////////////////////////////////////////////////////////// + void SetSubSport(FIT_SUB_SPORT subSport) + { + SetFieldENUMValue(12, subSport, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of total_ascent field // Returns FIT_TRUE if field is valid @@ -346,6 +521,212 @@ class SplitMesg : public Mesg SetFieldUINT16Value(14, totalDescent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_heart_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgHeartRateValid() const + { + const Field* field = GetField(15); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetAvgHeartRate(void) const + { + return GetFieldUINT8Value(15, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + void SetAvgHeartRate(FIT_UINT8 avgHeartRate) + { + SetFieldUINT8Value(15, avgHeartRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_heart_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxHeartRateValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMaxHeartRate(void) const + { + return GetFieldUINT8Value(16, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + void SetMaxHeartRate(FIT_UINT8 maxHeartRate) + { + SetFieldUINT8Value(16, maxHeartRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of nec_lat field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNecLatValid() const + { + const Field* field = GetField(17); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns nec_lat field + // Units: semicircles + // Comment: North east corner latitude + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetNecLat(void) const + { + return GetFieldSINT32Value(17, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set nec_lat field + // Units: semicircles + // Comment: North east corner latitude + /////////////////////////////////////////////////////////////////////// + void SetNecLat(FIT_SINT32 necLat) + { + SetFieldSINT32Value(17, necLat, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of nec_long field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNecLongValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns nec_long field + // Units: semicircles + // Comment: North east corner longitude + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetNecLong(void) const + { + return GetFieldSINT32Value(18, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set nec_long field + // Units: semicircles + // Comment: North east corner longitude + /////////////////////////////////////////////////////////////////////// + void SetNecLong(FIT_SINT32 necLong) + { + SetFieldSINT32Value(18, necLong, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swc_lat field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwcLatValid() const + { + const Field* field = GetField(19); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swc_lat field + // Units: semicircles + // Comment: South west corner latitude + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetSwcLat(void) const + { + return GetFieldSINT32Value(19, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swc_lat field + // Units: semicircles + // Comment: South west corner latitude + /////////////////////////////////////////////////////////////////////// + void SetSwcLat(FIT_SINT32 swcLat) + { + SetFieldSINT32Value(19, swcLat, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swc_long field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwcLongValid() const + { + const Field* field = GetField(20); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swc_long field + // Units: semicircles + // Comment: South west corner longitude + /////////////////////////////////////////////////////////////////////// + FIT_SINT32 GetSwcLong(void) const + { + return GetFieldSINT32Value(20, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swc_long field + // Units: semicircles + // Comment: South west corner longitude + /////////////////////////////////////////////////////////////////////// + void SetSwcLong(FIT_SINT32 swcLong) + { + SetFieldSINT32Value(20, swcLong, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of start_position_lat field // Returns FIT_TRUE if field is valid @@ -609,12 +990,12 @@ class SplitMesg : public Mesg } /////////////////////////////////////////////////////////////////////// - // Checks the validity of start_elevation field + // Checks the validity of avg_cadence field // Returns FIT_TRUE if field is valid /////////////////////////////////////////////////////////////////////// - FIT_BOOL IsStartElevationValid() const + FIT_BOOL IsAvgCadenceValid() const { - const Field* field = GetField(74); + const Field* field = GetField(29); if( FIT_NULL == field ) { return FIT_FALSE; @@ -624,89 +1005,3531 @@ class SplitMesg : public Mesg } /////////////////////////////////////////////////////////////////////// - // Returns start_elevation field - // Units: m + // Returns avg_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - FIT_FLOAT32 GetStartElevation(void) const + FIT_FLOAT32 GetAvgCadence(void) const { - return GetFieldFLOAT32Value(74, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + return GetFieldFLOAT32Value(29, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } /////////////////////////////////////////////////////////////////////// - // Set start_elevation field - // Units: m + // Set avg_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - void SetStartElevation(FIT_FLOAT32 startElevation) + void SetAvgCadence(FIT_FLOAT32 avgCadence) { - SetFieldFLOAT32Value(74, startElevation, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + SetFieldFLOAT32Value(29, avgCadence, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } /////////////////////////////////////////////////////////////////////// - // Checks the validity of active_time field + // Checks the validity of avg_running_cadence field // Returns FIT_TRUE if field is valid /////////////////////////////////////////////////////////////////////// - FIT_BOOL IsActiveTimeValid() const + FIT_BOOL IsAvgRunningCadenceValid() const { - const Field* field = GetField(78); + const Field* field = GetField(29); if( FIT_NULL == field ) { return FIT_FALSE; } - return field->IsValueValid(); + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); } + /////////////////////////////////////////////////////////////////////// - // Returns active_time field - // Units: s - // Comment: Active time of split rounds + // Returns avg_running_cadence field + // Units: strides/min /////////////////////////////////////////////////////////////////////// - FIT_FLOAT32 GetActiveTime(void) const + FIT_FLOAT32 GetAvgRunningCadence(void) const { - return GetFieldFLOAT32Value(78, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + return GetFieldFLOAT32Value(29, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); } /////////////////////////////////////////////////////////////////////// - // Set active_time field - // Units: s - // Comment: Active time of split rounds + // Set avg_running_cadence field + // Units: strides/min /////////////////////////////////////////////////////////////////////// - void SetActiveTime(FIT_FLOAT32 activeTime) + void SetAvgRunningCadence(FIT_FLOAT32 avgRunningCadence) { - SetFieldFLOAT32Value(78, activeTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + SetFieldFLOAT32Value(29, avgRunningCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); } /////////////////////////////////////////////////////////////////////// - // Checks the validity of total_moving_time field + // Checks the validity of avg_swimming_cadence field // Returns FIT_TRUE if field is valid /////////////////////////////////////////////////////////////////////// - FIT_BOOL IsTotalMovingTimeValid() const + FIT_BOOL IsAvgSwimmingCadenceValid() const { - const Field* field = GetField(110); + const Field* field = GetField(29); if( FIT_NULL == field ) { return FIT_FALSE; } - return field->IsValueValid(); + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); } + /////////////////////////////////////////////////////////////////////// - // Returns total_moving_time field - // Units: s + // Returns avg_swimming_cadence field + // Units: strokes/min /////////////////////////////////////////////////////////////////////// - FIT_FLOAT32 GetTotalMovingTime(void) const + FIT_FLOAT32 GetAvgSwimmingCadence(void) const { - return GetFieldFLOAT32Value(110, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + return GetFieldFLOAT32Value(29, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); } /////////////////////////////////////////////////////////////////////// - // Set total_moving_time field - // Units: s + // Set avg_swimming_cadence field + // Units: strokes/min /////////////////////////////////////////////////////////////////////// - void SetTotalMovingTime(FIT_FLOAT32 totalMovingTime) + void SetAvgSwimmingCadence(FIT_FLOAT32 avgSwimmingCadence) { - SetFieldFLOAT32Value(110, totalMovingTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + SetFieldFLOAT32Value(29, avgSwimmingCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPaddlesportCadenceValid() const + { + const Field* field = GetField(29); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgPaddlesportCadence(void) const + { + return GetFieldFLOAT32Value(29, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgPaddlesportCadence(FIT_FLOAT32 avgPaddlesportCadence) + { + SetFieldFLOAT32Value(29, avgPaddlesportCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPushCadenceValid() const + { + const Field* field = GetField(29); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPushCadence(void) const + { + return GetFieldUINT16Value(29, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + void SetAvgPushCadence(FIT_UINT16 avgPushCadence) + { + SetFieldUINT16Value(29, avgPushCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxCadenceValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_cadence field + // Units: rpm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxCadence(void) const + { + return GetFieldFLOAT32Value(30, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_cadence field + // Units: rpm + /////////////////////////////////////////////////////////////////////// + void SetMaxCadence(FIT_FLOAT32 maxCadence) + { + SetFieldFLOAT32Value(30, maxCadence, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_running_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxRunningCadenceValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxRunningCadence(void) const + { + return GetFieldFLOAT32Value(30, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + void SetMaxRunningCadence(FIT_FLOAT32 maxRunningCadence) + { + SetFieldFLOAT32Value(30, maxRunningCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxSwimmingCadenceValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxSwimmingCadence(void) const + { + return GetFieldFLOAT32Value(30, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxSwimmingCadence(FIT_FLOAT32 maxSwimmingCadence) + { + SetFieldFLOAT32Value(30, maxSwimmingCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPaddlesportCadenceValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxPaddlesportCadence(void) const + { + return GetFieldFLOAT32Value(30, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxPaddlesportCadence(FIT_FLOAT32 maxPaddlesportCadence) + { + SetFieldFLOAT32Value(30, maxPaddlesportCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPushCadenceValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPushCadence(void) const + { + return GetFieldUINT16Value(30, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + void SetMaxPushCadence(FIT_UINT16 maxPushCadence) + { + SetFieldUINT16Value(30, maxPushCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_cycles field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalCyclesValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalCycles(void) const + { + return GetFieldUINT32Value(31, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + void SetTotalCycles(FIT_UINT32 totalCycles) + { + SetFieldUINT32Value(31, totalCycles, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_strides field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalStridesValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_strides field + // Units: strides + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalStrides(void) const + { + return GetFieldUINT32Value(31, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_strides field + // Units: strides + /////////////////////////////////////////////////////////////////////// + void SetTotalStrides(FIT_UINT32 totalStrides) + { + SetFieldUINT32Value(31, totalStrides, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_strokes field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalStrokesValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_strokes field + // Units: strokes + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalStrokes(void) const + { + return GetFieldUINT32Value(31, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_strokes field + // Units: strokes + /////////////////////////////////////////////////////////////////////// + void SetTotalStrokes(FIT_UINT32 totalStrokes) + { + SetFieldUINT32Value(31, totalStrokes, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_reps field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalRepsValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_reps field + // Units: reps + // Comment: total reps in a split round + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalReps(void) const + { + return GetFieldUINT32Value(31, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_reps field + // Units: reps + // Comment: total reps in a split round + /////////////////////////////////////////////////////////////////////// + void SetTotalReps(FIT_UINT32 totalReps) + { + SetFieldUINT32Value(31, totalReps, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_pushes field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalPushesValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_pushes field + // Units: pushes + // Comment: total number of pushes in a split + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalPushes(void) const + { + return GetFieldUINT32Value(31, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_pushes field + // Units: pushes + // Comment: total number of pushes in a split + /////////////////////////////////////////////////////////////////////// + void SetTotalPushes(FIT_UINT32 totalPushes) + { + SetFieldUINT32Value(31, totalPushes, 0, (FIT_UINT16) Profile::SPLIT_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgTemperatureValid() const + { + const Field* field = GetField(32); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgTemperature(void) const + { + return GetFieldSINT8Value(32, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetAvgTemperature(FIT_SINT8 avgTemperature) + { + SetFieldSINT8Value(32, avgTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxTemperatureValid() const + { + const Field* field = GetField(33); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetMaxTemperature(void) const + { + return GetFieldSINT8Value(33, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetMaxTemperature(FIT_SINT8 maxTemperature) + { + SetFieldSINT8Value(33, maxTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinTemperatureValid() const + { + const Field* field = GetField(34); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns min_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetMinTemperature(void) const + { + return GetFieldSINT8Value(34, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetMinTemperature(FIT_SINT8 minTemperature) + { + SetFieldSINT8Value(34, minTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_vertical_oscillation field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgVerticalOscillationValid() const + { + const Field* field = GetField(35); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_vertical_oscillation field + // Units: mm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgVerticalOscillation(void) const + { + return GetFieldFLOAT32Value(35, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_vertical_oscillation field + // Units: mm + /////////////////////////////////////////////////////////////////////// + void SetAvgVerticalOscillation(FIT_FLOAT32 avgVerticalOscillation) + { + SetFieldFLOAT32Value(35, avgVerticalOscillation, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_vertical_ratio field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgVerticalRatioValid() const + { + const Field* field = GetField(36); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_vertical_ratio field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgVerticalRatio(void) const + { + return GetFieldFLOAT32Value(36, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_vertical_ratio field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgVerticalRatio(FIT_FLOAT32 avgVerticalRatio) + { + SetFieldFLOAT32Value(36, avgVerticalRatio, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimeValid() const + { + const Field* field = GetField(37); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time field + // Units: ms + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTime(void) const + { + return GetFieldFLOAT32Value(37, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time field + // Units: ms + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTime(FIT_FLOAT32 avgStanceTime) + { + SetFieldFLOAT32Value(37, avgStanceTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time_balance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimeBalanceValid() const + { + const Field* field = GetField(38); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time_balance field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTimeBalance(void) const + { + return GetFieldFLOAT32Value(38, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time_balance field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTimeBalance(FIT_FLOAT32 avgStanceTimeBalance) + { + SetFieldFLOAT32Value(38, avgStanceTimeBalance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_step_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStepLengthValid() const + { + const Field* field = GetField(39); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_step_length field + // Units: mm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStepLength(void) const + { + return GetFieldFLOAT32Value(39, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_step_length field + // Units: mm + /////////////////////////////////////////////////////////////////////// + void SetAvgStepLength(FIT_FLOAT32 avgStepLength) + { + SetFieldFLOAT32Value(39, avgStepLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPowerValid() const + { + const Field* field = GetField(40); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPower(void) const + { + return GetFieldUINT16Value(40, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetAvgPower(FIT_UINT16 avgPower) + { + SetFieldUINT16Value(40, avgPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPowerValid() const + { + const Field* field = GetField(41); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPower(void) const + { + return GetFieldUINT16Value(41, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetMaxPower(FIT_UINT16 maxPower) + { + SetFieldUINT16Value(41, maxPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of normalized_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNormalizedPowerValid() const + { + const Field* field = GetField(42); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns normalized_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNormalizedPower(void) const + { + return GetFieldUINT16Value(42, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set normalized_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetNormalizedPower(FIT_UINT16 normalizedPower) + { + SetFieldUINT16Value(42, normalizedPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of left_right_balance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsLeftRightBalanceValid() const + { + const Field* field = GetField(43); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns left_right_balance field + /////////////////////////////////////////////////////////////////////// + FIT_LEFT_RIGHT_BALANCE_100 GetLeftRightBalance(void) const + { + return GetFieldUINT16Value(43, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set left_right_balance field + /////////////////////////////////////////////////////////////////////// + void SetLeftRightBalance(FIT_LEFT_RIGHT_BALANCE_100 leftRightBalance) + { + SetFieldUINT16Value(43, leftRightBalance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of time_standing field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTimeStandingValid() const + { + const Field* field = GetField(44); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns time_standing field + // Units: s + // Comment: Total time spent in the standing position + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTimeStanding(void) const + { + return GetFieldFLOAT32Value(44, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set time_standing field + // Units: s + // Comment: Total time spent in the standing position + /////////////////////////////////////////////////////////////////////// + void SetTimeStanding(FIT_FLOAT32 timeStanding) + { + SetFieldFLOAT32Value(44, timeStanding, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_pco field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPcoValid() const + { + const Field* field = GetField(45); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_pco field + // Units: mm + // Comment: Average left platform center offset + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgLeftPco(void) const + { + return GetFieldSINT8Value(45, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_pco field + // Units: mm + // Comment: Average left platform center offset + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPco(FIT_SINT8 avgLeftPco) + { + SetFieldSINT8Value(45, avgLeftPco, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_pco field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPcoValid() const + { + const Field* field = GetField(46); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_pco field + // Units: mm + // Comment: Average right platform center offset + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgRightPco(void) const + { + return GetFieldSINT8Value(46, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_pco field + // Units: mm + // Comment: Average right platform center offset + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPco(FIT_SINT8 avgRightPco) + { + SetFieldSINT8Value(46, avgRightPco, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_left_power_phase + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgLeftPowerPhase(void) const + { + return GetFieldNumValues(47, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_power_phase field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPowerPhaseValid(FIT_UINT8 index) const + { + const Field* field = GetField(47); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_power_phase field + // Units: degrees + // Comment: Average left power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPowerPhase(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(47, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_power_phase field + // Units: degrees + // Comment: Average left power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPowerPhase(FIT_UINT8 index, FIT_FLOAT32 avgLeftPowerPhase) + { + SetFieldFLOAT32Value(47, avgLeftPowerPhase, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_left_power_phase_peak + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgLeftPowerPhasePeak(void) const + { + return GetFieldNumValues(48, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_power_phase_peak field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPowerPhasePeakValid(FIT_UINT8 index) const + { + const Field* field = GetField(48); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_power_phase_peak field + // Units: degrees + // Comment: Average left power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPowerPhasePeak(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(48, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_power_phase_peak field + // Units: degrees + // Comment: Average left power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPowerPhasePeak(FIT_UINT8 index, FIT_FLOAT32 avgLeftPowerPhasePeak) + { + SetFieldFLOAT32Value(48, avgLeftPowerPhasePeak, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_right_power_phase + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgRightPowerPhase(void) const + { + return GetFieldNumValues(49, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_power_phase field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPowerPhaseValid(FIT_UINT8 index) const + { + const Field* field = GetField(49); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_power_phase field + // Units: degrees + // Comment: Average right power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPowerPhase(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(49, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_power_phase field + // Units: degrees + // Comment: Average right power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPowerPhase(FIT_UINT8 index, FIT_FLOAT32 avgRightPowerPhase) + { + SetFieldFLOAT32Value(49, avgRightPowerPhase, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_right_power_phase_peak + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgRightPowerPhasePeak(void) const + { + return GetFieldNumValues(50, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_power_phase_peak field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPowerPhasePeakValid(FIT_UINT8 index) const + { + const Field* field = GetField(50); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_power_phase_peak field + // Units: degrees + // Comment: Average right power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPowerPhasePeak(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(50, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_power_phase_peak field + // Units: degrees + // Comment: Average right power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPowerPhasePeak(FIT_UINT8 index, FIT_FLOAT32 avgRightPowerPhasePeak) + { + SetFieldFLOAT32Value(50, avgRightPowerPhasePeak, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_power_position + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgPowerPosition(void) const + { + return GetFieldNumValues(51, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_power_position field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPowerPositionValid(FIT_UINT8 index) const + { + const Field* field = GetField(51); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_power_position field + // Units: watts + // Comment: Average power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPowerPosition(FIT_UINT8 index) const + { + return GetFieldUINT16Value(51, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_power_position field + // Units: watts + // Comment: Average power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgPowerPosition(FIT_UINT8 index, FIT_UINT16 avgPowerPosition) + { + SetFieldUINT16Value(51, avgPowerPosition, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of max_power_position + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumMaxPowerPosition(void) const + { + return GetFieldNumValues(52, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_power_position field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPowerPositionValid(FIT_UINT8 index) const + { + const Field* field = GetField(52); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_power_position field + // Units: watts + // Comment: Maximum power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPowerPosition(FIT_UINT8 index) const + { + return GetFieldUINT16Value(52, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_power_position field + // Units: watts + // Comment: Maximum power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + void SetMaxPowerPosition(FIT_UINT8 index, FIT_UINT16 maxPowerPosition) + { + SetFieldUINT16Value(52, maxPowerPosition, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_torque_effectiveness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftTorqueEffectivenessValid() const + { + const Field* field = GetField(53); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftTorqueEffectiveness(void) const + { + return GetFieldFLOAT32Value(53, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftTorqueEffectiveness(FIT_FLOAT32 avgLeftTorqueEffectiveness) + { + SetFieldFLOAT32Value(53, avgLeftTorqueEffectiveness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_torque_effectiveness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightTorqueEffectivenessValid() const + { + const Field* field = GetField(54); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightTorqueEffectiveness(void) const + { + return GetFieldFLOAT32Value(54, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgRightTorqueEffectiveness(FIT_FLOAT32 avgRightTorqueEffectiveness) + { + SetFieldFLOAT32Value(54, avgRightTorqueEffectiveness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPedalSmoothnessValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(55, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPedalSmoothness(FIT_FLOAT32 avgLeftPedalSmoothness) + { + SetFieldFLOAT32Value(55, avgLeftPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPedalSmoothnessValid() const + { + const Field* field = GetField(56); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(56, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPedalSmoothness(FIT_FLOAT32 avgRightPedalSmoothness) + { + SetFieldFLOAT32Value(56, avgRightPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_combined_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgCombinedPedalSmoothnessValid() const + { + const Field* field = GetField(57); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_combined_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgCombinedPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(57, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_combined_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgCombinedPedalSmoothness(FIT_FLOAT32 avgCombinedPedalSmoothness) + { + SetFieldFLOAT32Value(57, avgCombinedPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_flow field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgFlowValid() const + { + const Field* field = GetField(58); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_flow field + // Units: Flow + // Comment: The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgFlow(void) const + { + return GetFieldFLOAT32Value(58, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_flow field + // Units: Flow + // Comment: The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. + /////////////////////////////////////////////////////////////////////// + void SetAvgFlow(FIT_FLOAT32 avgFlow) + { + SetFieldFLOAT32Value(58, avgFlow, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_grit field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalGritValid() const + { + const Field* field = GetField(59); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_grit field + // Units: kGrit + // Comment: The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalGrit(void) const + { + return GetFieldFLOAT32Value(59, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_grit field + // Units: kGrit + // Comment: The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. + /////////////////////////////////////////////////////////////////////// + void SetTotalGrit(FIT_FLOAT32 totalGrit) + { + SetFieldFLOAT32Value(59, totalGrit, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swim_stroke field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwimStrokeValid() const + { + const Field* field = GetField(62); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swim_stroke field + /////////////////////////////////////////////////////////////////////// + FIT_SWIM_STROKE GetSwimStroke(void) const + { + return GetFieldENUMValue(62, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swim_stroke field + /////////////////////////////////////////////////////////////////////// + void SetSwimStroke(FIT_SWIM_STROKE swimStroke) + { + SetFieldENUMValue(62, swimStroke, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_active_lengths field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumActiveLengthsValid() const + { + const Field* field = GetField(63); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_active_lengths field + // Units: lengths + // Comment: # of active lengths of swim pool + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumActiveLengths(void) const + { + return GetFieldUINT16Value(63, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_active_lengths field + // Units: lengths + // Comment: # of active lengths of swim pool + /////////////////////////////////////////////////////////////////////// + void SetNumActiveLengths(FIT_UINT16 numActiveLengths) + { + SetFieldUINT16Value(63, numActiveLengths, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swolf field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwolfValid() const + { + const Field* field = GetField(64); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swolf field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgSwolf(void) const + { + return GetFieldUINT16Value(64, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swolf field + /////////////////////////////////////////////////////////////////////// + void SetAvgSwolf(FIT_UINT16 avgSwolf) + { + SetFieldUINT16Value(64, avgSwolf, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stroke_distance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokeDistanceValid() const + { + const Field* field = GetField(65); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stroke_distance field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokeDistance(void) const + { + return GetFieldFLOAT32Value(65, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stroke_distance field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokeDistance(FIT_FLOAT32 avgStrokeDistance) + { + SetFieldFLOAT32Value(65, avgStrokeDistance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_strokes_per_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokesPerLengthValid() const + { + const Field* field = GetField(66); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokesPerLength(void) const + { + return GetFieldFLOAT32Value(66, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokesPerLength(FIT_FLOAT32 avgStrokesPerLength) + { + SetFieldFLOAT32Value(66, avgStrokesPerLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of first_lap_index field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsFirstLapIndexValid() const + { + const Field* field = GetField(67); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns first_lap_index field + // Comment: This is only set for split types that will trigger the end of a lap when the split ends + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetFirstLapIndex(void) const + { + return GetFieldUINT16Value(67, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set first_lap_index field + // Comment: This is only set for split types that will trigger the end of a lap when the split ends + /////////////////////////////////////////////////////////////////////// + void SetFirstLapIndex(FIT_UINT16 firstLapIndex) + { + SetFieldUINT16Value(67, firstLapIndex, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_laps field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumLapsValid() const + { + const Field* field = GetField(68); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_laps field + // Comment: This is only set for split types that will trigger the end of a lap when the split ends + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumLaps(void) const + { + return GetFieldUINT16Value(68, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_laps field + // Comment: This is only set for split types that will trigger the end of a lap when the split ends + /////////////////////////////////////////////////////////////////////// + void SetNumLaps(FIT_UINT16 numLaps) + { + SetFieldUINT16Value(68, numLaps, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grading_scale field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradingScaleValid() const + { + const Field* field = GetField(69); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grading_scale field + /////////////////////////////////////////////////////////////////////// + FIT_CLIMB_GRADING_SCALE GetClimbGradingScale(void) const + { + return GetFieldENUMValue(69, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grading_scale field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradingScale(FIT_CLIMB_GRADING_SCALE climbGradingScale) + { + SetFieldENUMValue(69, climbGradingScale, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_value field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeValueValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_value field + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetClimbGradeValue(void) const + { + return GetFieldUINT32Value(70, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_value field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeValue(FIT_UINT32 climbGradeValue) + { + SetFieldUINT32Value(70, climbGradeValue, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_yds field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeYdsValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_YDS ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_YDS); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_yds field + /////////////////////////////////////////////////////////////////////// + FIT_YDS_GRADING_SCALE GetClimbGradeYds(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_YDS); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_yds field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeYds(FIT_YDS_GRADING_SCALE climbGradeYds) + { + SetFieldENUMValue(70, climbGradeYds, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_YDS); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_uiaa field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeUiaaValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_UIAA ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_UIAA); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_uiaa field + /////////////////////////////////////////////////////////////////////// + FIT_UIAA_GRADING_SCALE GetClimbGradeUiaa(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_UIAA); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_uiaa field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeUiaa(FIT_UIAA_GRADING_SCALE climbGradeUiaa) + { + SetFieldENUMValue(70, climbGradeUiaa, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_UIAA); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_french field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeFrenchValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FRENCH ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FRENCH); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_french field + /////////////////////////////////////////////////////////////////////// + FIT_FRENCH_GRADING_SCALE GetClimbGradeFrench(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FRENCH); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_french field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeFrench(FIT_FRENCH_GRADING_SCALE climbGradeFrench) + { + SetFieldENUMValue(70, climbGradeFrench, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FRENCH); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_british_adjectival field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeBritishAdjectivalValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_ADJECTIVAL ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_ADJECTIVAL); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_british_adjectival field + /////////////////////////////////////////////////////////////////////// + FIT_BRITISH_ADJECTIVAL_GRADING_SCALE GetClimbGradeBritishAdjectival(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_ADJECTIVAL); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_british_adjectival field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeBritishAdjectival(FIT_BRITISH_ADJECTIVAL_GRADING_SCALE climbGradeBritishAdjectival) + { + SetFieldENUMValue(70, climbGradeBritishAdjectival, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_ADJECTIVAL); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_british_technical field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeBritishTechnicalValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_TECHNICAL ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_TECHNICAL); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_british_technical field + /////////////////////////////////////////////////////////////////////// + FIT_BRITISH_TECHNICAL_GRADING_SCALE GetClimbGradeBritishTechnical(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_TECHNICAL); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_british_technical field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeBritishTechnical(FIT_BRITISH_TECHNICAL_GRADING_SCALE climbGradeBritishTechnical) + { + SetFieldENUMValue(70, climbGradeBritishTechnical, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRITISH_TECHNICAL); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_ewbank field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeEwbankValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_EWBANK ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_EWBANK); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_ewbank field + /////////////////////////////////////////////////////////////////////// + FIT_EWBANK_GRADING_SCALE GetClimbGradeEwbank(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_EWBANK); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_ewbank field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeEwbank(FIT_EWBANK_GRADING_SCALE climbGradeEwbank) + { + SetFieldENUMValue(70, climbGradeEwbank, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_EWBANK); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_brazilian field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeBrazilianValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRAZILIAN ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRAZILIAN); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_brazilian field + /////////////////////////////////////////////////////////////////////// + FIT_BRAZILIAN_GRADING_SCALE GetClimbGradeBrazilian(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRAZILIAN); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_brazilian field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeBrazilian(FIT_BRAZILIAN_GRADING_SCALE climbGradeBrazilian) + { + SetFieldENUMValue(70, climbGradeBrazilian, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_BRAZILIAN); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_saxon field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeSaxonValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_SAXON ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_SAXON); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_saxon field + /////////////////////////////////////////////////////////////////////// + FIT_SAXON_GRADING_SCALE GetClimbGradeSaxon(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_SAXON); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_saxon field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeSaxon(FIT_SAXON_GRADING_SCALE climbGradeSaxon) + { + SetFieldENUMValue(70, climbGradeSaxon, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_SAXON); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_vermin field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeVerminValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_VERMIN ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_VERMIN); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_vermin field + /////////////////////////////////////////////////////////////////////// + FIT_VERMIN_GRADING_SCALE GetClimbGradeVermin(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_VERMIN); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_vermin field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeVermin(FIT_VERMIN_GRADING_SCALE climbGradeVermin) + { + SetFieldENUMValue(70, climbGradeVermin, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_VERMIN); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_font field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeFontValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FONT ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FONT); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_font field + /////////////////////////////////////////////////////////////////////// + FIT_FONT_GRADING_SCALE GetClimbGradeFont(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FONT); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_font field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeFont(FIT_FONT_GRADING_SCALE climbGradeFont) + { + SetFieldENUMValue(70, climbGradeFont, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_FONT); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grade_dankyu field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradeDankyuValid() const + { + const Field* field = GetField(70); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_DANKYU ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_DANKYU); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grade_dankyu field + /////////////////////////////////////////////////////////////////////// + FIT_DANKYU_GRADING_SCALE GetClimbGradeDankyu(void) const + { + return GetFieldENUMValue(70, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_DANKYU); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grade_dankyu field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradeDankyu(FIT_DANKYU_GRADING_SCALE climbGradeDankyu) + { + SetFieldENUMValue(70, climbGradeDankyu, 0, (FIT_UINT16) Profile::SPLIT_MESG_CLIMB_GRADE_VALUE_FIELD_CLIMB_GRADE_DANKYU); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of status field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsStatusValid() const + { + const Field* field = GetField(71); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns status field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + FIT_SPLIT_STATUS GetStatus(void) const + { + return GetFieldENUMValue(71, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set status field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + void SetStatus(FIT_SPLIT_STATUS status) + { + SetFieldENUMValue(71, status, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_falls field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumFallsValid() const + { + const Field* field = GetField(72); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_falls field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumFalls(void) const + { + return GetFieldUINT16Value(72, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_falls field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + void SetNumFalls(FIT_UINT16 numFalls) + { + SetFieldUINT16Value(72, numFalls, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_send field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbSendValid() const + { + const Field* field = GetField(73); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns climb_send field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + FIT_BOOL GetClimbSend(void) const + { + return GetFieldENUMValue(73, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_send field + // Comment: Use with indoor climbing activities only + /////////////////////////////////////////////////////////////////////// + void SetClimbSend(FIT_BOOL climbSend) + { + SetFieldENUMValue(73, climbSend, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of start_elevation field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsStartElevationValid() const + { + const Field* field = GetField(74); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns start_elevation field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetStartElevation(void) const + { + return GetFieldFLOAT32Value(74, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set start_elevation field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetStartElevation(FIT_FLOAT32 startElevation) + { + SetFieldFLOAT32Value(74, startElevation, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of active_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsActiveTimeValid() const + { + const Field* field = GetField(78); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns active_time field + // Units: s + // Comment: Active time of split rounds + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetActiveTime(void) const + { + return GetFieldFLOAT32Value(78, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set active_time field + // Units: s + // Comment: Active time of split rounds + /////////////////////////////////////////////////////////////////////// + void SetActiveTime(FIT_FLOAT32 activeTime) + { + SetFieldFLOAT32Value(78, activeTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of metabolic_calories field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMetabolicCaloriesValid() const + { + const Field* field = GetField(79); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMetabolicCalories(void) const + { + return GetFieldUINT16Value(79, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + void SetMetabolicCalories(FIT_UINT16 metabolicCalories) + { + SetFieldUINT16Value(79, metabolicCalories, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_fractional_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalFractionalAscentValid() const + { + const Field* field = GetField(80); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_fractional_ascent field + // Units: m + // Comment: fractional part of total_ascent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalFractionalAscent(void) const + { + return GetFieldFLOAT32Value(80, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_fractional_ascent field + // Units: m + // Comment: fractional part of total_ascent + /////////////////////////////////////////////////////////////////////// + void SetTotalFractionalAscent(FIT_FLOAT32 totalFractionalAscent) + { + SetFieldFLOAT32Value(80, totalFractionalAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_fractional_descent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalFractionalDescentValid() const + { + const Field* field = GetField(81); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_fractional_descent field + // Units: m + // Comment: fractional part of total_descent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalFractionalDescent(void) const + { + return GetFieldFLOAT32Value(81, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_fractional_descent field + // Units: m + // Comment: fractional part of total_descent + /////////////////////////////////////////////////////////////////////// + void SetTotalFractionalDescent(FIT_FLOAT32 totalFractionalDescent) + { + SetFieldFLOAT32Value(81, totalFractionalDescent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_grade field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgGradeValid() const + { + const Field* field = GetField(88); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_grade field + // Units: % + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgGrade(void) const + { + return GetFieldFLOAT32Value(88, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_grade field + // Units: % + /////////////////////////////////////////////////////////////////////// + void SetAvgGrade(FIT_FLOAT32 avgGrade) + { + SetFieldFLOAT32Value(88, avgGrade, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_grade field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxGradeValid() const + { + const Field* field = GetField(89); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_grade field + // Units: % + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxGrade(void) const + { + return GetFieldFLOAT32Value(89, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_grade field + // Units: % + /////////////////////////////////////////////////////////////////////// + void SetMaxGrade(FIT_FLOAT32 maxGrade) + { + SetFieldFLOAT32Value(89, maxGrade, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinCadenceValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns min_cadence field + // Units: rpm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMinCadence(void) const + { + return GetFieldFLOAT32Value(90, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_cadence field + // Units: rpm + /////////////////////////////////////////////////////////////////////// + void SetMinCadence(FIT_FLOAT32 minCadence) + { + SetFieldFLOAT32Value(90, minCadence, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_running_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinRunningCadenceValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_RUNNING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_RUNNING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns min_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMinRunningCadence(void) const + { + return GetFieldFLOAT32Value(90, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + void SetMinRunningCadence(FIT_FLOAT32 minRunningCadence) + { + SetFieldFLOAT32Value(90, minRunningCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinSwimmingCadenceValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns min_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMinSwimmingCadence(void) const + { + return GetFieldFLOAT32Value(90, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMinSwimmingCadence(FIT_FLOAT32 minSwimmingCadence) + { + SetFieldFLOAT32Value(90, minSwimmingCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinPaddlesportCadenceValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns min_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMinPaddlesportCadence(void) const + { + return GetFieldFLOAT32Value(90, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMinPaddlesportCadence(FIT_FLOAT32 minPaddlesportCadence) + { + SetFieldFLOAT32Value(90, minPaddlesportCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinPushCadenceValid() const + { + const Field* field = GetField(90); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns min_push_cadence field + // Units: pushes/min + // Comment: min pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMinPushCadence(void) const + { + return GetFieldUINT16Value(90, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_push_cadence field + // Units: pushes/min + // Comment: min pushes per minute in a split + /////////////////////////////////////////////////////////////////////// + void SetMinPushCadence(FIT_UINT16 minPushCadence) + { + SetFieldUINT16Value(90, minPushCadence, 0, (FIT_UINT16) Profile::SPLIT_MESG_MIN_CADENCE_FIELD_MIN_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_grade_adjusted_speed field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgGradeAdjustedSpeedValid() const + { + const Field* field = GetField(93); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgGradeAdjustedSpeed(void) const + { + return GetFieldFLOAT32Value(93, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgGradeAdjustedSpeed(FIT_FLOAT32 avgGradeAdjustedSpeed) + { + SetFieldFLOAT32Value(93, avgGradeAdjustedSpeed, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stress field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStressValid() const + { + const Field* field = GetField(94); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stress field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgStress(void) const + { + return GetFieldUINT16Value(94, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stress field + /////////////////////////////////////////////////////////////////////// + void SetAvgStress(FIT_UINT16 avgStress) + { + SetFieldUINT16Value(94, avgStress, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_vam field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgVamValid() const + { + const Field* field = GetField(99); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_vam field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgVam(void) const + { + return GetFieldFLOAT32Value(99, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_vam field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgVam(FIT_FLOAT32 avgVam) + { + SetFieldFLOAT32Value(99, avgVam, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of jump_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsJumpCountValid() const + { + const Field* field = GetField(104); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns jump_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetJumpCount(void) const + { + return GetFieldUINT8Value(104, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set jump_count field + /////////////////////////////////////////////////////////////////////// + void SetJumpCount(FIT_UINT8 jumpCount) + { + SetFieldUINT8Value(104, jumpCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_moving_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalMovingTimeValid() const + { + const Field* field = GetField(110); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_moving_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalMovingTime(void) const + { + return GetFieldFLOAT32Value(110, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_moving_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTotalMovingTime(FIT_FLOAT32 totalMovingTime) + { + SetFieldFLOAT32Value(110, totalMovingTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of dive_section_type field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsDiveSectionTypeValid() const + { + const Field* field = GetField(112); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns dive_section_type field + /////////////////////////////////////////////////////////////////////// + FIT_DIVE_SECTION_TYPE GetDiveSectionType(void) const + { + return GetFieldENUMValue(112, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set dive_section_type field + /////////////////////////////////////////////////////////////////////// + void SetDiveSectionType(FIT_DIVE_SECTION_TYPE diveSectionType) + { + SetFieldENUMValue(112, diveSectionType, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_ascent_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgAscentRateValid() const + { + const Field* field = GetField(113); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_ascent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgAscentRate(void) const + { + return GetFieldFLOAT32Value(113, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_ascent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgAscentRate(FIT_FLOAT32 avgAscentRate) + { + SetFieldFLOAT32Value(113, avgAscentRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_ascent_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxAscentRateValid() const + { + const Field* field = GetField(114); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_ascent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxAscentRate(void) const + { + return GetFieldFLOAT32Value(114, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_ascent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetMaxAscentRate(FIT_FLOAT32 maxAscentRate) + { + SetFieldFLOAT32Value(114, maxAscentRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_descent_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgDescentRateValid() const + { + const Field* field = GetField(115); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_descent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgDescentRate(void) const + { + return GetFieldFLOAT32Value(115, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_descent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgDescentRate(FIT_FLOAT32 avgDescentRate) + { + SetFieldFLOAT32Value(115, avgDescentRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_descent_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxDescentRateValid() const + { + const Field* field = GetField(116); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_descent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxDescentRate(void) const + { + return GetFieldFLOAT32Value(116, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_descent_rate field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetMaxDescentRate(FIT_FLOAT32 maxDescentRate) + { + SetFieldFLOAT32Value(116, maxDescentRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_ascent_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalAscentTimeValid() const + { + const Field* field = GetField(117); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_ascent_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalAscentTime(void) const + { + return GetFieldFLOAT32Value(117, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_ascent_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTotalAscentTime(FIT_FLOAT32 totalAscentTime) + { + SetFieldFLOAT32Value(117, totalAscentTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_descent_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalDescentTimeValid() const + { + const Field* field = GetField(118); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_descent_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalDescentTime(void) const + { + return GetFieldFLOAT32Value(118, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_descent_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTotalDescentTime(FIT_FLOAT32 totalDescentTime) + { + SetFieldFLOAT32Value(118, totalDescentTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_hang_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalHangTimeValid() const + { + const Field* field = GetField(119); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_hang_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalHangTime(void) const + { + return GetFieldFLOAT32Value(119, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_hang_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTotalHangTime(FIT_FLOAT32 totalHangTime) + { + SetFieldFLOAT32Value(119, totalHangTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of apnea_discipline field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsApneaDisciplineValid() const + { + const Field* field = GetField(120); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns apnea_discipline field + /////////////////////////////////////////////////////////////////////// + FIT_APNEA_DISCIPLINE GetApneaDiscipline(void) const + { + return GetFieldENUMValue(120, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set apnea_discipline field + /////////////////////////////////////////////////////////////////////// + void SetApneaDiscipline(FIT_APNEA_DISCIPLINE apneaDiscipline) + { + SetFieldENUMValue(120, apneaDiscipline, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_depth field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgDepthValid() const + { + const Field* field = GetField(121); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_depth field + // Units: m + // Comment: Average depth. 0 if above water + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgDepth(void) const + { + return GetFieldFLOAT32Value(121, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_depth field + // Units: m + // Comment: Average depth. 0 if above water + /////////////////////////////////////////////////////////////////////// + void SetAvgDepth(FIT_FLOAT32 avgDepth) + { + SetFieldFLOAT32Value(121, avgDepth, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_depth field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxDepthValid() const + { + const Field* field = GetField(122); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_depth field + // Units: m + // Comment: Max depth. 0 if above water + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxDepth(void) const + { + return GetFieldFLOAT32Value(122, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_depth field + // Units: m + // Comment: Max depth. 0 if above water + /////////////////////////////////////////////////////////////////////// + void SetMaxDepth(FIT_FLOAT32 maxDepth) + { + SetFieldFLOAT32Value(122, maxDepth, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_heart_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinHeartRateValid() const + { + const Field* field = GetField(124); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns min_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMinHeartRate(void) const + { + return GetFieldUINT8Value(124, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + void SetMinHeartRate(FIT_UINT8 minHeartRate) + { + SetFieldUINT8Value(124, minHeartRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of surface_interval field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSurfaceIntervalValid() const + { + const Field* field = GetField(127); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns surface_interval field + // Units: s + // Comment: Time since end of last dive + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetSurfaceInterval(void) const + { + return GetFieldUINT32Value(127, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set surface_interval field + // Units: s + // Comment: Time since end of last dive + /////////////////////////////////////////////////////////////////////// + void SetSurfaceInterval(FIT_UINT32 surfaceInterval) + { + SetFieldUINT32Value(127, surfaceInterval, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_fractional_cycles field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalFractionalCyclesValid() const + { + const Field* field = GetField(142); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_fractional_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalFractionalCycles(void) const + { + return GetFieldFLOAT32Value(142, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_fractional_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + void SetTotalFractionalCycles(FIT_FLOAT32 totalFractionalCycles) + { + SetFieldFLOAT32Value(142, totalFractionalCycles, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time_percent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimePercentValid() const + { + const Field* field = GetField(144); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time_percent field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTimePercent(void) const + { + return GetFieldFLOAT32Value(144, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time_percent field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTimePercent(FIT_FLOAT32 avgStanceTimePercent) + { + SetFieldFLOAT32Value(144, avgStanceTimePercent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_anaerobic_training_effect field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalAnaerobicTrainingEffectValid() const + { + const Field* field = GetField(168); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_anaerobic_training_effect field + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalAnaerobicTrainingEffect(void) const + { + return GetFieldFLOAT32Value(168, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_anaerobic_training_effect field + /////////////////////////////////////////////////////////////////////// + void SetTotalAnaerobicTrainingEffect(FIT_FLOAT32 totalAnaerobicTrainingEffect) + { + SetFieldFLOAT32Value(168, totalAnaerobicTrainingEffect, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of front_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsFrontGearShiftCountValid() const + { + const Field* field = GetField(169); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetFrontGearShiftCount(void) const + { + return GetFieldUINT16Value(169, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set front_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetFrontGearShiftCount(FIT_UINT16 frontGearShiftCount) + { + SetFieldUINT16Value(169, frontGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of rear_gear_shift_count field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsRearGearShiftCountValid() const + { + const Field* field = GetField(170); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetRearGearShiftCount(void) const + { + return GetFieldUINT16Value(170, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set rear_gear_shift_count field + /////////////////////////////////////////////////////////////////////// + void SetRearGearShiftCount(FIT_UINT16 rearGearShiftCount) + { + SetFieldUINT16Value(170, rearGearShiftCount, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } }; diff --git a/src/fit_split_mesg_listener.hpp b/src/fit_split_mesg_listener.hpp index 53b3b7c..57aa62b 100644 --- a/src/fit_split_mesg_listener.hpp +++ b/src/fit_split_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_split_summary_mesg.hpp b/src/fit_split_summary_mesg.hpp index 6441a7c..7dac8fa 100644 --- a/src/fit_split_summary_mesg.hpp +++ b/src/fit_split_summary_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// @@ -25,7 +25,10 @@ class SplitSummaryMesg : public Mesg { public: static const FIT_UINT8 MessageIndex = 254; + static const FIT_UINT8 Timestamp = 253; static const FIT_UINT8 SplitType = 0; + static const FIT_UINT8 Sport = 1; + static const FIT_UINT8 SubSport = 2; static const FIT_UINT8 NumSplits = 3; static const FIT_UINT8 TotalTimerTime = 4; static const FIT_UINT8 TotalDistance = 5; @@ -37,8 +40,63 @@ class SplitSummaryMesg : public Mesg static const FIT_UINT8 MaxHeartRate = 11; static const FIT_UINT8 AvgVertSpeed = 12; static const FIT_UINT8 TotalCalories = 13; + static const FIT_UINT8 AvgCadence = 14; + static const FIT_UINT8 MaxCadence = 15; + static const FIT_UINT8 TotalCycles = 16; + static const FIT_UINT8 AvgTemperature = 17; + static const FIT_UINT8 MaxTemperature = 18; + static const FIT_UINT8 MinTemperature = 19; + static const FIT_UINT8 AvgVerticalOscillation = 20; + static const FIT_UINT8 AvgVerticalRatio = 21; + static const FIT_UINT8 AvgStanceTime = 22; + static const FIT_UINT8 AvgStanceTimeBalance = 23; + static const FIT_UINT8 AvgStepLength = 24; + static const FIT_UINT8 AvgPower = 25; + static const FIT_UINT8 MaxPower = 26; + static const FIT_UINT8 NormalizedPower = 27; + static const FIT_UINT8 LeftRightBalance = 28; + static const FIT_UINT8 TimeStanding = 29; + static const FIT_UINT8 AvgLeftPco = 30; + static const FIT_UINT8 AvgRightPco = 31; + static const FIT_UINT8 AvgLeftPowerPhase = 32; + static const FIT_UINT8 AvgLeftPowerPhasePeak = 33; + static const FIT_UINT8 AvgRightPowerPhase = 34; + static const FIT_UINT8 AvgRightPowerPhasePeak = 35; + static const FIT_UINT8 AvgPowerPosition = 36; + static const FIT_UINT8 MaxPowerPosition = 37; + static const FIT_UINT8 AvgLeftTorqueEffectiveness = 38; + static const FIT_UINT8 AvgRightTorqueEffectiveness = 39; + static const FIT_UINT8 AvgLeftPedalSmoothness = 40; + static const FIT_UINT8 AvgRightPedalSmoothness = 41; + static const FIT_UINT8 AvgCombinedPedalSmoothness = 42; + static const FIT_UINT8 AvgFlow = 43; + static const FIT_UINT8 TotalGrit = 44; + static const FIT_UINT8 SwimStroke = 47; + static const FIT_UINT8 NumActiveLengths = 48; + static const FIT_UINT8 AvgSwolf = 49; + static const FIT_UINT8 AvgStrokeDistance = 50; + static const FIT_UINT8 AvgStrokesPerLength = 51; + static const FIT_UINT8 AvgAscent = 52; + static const FIT_UINT8 MaxAscent = 53; + static const FIT_UINT8 ClimbGradingScale = 54; + static const FIT_UINT8 ClimbMaxGradeValue = 55; + static const FIT_UINT8 NumFalls = 56; + static const FIT_UINT8 NumClimbsAttempted = 58; + static const FIT_UINT8 NumClimbsCompleted = 59; + static const FIT_UINT8 MaxDistance = 60; + static const FIT_UINT8 MetabolicCalories = 64; static const FIT_UINT8 ActiveTime = 65; + static const FIT_UINT8 TotalFractionalAscent = 66; + static const FIT_UINT8 TotalFractionalDescent = 67; + static const FIT_UINT8 AvgFractionalAscent = 68; + static const FIT_UINT8 MaxFractionalAscent = 69; + static const FIT_UINT8 AvgGradeAdjustedSpeed = 71; + static const FIT_UINT8 AvgStress = 72; static const FIT_UINT8 TotalMovingTime = 77; + static const FIT_UINT8 StartTime = 79; + static const FIT_UINT8 MinHeartRate = 87; + static const FIT_UINT8 AvgStanceTimePercent = 91; + static const FIT_UINT8 MaxTotalTimerTime = 101; static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID; }; @@ -81,6 +139,39 @@ class SplitSummaryMesg : public Mesg SetFieldUINT16Value(254, messageIndex, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of timestamp field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTimestampValid() const + { + const Field* field = GetField(253); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns timestamp field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_DATE_TIME GetTimestamp(void) const + { + return GetFieldUINT32Value(253, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set timestamp field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTimestamp(FIT_DATE_TIME timestamp) + { + SetFieldUINT32Value(253, timestamp, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of split_type field // Returns FIT_TRUE if field is valid @@ -112,6 +203,68 @@ class SplitSummaryMesg : public Mesg SetFieldENUMValue(0, splitType, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } + /////////////////////////////////////////////////////////////////////// + // Checks the validity of sport field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSportValid() const + { + const Field* field = GetField(1); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns sport field + /////////////////////////////////////////////////////////////////////// + FIT_SPORT GetSport(void) const + { + return GetFieldENUMValue(1, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set sport field + /////////////////////////////////////////////////////////////////////// + void SetSport(FIT_SPORT sport) + { + SetFieldENUMValue(1, sport, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of sub_sport field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSubSportValid() const + { + const Field* field = GetField(2); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns sub_sport field + /////////////////////////////////////////////////////////////////////// + FIT_SUB_SPORT GetSubSport(void) const + { + return GetFieldENUMValue(2, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set sub_sport field + /////////////////////////////////////////////////////////////////////// + void SetSubSport(FIT_SUB_SPORT subSport) + { + SetFieldENUMValue(2, subSport, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + /////////////////////////////////////////////////////////////////////// // Checks the validity of num_splits field // Returns FIT_TRUE if field is valid @@ -474,12 +627,12 @@ class SplitSummaryMesg : public Mesg } /////////////////////////////////////////////////////////////////////// - // Checks the validity of active_time field + // Checks the validity of avg_cadence field // Returns FIT_TRUE if field is valid /////////////////////////////////////////////////////////////////////// - FIT_BOOL IsActiveTimeValid() const + FIT_BOOL IsAvgCadenceValid() const { - const Field* field = GetField(65); + const Field* field = GetField(14); if( FIT_NULL == field ) { return FIT_FALSE; @@ -489,32 +642,188 @@ class SplitSummaryMesg : public Mesg } /////////////////////////////////////////////////////////////////////// - // Returns active_time field - // Units: s - // Comment: total active time in all split rounds + // Returns avg_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - FIT_FLOAT32 GetActiveTime(void) const + FIT_FLOAT32 GetAvgCadence(void) const { - return GetFieldFLOAT32Value(65, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + return GetFieldFLOAT32Value(14, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } /////////////////////////////////////////////////////////////////////// - // Set active_time field - // Units: s - // Comment: total active time in all split rounds + // Set avg_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - void SetActiveTime(FIT_FLOAT32 activeTime) + void SetAvgCadence(FIT_FLOAT32 avgCadence) { - SetFieldFLOAT32Value(65, activeTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + SetFieldFLOAT32Value(14, avgCadence, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } /////////////////////////////////////////////////////////////////////// - // Checks the validity of total_moving_time field + // Checks the validity of avg_running_cadence field // Returns FIT_TRUE if field is valid /////////////////////////////////////////////////////////////////////// - FIT_BOOL IsTotalMovingTimeValid() const + FIT_BOOL IsAvgRunningCadenceValid() const { - const Field* field = GetField(77); + const Field* field = GetField(14); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRunningCadence(void) const + { + return GetFieldFLOAT32Value(14, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + void SetAvgRunningCadence(FIT_FLOAT32 avgRunningCadence) + { + SetFieldFLOAT32Value(14, avgRunningCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwimmingCadenceValid() const + { + const Field* field = GetField(14); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgSwimmingCadence(void) const + { + return GetFieldFLOAT32Value(14, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgSwimmingCadence(FIT_FLOAT32 avgSwimmingCadence) + { + SetFieldFLOAT32Value(14, avgSwimmingCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPaddlesportCadenceValid() const + { + const Field* field = GetField(14); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgPaddlesportCadence(void) const + { + return GetFieldFLOAT32Value(14, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetAvgPaddlesportCadence(FIT_FLOAT32 avgPaddlesportCadence) + { + SetFieldFLOAT32Value(14, avgPaddlesportCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPushCadenceValid() const + { + const Field* field = GetField(14); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in all splits of the type + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPushCadence(void) const + { + return GetFieldUINT16Value(14, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_push_cadence field + // Units: pushes/min + // Comment: average pushes per minute in all splits of the type + /////////////////////////////////////////////////////////////////////// + void SetAvgPushCadence(FIT_UINT16 avgPushCadence) + { + SetFieldUINT16Value(14, avgPushCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_AVG_CADENCE_FIELD_AVG_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxCadenceValid() const + { + const Field* field = GetField(15); if( FIT_NULL == field ) { return FIT_FALSE; @@ -524,21 +833,2625 @@ class SplitSummaryMesg : public Mesg } /////////////////////////////////////////////////////////////////////// - // Returns total_moving_time field - // Units: s + // Returns max_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - FIT_FLOAT32 GetTotalMovingTime(void) const + FIT_FLOAT32 GetMaxCadence(void) const { - return GetFieldFLOAT32Value(77, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + return GetFieldFLOAT32Value(15, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } /////////////////////////////////////////////////////////////////////// - // Set total_moving_time field - // Units: s + // Set max_cadence field + // Units: rpm /////////////////////////////////////////////////////////////////////// - void SetTotalMovingTime(FIT_FLOAT32 totalMovingTime) + void SetMaxCadence(FIT_FLOAT32 maxCadence) { - SetFieldFLOAT32Value(77, totalMovingTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + SetFieldFLOAT32Value(15, maxCadence, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_running_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxRunningCadenceValid() const + { + const Field* field = GetField(15); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxRunningCadence(void) const + { + return GetFieldFLOAT32Value(15, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_running_cadence field + // Units: strides/min + /////////////////////////////////////////////////////////////////////// + void SetMaxRunningCadence(FIT_FLOAT32 maxRunningCadence) + { + SetFieldFLOAT32Value(15, maxRunningCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_swimming_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxSwimmingCadenceValid() const + { + const Field* field = GetField(15); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxSwimmingCadence(void) const + { + return GetFieldFLOAT32Value(15, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_swimming_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxSwimmingCadence(FIT_FLOAT32 maxSwimmingCadence) + { + SetFieldFLOAT32Value(15, maxSwimmingCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_SWIMMING_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_paddlesport_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPaddlesportCadenceValid() const + { + const Field* field = GetField(15); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxPaddlesportCadence(void) const + { + return GetFieldFLOAT32Value(15, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_paddlesport_cadence field + // Units: strokes/min + /////////////////////////////////////////////////////////////////////// + void SetMaxPaddlesportCadence(FIT_FLOAT32 maxPaddlesportCadence) + { + SetFieldFLOAT32Value(15, maxPaddlesportCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PADDLESPORT_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_push_cadence field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPushCadenceValid() const + { + const Field* field = GetField(15); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in all splits of the type + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPushCadence(void) const + { + return GetFieldUINT16Value(15, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_push_cadence field + // Units: pushes/min + // Comment: max pushes per minute in all splits of the type + /////////////////////////////////////////////////////////////////////// + void SetMaxPushCadence(FIT_UINT16 maxPushCadence) + { + SetFieldUINT16Value(15, maxPushCadence, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_MAX_CADENCE_FIELD_MAX_PUSH_CADENCE); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_cycles field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalCyclesValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalCycles(void) const + { + return GetFieldUINT32Value(16, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_cycles field + // Units: cycles + /////////////////////////////////////////////////////////////////////// + void SetTotalCycles(FIT_UINT32 totalCycles) + { + SetFieldUINT32Value(16, totalCycles, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_strides field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalStridesValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_strides field + // Units: strides + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalStrides(void) const + { + return GetFieldUINT32Value(16, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_strides field + // Units: strides + /////////////////////////////////////////////////////////////////////// + void SetTotalStrides(FIT_UINT32 totalStrides) + { + SetFieldUINT32Value(16, totalStrides, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_strokes field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalStrokesValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_strokes field + // Units: strokes + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalStrokes(void) const + { + return GetFieldUINT32Value(16, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_strokes field + // Units: strokes + /////////////////////////////////////////////////////////////////////// + void SetTotalStrokes(FIT_UINT32 totalStrokes) + { + SetFieldUINT32Value(16, totalStrokes, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_reps field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalRepsValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_reps field + // Units: reps + // Comment: total reps in all splits + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalReps(void) const + { + return GetFieldUINT32Value(16, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_reps field + // Units: reps + // Comment: total reps in all splits + /////////////////////////////////////////////////////////////////////// + void SetTotalReps(FIT_UINT32 totalReps) + { + SetFieldUINT32Value(16, totalReps, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_REPS); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_pushes field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalPushesValid() const + { + const Field* field = GetField(16); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns total_pushes field + // Units: pushes + // Comment: total number of pushes in all splits of the type + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetTotalPushes(void) const + { + return GetFieldUINT32Value(16, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_pushes field + // Units: pushes + // Comment: total number of pushes in all splits of the type + /////////////////////////////////////////////////////////////////////// + void SetTotalPushes(FIT_UINT32 totalPushes) + { + SetFieldUINT32Value(16, totalPushes, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_TOTAL_CYCLES_FIELD_TOTAL_PUSHES); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgTemperatureValid() const + { + const Field* field = GetField(17); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgTemperature(void) const + { + return GetFieldSINT8Value(17, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetAvgTemperature(FIT_SINT8 avgTemperature) + { + SetFieldSINT8Value(17, avgTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxTemperatureValid() const + { + const Field* field = GetField(18); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetMaxTemperature(void) const + { + return GetFieldSINT8Value(18, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetMaxTemperature(FIT_SINT8 maxTemperature) + { + SetFieldSINT8Value(18, maxTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_temperature field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinTemperatureValid() const + { + const Field* field = GetField(19); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns min_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetMinTemperature(void) const + { + return GetFieldSINT8Value(19, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_temperature field + // Units: C + /////////////////////////////////////////////////////////////////////// + void SetMinTemperature(FIT_SINT8 minTemperature) + { + SetFieldSINT8Value(19, minTemperature, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_vertical_oscillation field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgVerticalOscillationValid() const + { + const Field* field = GetField(20); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_vertical_oscillation field + // Units: mm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgVerticalOscillation(void) const + { + return GetFieldFLOAT32Value(20, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_vertical_oscillation field + // Units: mm + /////////////////////////////////////////////////////////////////////// + void SetAvgVerticalOscillation(FIT_FLOAT32 avgVerticalOscillation) + { + SetFieldFLOAT32Value(20, avgVerticalOscillation, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_vertical_ratio field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgVerticalRatioValid() const + { + const Field* field = GetField(21); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_vertical_ratio field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgVerticalRatio(void) const + { + return GetFieldFLOAT32Value(21, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_vertical_ratio field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgVerticalRatio(FIT_FLOAT32 avgVerticalRatio) + { + SetFieldFLOAT32Value(21, avgVerticalRatio, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimeValid() const + { + const Field* field = GetField(22); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time field + // Units: ms + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTime(void) const + { + return GetFieldFLOAT32Value(22, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time field + // Units: ms + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTime(FIT_FLOAT32 avgStanceTime) + { + SetFieldFLOAT32Value(22, avgStanceTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time_balance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimeBalanceValid() const + { + const Field* field = GetField(23); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time_balance field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTimeBalance(void) const + { + return GetFieldFLOAT32Value(23, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time_balance field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTimeBalance(FIT_FLOAT32 avgStanceTimeBalance) + { + SetFieldFLOAT32Value(23, avgStanceTimeBalance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_step_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStepLengthValid() const + { + const Field* field = GetField(24); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_step_length field + // Units: mm + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStepLength(void) const + { + return GetFieldFLOAT32Value(24, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_step_length field + // Units: mm + /////////////////////////////////////////////////////////////////////// + void SetAvgStepLength(FIT_FLOAT32 avgStepLength) + { + SetFieldFLOAT32Value(24, avgStepLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPowerValid() const + { + const Field* field = GetField(25); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPower(void) const + { + return GetFieldUINT16Value(25, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetAvgPower(FIT_UINT16 avgPower) + { + SetFieldUINT16Value(25, avgPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPowerValid() const + { + const Field* field = GetField(26); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPower(void) const + { + return GetFieldUINT16Value(26, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetMaxPower(FIT_UINT16 maxPower) + { + SetFieldUINT16Value(26, maxPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of normalized_power field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNormalizedPowerValid() const + { + const Field* field = GetField(27); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns normalized_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNormalizedPower(void) const + { + return GetFieldUINT16Value(27, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set normalized_power field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetNormalizedPower(FIT_UINT16 normalizedPower) + { + SetFieldUINT16Value(27, normalizedPower, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of left_right_balance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsLeftRightBalanceValid() const + { + const Field* field = GetField(28); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns left_right_balance field + // Comment: Total time spent in the standing position + /////////////////////////////////////////////////////////////////////// + FIT_LEFT_RIGHT_BALANCE_100 GetLeftRightBalance(void) const + { + return GetFieldUINT16Value(28, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set left_right_balance field + // Comment: Total time spent in the standing position + /////////////////////////////////////////////////////////////////////// + void SetLeftRightBalance(FIT_LEFT_RIGHT_BALANCE_100 leftRightBalance) + { + SetFieldUINT16Value(28, leftRightBalance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of time_standing field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTimeStandingValid() const + { + const Field* field = GetField(29); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns time_standing field + // Units: s + // Comment: Average left platform center offset + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTimeStanding(void) const + { + return GetFieldFLOAT32Value(29, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set time_standing field + // Units: s + // Comment: Average left platform center offset + /////////////////////////////////////////////////////////////////////// + void SetTimeStanding(FIT_FLOAT32 timeStanding) + { + SetFieldFLOAT32Value(29, timeStanding, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_pco field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPcoValid() const + { + const Field* field = GetField(30); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_pco field + // Units: mm + // Comment: Average right platform center offset + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgLeftPco(void) const + { + return GetFieldSINT8Value(30, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_pco field + // Units: mm + // Comment: Average right platform center offset + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPco(FIT_SINT8 avgLeftPco) + { + SetFieldSINT8Value(30, avgLeftPco, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_pco field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPcoValid() const + { + const Field* field = GetField(31); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_pco field + // Units: mm + // Comment: Average left power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_SINT8 GetAvgRightPco(void) const + { + return GetFieldSINT8Value(31, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_pco field + // Units: mm + // Comment: Average left power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPco(FIT_SINT8 avgRightPco) + { + SetFieldSINT8Value(31, avgRightPco, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_left_power_phase + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgLeftPowerPhase(void) const + { + return GetFieldNumValues(32, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_power_phase field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPowerPhaseValid(FIT_UINT8 index) const + { + const Field* field = GetField(32); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_power_phase field + // Units: degrees + // Comment: Average left power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPowerPhase(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(32, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_power_phase field + // Units: degrees + // Comment: Average left power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPowerPhase(FIT_UINT8 index, FIT_FLOAT32 avgLeftPowerPhase) + { + SetFieldFLOAT32Value(32, avgLeftPowerPhase, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_left_power_phase_peak + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgLeftPowerPhasePeak(void) const + { + return GetFieldNumValues(33, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_power_phase_peak field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPowerPhasePeakValid(FIT_UINT8 index) const + { + const Field* field = GetField(33); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_power_phase_peak field + // Units: degrees + // Comment: Average right power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPowerPhasePeak(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(33, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_power_phase_peak field + // Units: degrees + // Comment: Average right power phase angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPowerPhasePeak(FIT_UINT8 index, FIT_FLOAT32 avgLeftPowerPhasePeak) + { + SetFieldFLOAT32Value(33, avgLeftPowerPhasePeak, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_right_power_phase + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgRightPowerPhase(void) const + { + return GetFieldNumValues(34, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_power_phase field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPowerPhaseValid(FIT_UINT8 index) const + { + const Field* field = GetField(34); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_power_phase field + // Units: degrees + // Comment: Average right power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPowerPhase(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(34, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_power_phase field + // Units: degrees + // Comment: Average right power phase peak angles. Data value indexes defined by power_phase_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPowerPhase(FIT_UINT8 index, FIT_FLOAT32 avgRightPowerPhase) + { + SetFieldFLOAT32Value(34, avgRightPowerPhase, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_right_power_phase_peak + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgRightPowerPhasePeak(void) const + { + return GetFieldNumValues(35, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_power_phase_peak field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPowerPhasePeakValid(FIT_UINT8 index) const + { + const Field* field = GetField(35); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_power_phase_peak field + // Units: degrees + // Comment: Average power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPowerPhasePeak(FIT_UINT8 index) const + { + return GetFieldFLOAT32Value(35, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_power_phase_peak field + // Units: degrees + // Comment: Average power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPowerPhasePeak(FIT_UINT8 index, FIT_FLOAT32 avgRightPowerPhasePeak) + { + SetFieldFLOAT32Value(35, avgRightPowerPhasePeak, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of avg_power_position + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumAvgPowerPosition(void) const + { + return GetFieldNumValues(36, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_power_position field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgPowerPositionValid(FIT_UINT8 index) const + { + const Field* field = GetField(36); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_power_position field + // Units: watts + // Comment: Maximum power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgPowerPosition(FIT_UINT8 index) const + { + return GetFieldUINT16Value(36, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_power_position field + // Units: watts + // Comment: Maximum power by position. Data value indexes defined by rider_position_type. + /////////////////////////////////////////////////////////////////////// + void SetAvgPowerPosition(FIT_UINT8 index, FIT_UINT16 avgPowerPosition) + { + SetFieldUINT16Value(36, avgPowerPosition, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Returns number of max_power_position + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetNumMaxPowerPosition(void) const + { + return GetFieldNumValues(37, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_power_position field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxPowerPositionValid(FIT_UINT8 index) const + { + const Field* field = GetField(37); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(index); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_power_position field + // Units: watts + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxPowerPosition(FIT_UINT8 index) const + { + return GetFieldUINT16Value(37, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_power_position field + // Units: watts + /////////////////////////////////////////////////////////////////////// + void SetMaxPowerPosition(FIT_UINT8 index, FIT_UINT16 maxPowerPosition) + { + SetFieldUINT16Value(37, maxPowerPosition, index, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_torque_effectiveness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftTorqueEffectivenessValid() const + { + const Field* field = GetField(38); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftTorqueEffectiveness(void) const + { + return GetFieldFLOAT32Value(38, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftTorqueEffectiveness(FIT_FLOAT32 avgLeftTorqueEffectiveness) + { + SetFieldFLOAT32Value(38, avgLeftTorqueEffectiveness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_torque_effectiveness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightTorqueEffectivenessValid() const + { + const Field* field = GetField(39); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightTorqueEffectiveness(void) const + { + return GetFieldFLOAT32Value(39, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_torque_effectiveness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgRightTorqueEffectiveness(FIT_FLOAT32 avgRightTorqueEffectiveness) + { + SetFieldFLOAT32Value(39, avgRightTorqueEffectiveness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_left_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgLeftPedalSmoothnessValid() const + { + const Field* field = GetField(40); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_left_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgLeftPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(40, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_left_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgLeftPedalSmoothness(FIT_FLOAT32 avgLeftPedalSmoothness) + { + SetFieldFLOAT32Value(40, avgLeftPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_right_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgRightPedalSmoothnessValid() const + { + const Field* field = GetField(41); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_right_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgRightPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(41, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_right_pedal_smoothness field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgRightPedalSmoothness(FIT_FLOAT32 avgRightPedalSmoothness) + { + SetFieldFLOAT32Value(41, avgRightPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_combined_pedal_smoothness field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgCombinedPedalSmoothnessValid() const + { + const Field* field = GetField(42); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_combined_pedal_smoothness field + // Units: percent + // Comment: The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgCombinedPedalSmoothness(void) const + { + return GetFieldFLOAT32Value(42, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_combined_pedal_smoothness field + // Units: percent + // Comment: The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. + /////////////////////////////////////////////////////////////////////// + void SetAvgCombinedPedalSmoothness(FIT_FLOAT32 avgCombinedPedalSmoothness) + { + SetFieldFLOAT32Value(42, avgCombinedPedalSmoothness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_flow field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgFlowValid() const + { + const Field* field = GetField(43); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_flow field + // Units: Flow + // Comment: The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgFlow(void) const + { + return GetFieldFLOAT32Value(43, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_flow field + // Units: Flow + // Comment: The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. + /////////////////////////////////////////////////////////////////////// + void SetAvgFlow(FIT_FLOAT32 avgFlow) + { + SetFieldFLOAT32Value(43, avgFlow, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_grit field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalGritValid() const + { + const Field* field = GetField(44); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_grit field + // Units: kGrit + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalGrit(void) const + { + return GetFieldFLOAT32Value(44, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_grit field + // Units: kGrit + /////////////////////////////////////////////////////////////////////// + void SetTotalGrit(FIT_FLOAT32 totalGrit) + { + SetFieldFLOAT32Value(44, totalGrit, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of swim_stroke field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsSwimStrokeValid() const + { + const Field* field = GetField(47); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns swim_stroke field + // Comment: # of active lengths of swim pool + /////////////////////////////////////////////////////////////////////// + FIT_SWIM_STROKE GetSwimStroke(void) const + { + return GetFieldENUMValue(47, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set swim_stroke field + // Comment: # of active lengths of swim pool + /////////////////////////////////////////////////////////////////////// + void SetSwimStroke(FIT_SWIM_STROKE swimStroke) + { + SetFieldENUMValue(47, swimStroke, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_active_lengths field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumActiveLengthsValid() const + { + const Field* field = GetField(48); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_active_lengths field + // Units: lengths + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumActiveLengths(void) const + { + return GetFieldUINT16Value(48, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_active_lengths field + // Units: lengths + /////////////////////////////////////////////////////////////////////// + void SetNumActiveLengths(FIT_UINT16 numActiveLengths) + { + SetFieldUINT16Value(48, numActiveLengths, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_swolf field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgSwolfValid() const + { + const Field* field = GetField(49); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_swolf field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgSwolf(void) const + { + return GetFieldUINT16Value(49, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_swolf field + /////////////////////////////////////////////////////////////////////// + void SetAvgSwolf(FIT_UINT16 avgSwolf) + { + SetFieldUINT16Value(49, avgSwolf, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stroke_distance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokeDistanceValid() const + { + const Field* field = GetField(50); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stroke_distance field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokeDistance(void) const + { + return GetFieldFLOAT32Value(50, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stroke_distance field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokeDistance(FIT_FLOAT32 avgStrokeDistance) + { + SetFieldFLOAT32Value(50, avgStrokeDistance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_strokes_per_length field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStrokesPerLengthValid() const + { + const Field* field = GetField(51); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStrokesPerLength(void) const + { + return GetFieldFLOAT32Value(51, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_strokes_per_length field + // Units: strokes / length + /////////////////////////////////////////////////////////////////////// + void SetAvgStrokesPerLength(FIT_FLOAT32 avgStrokesPerLength) + { + SetFieldFLOAT32Value(51, avgStrokesPerLength, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgAscentValid() const + { + const Field* field = GetField(52); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_ascent field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgAscent(void) const + { + return GetFieldUINT16Value(52, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_ascent field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetAvgAscent(FIT_UINT16 avgAscent) + { + SetFieldUINT16Value(52, avgAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxAscentValid() const + { + const Field* field = GetField(53); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_ascent field + // Units: m + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMaxAscent(void) const + { + return GetFieldUINT16Value(53, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_ascent field + // Units: m + /////////////////////////////////////////////////////////////////////// + void SetMaxAscent(FIT_UINT16 maxAscent) + { + SetFieldUINT16Value(53, maxAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_grading_scale field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbGradingScaleValid() const + { + const Field* field = GetField(54); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns climb_grading_scale field + /////////////////////////////////////////////////////////////////////// + FIT_CLIMB_GRADING_SCALE GetClimbGradingScale(void) const + { + return GetFieldENUMValue(54, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_grading_scale field + /////////////////////////////////////////////////////////////////////// + void SetClimbGradingScale(FIT_CLIMB_GRADING_SCALE climbGradingScale) + { + SetFieldENUMValue(54, climbGradingScale, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_value field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeValueValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_value field + /////////////////////////////////////////////////////////////////////// + FIT_UINT32 GetClimbMaxGradeValue(void) const + { + return GetFieldUINT32Value(55, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_value field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeValue(FIT_UINT32 climbMaxGradeValue) + { + SetFieldUINT32Value(55, climbMaxGradeValue, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_yds field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeYdsValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_YDS ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_YDS); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_yds field + /////////////////////////////////////////////////////////////////////// + FIT_YDS_GRADING_SCALE GetClimbMaxGradeYds(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_YDS); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_yds field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeYds(FIT_YDS_GRADING_SCALE climbMaxGradeYds) + { + SetFieldENUMValue(55, climbMaxGradeYds, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_YDS); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_uiaa field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeUiaaValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_UIAA ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_UIAA); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_uiaa field + /////////////////////////////////////////////////////////////////////// + FIT_UIAA_GRADING_SCALE GetClimbMaxGradeUiaa(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_UIAA); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_uiaa field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeUiaa(FIT_UIAA_GRADING_SCALE climbMaxGradeUiaa) + { + SetFieldENUMValue(55, climbMaxGradeUiaa, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_UIAA); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_french field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeFrenchValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FRENCH ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FRENCH); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_french field + /////////////////////////////////////////////////////////////////////// + FIT_FRENCH_GRADING_SCALE GetClimbMaxGradeFrench(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FRENCH); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_french field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeFrench(FIT_FRENCH_GRADING_SCALE climbMaxGradeFrench) + { + SetFieldENUMValue(55, climbMaxGradeFrench, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FRENCH); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_british_adjectival field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeBritishAdjectivalValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_ADJECTIVAL ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_ADJECTIVAL); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_british_adjectival field + /////////////////////////////////////////////////////////////////////// + FIT_BRITISH_ADJECTIVAL_GRADING_SCALE GetClimbMaxGradeBritishAdjectival(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_ADJECTIVAL); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_british_adjectival field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeBritishAdjectival(FIT_BRITISH_ADJECTIVAL_GRADING_SCALE climbMaxGradeBritishAdjectival) + { + SetFieldENUMValue(55, climbMaxGradeBritishAdjectival, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_ADJECTIVAL); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_british_technical field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeBritishTechnicalValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_TECHNICAL ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_TECHNICAL); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_british_technical field + /////////////////////////////////////////////////////////////////////// + FIT_BRITISH_TECHNICAL_GRADING_SCALE GetClimbMaxGradeBritishTechnical(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_TECHNICAL); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_british_technical field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeBritishTechnical(FIT_BRITISH_TECHNICAL_GRADING_SCALE climbMaxGradeBritishTechnical) + { + SetFieldENUMValue(55, climbMaxGradeBritishTechnical, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRITISH_TECHNICAL); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_ewbank field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeEwbankValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_EWBANK ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_EWBANK); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_ewbank field + /////////////////////////////////////////////////////////////////////// + FIT_EWBANK_GRADING_SCALE GetClimbMaxGradeEwbank(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_EWBANK); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_ewbank field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeEwbank(FIT_EWBANK_GRADING_SCALE climbMaxGradeEwbank) + { + SetFieldENUMValue(55, climbMaxGradeEwbank, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_EWBANK); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_brazilian field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeBrazilianValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRAZILIAN ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRAZILIAN); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_brazilian field + /////////////////////////////////////////////////////////////////////// + FIT_BRAZILIAN_GRADING_SCALE GetClimbMaxGradeBrazilian(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRAZILIAN); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_brazilian field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeBrazilian(FIT_BRAZILIAN_GRADING_SCALE climbMaxGradeBrazilian) + { + SetFieldENUMValue(55, climbMaxGradeBrazilian, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_BRAZILIAN); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_saxon field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeSaxonValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_SAXON ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_SAXON); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_saxon field + /////////////////////////////////////////////////////////////////////// + FIT_SAXON_GRADING_SCALE GetClimbMaxGradeSaxon(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_SAXON); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_saxon field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeSaxon(FIT_SAXON_GRADING_SCALE climbMaxGradeSaxon) + { + SetFieldENUMValue(55, climbMaxGradeSaxon, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_SAXON); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_vermin field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeVerminValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_VERMIN ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_VERMIN); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_vermin field + /////////////////////////////////////////////////////////////////////// + FIT_VERMIN_GRADING_SCALE GetClimbMaxGradeVermin(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_VERMIN); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_vermin field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeVermin(FIT_VERMIN_GRADING_SCALE climbMaxGradeVermin) + { + SetFieldENUMValue(55, climbMaxGradeVermin, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_VERMIN); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_font field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeFontValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FONT ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FONT); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_font field + /////////////////////////////////////////////////////////////////////// + FIT_FONT_GRADING_SCALE GetClimbMaxGradeFont(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FONT); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_font field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeFont(FIT_FONT_GRADING_SCALE climbMaxGradeFont) + { + SetFieldENUMValue(55, climbMaxGradeFont, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_FONT); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of climb_max_grade_dankyu field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsClimbMaxGradeDankyuValid() const + { + const Field* field = GetField(55); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + if( !CanSupportSubField( field, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_DANKYU ) ) + { + return FIT_FALSE; + } + + return field->IsValueValid(0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_DANKYU); + } + + + /////////////////////////////////////////////////////////////////////// + // Returns climb_max_grade_dankyu field + /////////////////////////////////////////////////////////////////////// + FIT_DANKYU_GRADING_SCALE GetClimbMaxGradeDankyu(void) const + { + return GetFieldENUMValue(55, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_DANKYU); + } + + /////////////////////////////////////////////////////////////////////// + // Set climb_max_grade_dankyu field + /////////////////////////////////////////////////////////////////////// + void SetClimbMaxGradeDankyu(FIT_DANKYU_GRADING_SCALE climbMaxGradeDankyu) + { + SetFieldENUMValue(55, climbMaxGradeDankyu, 0, (FIT_UINT16) Profile::SPLIT_SUMMARY_MESG_CLIMB_MAX_GRADE_VALUE_FIELD_CLIMB_MAX_GRADE_DANKYU); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_falls field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumFallsValid() const + { + const Field* field = GetField(56); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_falls field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumFalls(void) const + { + return GetFieldUINT16Value(56, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_falls field + /////////////////////////////////////////////////////////////////////// + void SetNumFalls(FIT_UINT16 numFalls) + { + SetFieldUINT16Value(56, numFalls, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_climbs_attempted field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumClimbsAttemptedValid() const + { + const Field* field = GetField(58); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_climbs_attempted field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumClimbsAttempted(void) const + { + return GetFieldUINT16Value(58, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_climbs_attempted field + /////////////////////////////////////////////////////////////////////// + void SetNumClimbsAttempted(FIT_UINT16 numClimbsAttempted) + { + SetFieldUINT16Value(58, numClimbsAttempted, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of num_climbs_completed field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsNumClimbsCompletedValid() const + { + const Field* field = GetField(59); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns num_climbs_completed field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetNumClimbsCompleted(void) const + { + return GetFieldUINT16Value(59, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set num_climbs_completed field + /////////////////////////////////////////////////////////////////////// + void SetNumClimbsCompleted(FIT_UINT16 numClimbsCompleted) + { + SetFieldUINT16Value(59, numClimbsCompleted, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_distance field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxDistanceValid() const + { + const Field* field = GetField(60); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_distance field + // Units: m + // Comment: Distance of the longest split + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxDistance(void) const + { + return GetFieldFLOAT32Value(60, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_distance field + // Units: m + // Comment: Distance of the longest split + /////////////////////////////////////////////////////////////////////// + void SetMaxDistance(FIT_FLOAT32 maxDistance) + { + SetFieldFLOAT32Value(60, maxDistance, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of metabolic_calories field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMetabolicCaloriesValid() const + { + const Field* field = GetField(64); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetMetabolicCalories(void) const + { + return GetFieldUINT16Value(64, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set metabolic_calories field + // Units: kcal + /////////////////////////////////////////////////////////////////////// + void SetMetabolicCalories(FIT_UINT16 metabolicCalories) + { + SetFieldUINT16Value(64, metabolicCalories, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of active_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsActiveTimeValid() const + { + const Field* field = GetField(65); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns active_time field + // Units: s + // Comment: total active time in all split rounds + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetActiveTime(void) const + { + return GetFieldFLOAT32Value(65, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set active_time field + // Units: s + // Comment: total active time in all split rounds + /////////////////////////////////////////////////////////////////////// + void SetActiveTime(FIT_FLOAT32 activeTime) + { + SetFieldFLOAT32Value(65, activeTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_fractional_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalFractionalAscentValid() const + { + const Field* field = GetField(66); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_fractional_ascent field + // Units: m + // Comment: fractional part of total_ascent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalFractionalAscent(void) const + { + return GetFieldFLOAT32Value(66, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_fractional_ascent field + // Units: m + // Comment: fractional part of total_ascent + /////////////////////////////////////////////////////////////////////// + void SetTotalFractionalAscent(FIT_FLOAT32 totalFractionalAscent) + { + SetFieldFLOAT32Value(66, totalFractionalAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_fractional_descent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalFractionalDescentValid() const + { + const Field* field = GetField(67); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_fractional_descent field + // Units: m + // Comment: fractional part of total_descent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalFractionalDescent(void) const + { + return GetFieldFLOAT32Value(67, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_fractional_descent field + // Units: m + // Comment: fractional part of total_descent + /////////////////////////////////////////////////////////////////////// + void SetTotalFractionalDescent(FIT_FLOAT32 totalFractionalDescent) + { + SetFieldFLOAT32Value(67, totalFractionalDescent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_fractional_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgFractionalAscentValid() const + { + const Field* field = GetField(68); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_fractional_ascent field + // Units: m + // Comment: fractional part of avg_ascent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgFractionalAscent(void) const + { + return GetFieldFLOAT32Value(68, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_fractional_ascent field + // Units: m + // Comment: fractional part of avg_ascent + /////////////////////////////////////////////////////////////////////// + void SetAvgFractionalAscent(FIT_FLOAT32 avgFractionalAscent) + { + SetFieldFLOAT32Value(68, avgFractionalAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_fractional_ascent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxFractionalAscentValid() const + { + const Field* field = GetField(69); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_fractional_ascent field + // Units: m + // Comment: fractional part of max_descent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxFractionalAscent(void) const + { + return GetFieldFLOAT32Value(69, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_fractional_ascent field + // Units: m + // Comment: fractional part of max_descent + /////////////////////////////////////////////////////////////////////// + void SetMaxFractionalAscent(FIT_FLOAT32 maxFractionalAscent) + { + SetFieldFLOAT32Value(69, maxFractionalAscent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_grade_adjusted_speed field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgGradeAdjustedSpeedValid() const + { + const Field* field = GetField(71); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgGradeAdjustedSpeed(void) const + { + return GetFieldFLOAT32Value(71, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_grade_adjusted_speed field + // Units: m/s + /////////////////////////////////////////////////////////////////////// + void SetAvgGradeAdjustedSpeed(FIT_FLOAT32 avgGradeAdjustedSpeed) + { + SetFieldFLOAT32Value(71, avgGradeAdjustedSpeed, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stress field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStressValid() const + { + const Field* field = GetField(72); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stress field + /////////////////////////////////////////////////////////////////////// + FIT_UINT16 GetAvgStress(void) const + { + return GetFieldUINT16Value(72, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stress field + /////////////////////////////////////////////////////////////////////// + void SetAvgStress(FIT_UINT16 avgStress) + { + SetFieldUINT16Value(72, avgStress, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of total_moving_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsTotalMovingTimeValid() const + { + const Field* field = GetField(77); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns total_moving_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetTotalMovingTime(void) const + { + return GetFieldFLOAT32Value(77, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set total_moving_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetTotalMovingTime(FIT_FLOAT32 totalMovingTime) + { + SetFieldFLOAT32Value(77, totalMovingTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of start_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsStartTimeValid() const + { + const Field* field = GetField(79); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns start_time field + /////////////////////////////////////////////////////////////////////// + FIT_DATE_TIME GetStartTime(void) const + { + return GetFieldUINT32Value(79, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set start_time field + /////////////////////////////////////////////////////////////////////// + void SetStartTime(FIT_DATE_TIME startTime) + { + SetFieldUINT32Value(79, startTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of min_heart_rate field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMinHeartRateValid() const + { + const Field* field = GetField(87); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns min_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + FIT_UINT8 GetMinHeartRate(void) const + { + return GetFieldUINT8Value(87, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set min_heart_rate field + // Units: bpm + /////////////////////////////////////////////////////////////////////// + void SetMinHeartRate(FIT_UINT8 minHeartRate) + { + SetFieldUINT8Value(87, minHeartRate, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of avg_stance_time_percent field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsAvgStanceTimePercentValid() const + { + const Field* field = GetField(91); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns avg_stance_time_percent field + // Units: percent + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetAvgStanceTimePercent(void) const + { + return GetFieldFLOAT32Value(91, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set avg_stance_time_percent field + // Units: percent + /////////////////////////////////////////////////////////////////////// + void SetAvgStanceTimePercent(FIT_FLOAT32 avgStanceTimePercent) + { + SetFieldFLOAT32Value(91, avgStanceTimePercent, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Checks the validity of max_total_timer_time field + // Returns FIT_TRUE if field is valid + /////////////////////////////////////////////////////////////////////// + FIT_BOOL IsMaxTotalTimerTimeValid() const + { + const Field* field = GetField(101); + if( FIT_NULL == field ) + { + return FIT_FALSE; + } + + return field->IsValueValid(); + } + + /////////////////////////////////////////////////////////////////////// + // Returns max_total_timer_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + FIT_FLOAT32 GetMaxTotalTimerTime(void) const + { + return GetFieldFLOAT32Value(101, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); + } + + /////////////////////////////////////////////////////////////////////// + // Set max_total_timer_time field + // Units: s + /////////////////////////////////////////////////////////////////////// + void SetMaxTotalTimerTime(FIT_FLOAT32 maxTotalTimerTime) + { + SetFieldFLOAT32Value(101, maxTotalTimerTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD); } }; diff --git a/src/fit_split_summary_mesg_listener.hpp b/src/fit_split_summary_mesg_listener.hpp index 161f0c8..7cb235d 100644 --- a/src/fit_split_summary_mesg_listener.hpp +++ b/src/fit_split_summary_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_spo2_data_mesg.hpp b/src/fit_spo2_data_mesg.hpp index 5166e37..6d64e90 100644 --- a/src/fit_spo2_data_mesg.hpp +++ b/src/fit_spo2_data_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_spo2_data_mesg_listener.hpp b/src/fit_spo2_data_mesg_listener.hpp index fe1aea6..2735cf2 100644 --- a/src/fit_spo2_data_mesg_listener.hpp +++ b/src/fit_spo2_data_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sport_mesg.hpp b/src/fit_sport_mesg.hpp index c607f6e..94c575b 100644 --- a/src/fit_sport_mesg.hpp +++ b/src/fit_sport_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_sport_mesg_listener.hpp b/src/fit_sport_mesg_listener.hpp index 6d062f1..530017c 100644 --- a/src/fit_sport_mesg_listener.hpp +++ b/src/fit_sport_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_stress_level_mesg.hpp b/src/fit_stress_level_mesg.hpp index 65c0a63..ddd251d 100644 --- a/src/fit_stress_level_mesg.hpp +++ b/src/fit_stress_level_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_stress_level_mesg_listener.hpp b/src/fit_stress_level_mesg_listener.hpp index f91d2c4..175ed0b 100644 --- a/src/fit_stress_level_mesg_listener.hpp +++ b/src/fit_stress_level_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_tank_summary_mesg.hpp b/src/fit_tank_summary_mesg.hpp index 05595ca..9441346 100644 --- a/src/fit_tank_summary_mesg.hpp +++ b/src/fit_tank_summary_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_tank_summary_mesg_listener.hpp b/src/fit_tank_summary_mesg_listener.hpp index 5317504..16aa3ff 100644 --- a/src/fit_tank_summary_mesg_listener.hpp +++ b/src/fit_tank_summary_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_tank_update_mesg.hpp b/src/fit_tank_update_mesg.hpp index 3cfa5b9..e2e87dd 100644 --- a/src/fit_tank_update_mesg.hpp +++ b/src/fit_tank_update_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_tank_update_mesg_listener.hpp b/src/fit_tank_update_mesg_listener.hpp index 00688b5..9aa4e99 100644 --- a/src/fit_tank_update_mesg_listener.hpp +++ b/src/fit_tank_update_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_three_d_sensor_calibration_mesg.hpp b/src/fit_three_d_sensor_calibration_mesg.hpp index e8c5837..a1d2a01 100644 --- a/src/fit_three_d_sensor_calibration_mesg.hpp +++ b/src/fit_three_d_sensor_calibration_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_three_d_sensor_calibration_mesg_listener.hpp b/src/fit_three_d_sensor_calibration_mesg_listener.hpp index d6e2a56..3cfe669 100644 --- a/src/fit_three_d_sensor_calibration_mesg_listener.hpp +++ b/src/fit_three_d_sensor_calibration_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_time_in_zone_mesg.hpp b/src/fit_time_in_zone_mesg.hpp index 1d522e5..9c4c71c 100644 --- a/src/fit_time_in_zone_mesg.hpp +++ b/src/fit_time_in_zone_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_time_in_zone_mesg_listener.hpp b/src/fit_time_in_zone_mesg_listener.hpp index f94113d..daea586 100644 --- a/src/fit_time_in_zone_mesg_listener.hpp +++ b/src/fit_time_in_zone_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_timestamp_correlation_mesg.hpp b/src/fit_timestamp_correlation_mesg.hpp index eda461e..0e2b443 100644 --- a/src/fit_timestamp_correlation_mesg.hpp +++ b/src/fit_timestamp_correlation_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_timestamp_correlation_mesg_listener.hpp b/src/fit_timestamp_correlation_mesg_listener.hpp index a0abf92..fbce8c5 100644 --- a/src/fit_timestamp_correlation_mesg_listener.hpp +++ b/src/fit_timestamp_correlation_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_totals_mesg.hpp b/src/fit_totals_mesg.hpp index ab345b8..5c942ae 100644 --- a/src/fit_totals_mesg.hpp +++ b/src/fit_totals_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_totals_mesg_listener.hpp b/src/fit_totals_mesg_listener.hpp index 738b6c5..629ee37 100644 --- a/src/fit_totals_mesg_listener.hpp +++ b/src/fit_totals_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_training_file_mesg.hpp b/src/fit_training_file_mesg.hpp index 74814fa..8864ea6 100644 --- a/src/fit_training_file_mesg.hpp +++ b/src/fit_training_file_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_training_file_mesg_listener.hpp b/src/fit_training_file_mesg_listener.hpp index ac28875..251d14c 100644 --- a/src/fit_training_file_mesg_listener.hpp +++ b/src/fit_training_file_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_training_settings_mesg.hpp b/src/fit_training_settings_mesg.hpp index a026616..cafa93e 100644 --- a/src/fit_training_settings_mesg.hpp +++ b/src/fit_training_settings_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_training_settings_mesg_listener.hpp b/src/fit_training_settings_mesg_listener.hpp index 5dbb53a..f866aa5 100644 --- a/src/fit_training_settings_mesg_listener.hpp +++ b/src/fit_training_settings_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_unicode.cpp b/src/fit_unicode.cpp index d4c1009..0384fa2 100644 --- a/src/fit_unicode.cpp +++ b/src/fit_unicode.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_unicode.hpp b/src/fit_unicode.hpp index 56666b1..8ff35db 100644 --- a/src/fit_unicode.hpp +++ b/src/fit_unicode.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_user_profile_mesg.hpp b/src/fit_user_profile_mesg.hpp index 13519f4..b545a70 100644 --- a/src/fit_user_profile_mesg.hpp +++ b/src/fit_user_profile_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_user_profile_mesg_listener.hpp b/src/fit_user_profile_mesg_listener.hpp index 3935062..dabc124 100644 --- a/src/fit_user_profile_mesg_listener.hpp +++ b/src/fit_user_profile_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_clip_mesg.hpp b/src/fit_video_clip_mesg.hpp index 39bf1ab..f2856ba 100644 --- a/src/fit_video_clip_mesg.hpp +++ b/src/fit_video_clip_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_clip_mesg_listener.hpp b/src/fit_video_clip_mesg_listener.hpp index 376ae6b..1a3a18a 100644 --- a/src/fit_video_clip_mesg_listener.hpp +++ b/src/fit_video_clip_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_description_mesg.hpp b/src/fit_video_description_mesg.hpp index 06f9eaf..f9fa271 100644 --- a/src/fit_video_description_mesg.hpp +++ b/src/fit_video_description_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_description_mesg_listener.hpp b/src/fit_video_description_mesg_listener.hpp index 9a8cfe4..320f4bc 100644 --- a/src/fit_video_description_mesg_listener.hpp +++ b/src/fit_video_description_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_frame_mesg.hpp b/src/fit_video_frame_mesg.hpp index 059f5c4..241092e 100644 --- a/src/fit_video_frame_mesg.hpp +++ b/src/fit_video_frame_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_frame_mesg_listener.hpp b/src/fit_video_frame_mesg_listener.hpp index 6a4b79d..4ccd50f 100644 --- a/src/fit_video_frame_mesg_listener.hpp +++ b/src/fit_video_frame_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_mesg.hpp b/src/fit_video_mesg.hpp index 108ae0d..3815f45 100644 --- a/src/fit_video_mesg.hpp +++ b/src/fit_video_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_mesg_listener.hpp b/src/fit_video_mesg_listener.hpp index b9fa862..8bd23d7 100644 --- a/src/fit_video_mesg_listener.hpp +++ b/src/fit_video_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_title_mesg.hpp b/src/fit_video_title_mesg.hpp index cb10f47..fcc2e0c 100644 --- a/src/fit_video_title_mesg.hpp +++ b/src/fit_video_title_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_video_title_mesg_listener.hpp b/src/fit_video_title_mesg_listener.hpp index 19b7fef..ef392c5 100644 --- a/src/fit_video_title_mesg_listener.hpp +++ b/src/fit_video_title_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_watchface_settings_mesg.hpp b/src/fit_watchface_settings_mesg.hpp index 8c8bd18..dbc4e00 100644 --- a/src/fit_watchface_settings_mesg.hpp +++ b/src/fit_watchface_settings_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_watchface_settings_mesg_listener.hpp b/src/fit_watchface_settings_mesg_listener.hpp index e11c993..9108e03 100644 --- a/src/fit_watchface_settings_mesg_listener.hpp +++ b/src/fit_watchface_settings_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weather_alert_mesg.hpp b/src/fit_weather_alert_mesg.hpp index 1d4490e..b198c14 100644 --- a/src/fit_weather_alert_mesg.hpp +++ b/src/fit_weather_alert_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weather_alert_mesg_listener.hpp b/src/fit_weather_alert_mesg_listener.hpp index d1d5124..3f95dd5 100644 --- a/src/fit_weather_alert_mesg_listener.hpp +++ b/src/fit_weather_alert_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weather_conditions_mesg.hpp b/src/fit_weather_conditions_mesg.hpp index b5c0a7a..3c21f42 100644 --- a/src/fit_weather_conditions_mesg.hpp +++ b/src/fit_weather_conditions_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weather_conditions_mesg_listener.hpp b/src/fit_weather_conditions_mesg_listener.hpp index 6665fed..5c2a9e2 100644 --- a/src/fit_weather_conditions_mesg_listener.hpp +++ b/src/fit_weather_conditions_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weight_scale_mesg.hpp b/src/fit_weight_scale_mesg.hpp index 56b3823..9b357c0 100644 --- a/src/fit_weight_scale_mesg.hpp +++ b/src/fit_weight_scale_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_weight_scale_mesg_listener.hpp b/src/fit_weight_scale_mesg_listener.hpp index 1998c84..982e892 100644 --- a/src/fit_weight_scale_mesg_listener.hpp +++ b/src/fit_weight_scale_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_mesg.hpp b/src/fit_workout_mesg.hpp index 7588700..d2ee209 100644 --- a/src/fit_workout_mesg.hpp +++ b/src/fit_workout_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_mesg_listener.hpp b/src/fit_workout_mesg_listener.hpp index faa8d70..11e3ed3 100644 --- a/src/fit_workout_mesg_listener.hpp +++ b/src/fit_workout_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_session_mesg.hpp b/src/fit_workout_session_mesg.hpp index fccf14c..2352f84 100644 --- a/src/fit_workout_session_mesg.hpp +++ b/src/fit_workout_session_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_session_mesg_listener.hpp b/src/fit_workout_session_mesg_listener.hpp index 904ad86..87dbcc3 100644 --- a/src/fit_workout_session_mesg_listener.hpp +++ b/src/fit_workout_session_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_step_mesg.hpp b/src/fit_workout_step_mesg.hpp index 26e54f2..614be96 100644 --- a/src/fit_workout_step_mesg.hpp +++ b/src/fit_workout_step_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_workout_step_mesg_listener.hpp b/src/fit_workout_step_mesg_listener.hpp index d635e96..3091a61 100644 --- a/src/fit_workout_step_mesg_listener.hpp +++ b/src/fit_workout_step_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_zones_target_mesg.hpp b/src/fit_zones_target_mesg.hpp index 3d8775a..9cf1b4f 100644 --- a/src/fit_zones_target_mesg.hpp +++ b/src/fit_zones_target_mesg.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/fit_zones_target_mesg_listener.hpp b/src/fit_zones_target_mesg_listener.hpp index 2e26ba5..9c031b5 100644 --- a/src/fit_zones_target_mesg_listener.hpp +++ b/src/fit_zones_target_mesg_listener.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/plugins/fit_hr_to_record_message_plugin.cpp b/src/plugins/fit_hr_to_record_message_plugin.cpp index 414ec9d..2bad54c 100644 --- a/src/plugins/fit_hr_to_record_message_plugin.cpp +++ b/src/plugins/fit_hr_to_record_message_plugin.cpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 ///////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/plugins/fit_hr_to_record_message_plugin.hpp b/src/plugins/fit_hr_to_record_message_plugin.hpp index 6c2992c..028686c 100644 --- a/src/plugins/fit_hr_to_record_message_plugin.hpp +++ b/src/plugins/fit_hr_to_record_message_plugin.hpp @@ -5,8 +5,8 @@ // Transfer (FIT) Protocol License. ///////////////////////////////////////////////////////////////////////////////////////////// // ****WARNING**** This file is auto-generated! Do NOT edit this file. -// Profile Version = 21.214.0Release -// Tag = production/release/21.214.0-0-g47b86b1f +// Profile Version = 21.217.0Release +// Tag = production/release/21.217.0-0-g248b1c46 /////////////////////////////////////////////////////////////////////////////////////////////