All Downloads are FREE. Search and download functionalities are using the official Maven repository.

t.21.120.2.source-code.SessionMesg Maven / Gradle / Ivy

There is a newer version: 21.141.0
Show newest version
/////////////////////////////////////////////////////////////////////////////////////////////
// Copyright 2023 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.120Release
// Tag = production/release/21.120.00-0-g2d77811
/////////////////////////////////////////////////////////////////////////////////////////////


package com.garmin.fit;



public class SessionMesg extends Mesg implements MesgWithEvent   {

    
    public static final int MessageIndexFieldNum = 254;
    
    public static final int TimestampFieldNum = 253;
    
    public static final int EventFieldNum = 0;
    
    public static final int EventTypeFieldNum = 1;
    
    public static final int StartTimeFieldNum = 2;
    
    public static final int StartPositionLatFieldNum = 3;
    
    public static final int StartPositionLongFieldNum = 4;
    
    public static final int SportFieldNum = 5;
    
    public static final int SubSportFieldNum = 6;
    
    public static final int TotalElapsedTimeFieldNum = 7;
    
    public static final int TotalTimerTimeFieldNum = 8;
    
    public static final int TotalDistanceFieldNum = 9;
    
    public static final int TotalCyclesFieldNum = 10;
    
    public static final int TotalCaloriesFieldNum = 11;
    
    public static final int TotalFatCaloriesFieldNum = 13;
    
    public static final int AvgSpeedFieldNum = 14;
    
    public static final int MaxSpeedFieldNum = 15;
    
    public static final int AvgHeartRateFieldNum = 16;
    
    public static final int MaxHeartRateFieldNum = 17;
    
    public static final int AvgCadenceFieldNum = 18;
    
    public static final int MaxCadenceFieldNum = 19;
    
    public static final int AvgPowerFieldNum = 20;
    
    public static final int MaxPowerFieldNum = 21;
    
    public static final int TotalAscentFieldNum = 22;
    
    public static final int TotalDescentFieldNum = 23;
    
    public static final int TotalTrainingEffectFieldNum = 24;
    
    public static final int FirstLapIndexFieldNum = 25;
    
    public static final int NumLapsFieldNum = 26;
    
    public static final int EventGroupFieldNum = 27;
    
    public static final int TriggerFieldNum = 28;
    
    public static final int NecLatFieldNum = 29;
    
    public static final int NecLongFieldNum = 30;
    
    public static final int SwcLatFieldNum = 31;
    
    public static final int SwcLongFieldNum = 32;
    
    public static final int NumLengthsFieldNum = 33;
    
    public static final int NormalizedPowerFieldNum = 34;
    
    public static final int TrainingStressScoreFieldNum = 35;
    
    public static final int IntensityFactorFieldNum = 36;
    
    public static final int LeftRightBalanceFieldNum = 37;
    
    public static final int EndPositionLatFieldNum = 38;
    
    public static final int EndPositionLongFieldNum = 39;
    
    public static final int AvgStrokeCountFieldNum = 41;
    
    public static final int AvgStrokeDistanceFieldNum = 42;
    
    public static final int SwimStrokeFieldNum = 43;
    
    public static final int PoolLengthFieldNum = 44;
    
    public static final int ThresholdPowerFieldNum = 45;
    
    public static final int PoolLengthUnitFieldNum = 46;
    
    public static final int NumActiveLengthsFieldNum = 47;
    
    public static final int TotalWorkFieldNum = 48;
    
    public static final int AvgAltitudeFieldNum = 49;
    
    public static final int MaxAltitudeFieldNum = 50;
    
    public static final int GpsAccuracyFieldNum = 51;
    
    public static final int AvgGradeFieldNum = 52;
    
    public static final int AvgPosGradeFieldNum = 53;
    
    public static final int AvgNegGradeFieldNum = 54;
    
    public static final int MaxPosGradeFieldNum = 55;
    
    public static final int MaxNegGradeFieldNum = 56;
    
    public static final int AvgTemperatureFieldNum = 57;
    
    public static final int MaxTemperatureFieldNum = 58;
    
    public static final int TotalMovingTimeFieldNum = 59;
    
    public static final int AvgPosVerticalSpeedFieldNum = 60;
    
    public static final int AvgNegVerticalSpeedFieldNum = 61;
    
    public static final int MaxPosVerticalSpeedFieldNum = 62;
    
    public static final int MaxNegVerticalSpeedFieldNum = 63;
    
    public static final int MinHeartRateFieldNum = 64;
    
    public static final int TimeInHrZoneFieldNum = 65;
    
    public static final int TimeInSpeedZoneFieldNum = 66;
    
    public static final int TimeInCadenceZoneFieldNum = 67;
    
    public static final int TimeInPowerZoneFieldNum = 68;
    
    public static final int AvgLapTimeFieldNum = 69;
    
    public static final int BestLapIndexFieldNum = 70;
    
    public static final int MinAltitudeFieldNum = 71;
    
    public static final int PlayerScoreFieldNum = 82;
    
    public static final int OpponentScoreFieldNum = 83;
    
    public static final int OpponentNameFieldNum = 84;
    
    public static final int StrokeCountFieldNum = 85;
    
    public static final int ZoneCountFieldNum = 86;
    
    public static final int MaxBallSpeedFieldNum = 87;
    
    public static final int AvgBallSpeedFieldNum = 88;
    
    public static final int AvgVerticalOscillationFieldNum = 89;
    
    public static final int AvgStanceTimePercentFieldNum = 90;
    
    public static final int AvgStanceTimeFieldNum = 91;
    
    public static final int AvgFractionalCadenceFieldNum = 92;
    
    public static final int MaxFractionalCadenceFieldNum = 93;
    
    public static final int TotalFractionalCyclesFieldNum = 94;
    
    public static final int AvgTotalHemoglobinConcFieldNum = 95;
    
    public static final int MinTotalHemoglobinConcFieldNum = 96;
    
    public static final int MaxTotalHemoglobinConcFieldNum = 97;
    
    public static final int AvgSaturatedHemoglobinPercentFieldNum = 98;
    
    public static final int MinSaturatedHemoglobinPercentFieldNum = 99;
    
    public static final int MaxSaturatedHemoglobinPercentFieldNum = 100;
    
    public static final int AvgLeftTorqueEffectivenessFieldNum = 101;
    
    public static final int AvgRightTorqueEffectivenessFieldNum = 102;
    
    public static final int AvgLeftPedalSmoothnessFieldNum = 103;
    
    public static final int AvgRightPedalSmoothnessFieldNum = 104;
    
    public static final int AvgCombinedPedalSmoothnessFieldNum = 105;
    
    public static final int SportProfileNameFieldNum = 110;
    
    public static final int SportIndexFieldNum = 111;
    
    public static final int TimeStandingFieldNum = 112;
    
    public static final int StandCountFieldNum = 113;
    
    public static final int AvgLeftPcoFieldNum = 114;
    
    public static final int AvgRightPcoFieldNum = 115;
    
    public static final int AvgLeftPowerPhaseFieldNum = 116;
    
    public static final int AvgLeftPowerPhasePeakFieldNum = 117;
    
    public static final int AvgRightPowerPhaseFieldNum = 118;
    
    public static final int AvgRightPowerPhasePeakFieldNum = 119;
    
    public static final int AvgPowerPositionFieldNum = 120;
    
    public static final int MaxPowerPositionFieldNum = 121;
    
    public static final int AvgCadencePositionFieldNum = 122;
    
    public static final int MaxCadencePositionFieldNum = 123;
    
    public static final int EnhancedAvgSpeedFieldNum = 124;
    
    public static final int EnhancedMaxSpeedFieldNum = 125;
    
    public static final int EnhancedAvgAltitudeFieldNum = 126;
    
    public static final int EnhancedMinAltitudeFieldNum = 127;
    
    public static final int EnhancedMaxAltitudeFieldNum = 128;
    
    public static final int AvgLevMotorPowerFieldNum = 129;
    
    public static final int MaxLevMotorPowerFieldNum = 130;
    
    public static final int LevBatteryConsumptionFieldNum = 131;
    
    public static final int AvgVerticalRatioFieldNum = 132;
    
    public static final int AvgStanceTimeBalanceFieldNum = 133;
    
    public static final int AvgStepLengthFieldNum = 134;
    
    public static final int TotalAnaerobicTrainingEffectFieldNum = 137;
    
    public static final int AvgVamFieldNum = 139;
    
    public static final int AvgDepthFieldNum = 140;
    
    public static final int MaxDepthFieldNum = 141;
    
    public static final int SurfaceIntervalFieldNum = 142;
    
    public static final int StartCnsFieldNum = 143;
    
    public static final int EndCnsFieldNum = 144;
    
    public static final int StartN2FieldNum = 145;
    
    public static final int EndN2FieldNum = 146;
    
    public static final int AvgRespirationRateFieldNum = 147;
    
    public static final int MaxRespirationRateFieldNum = 148;
    
    public static final int MinRespirationRateFieldNum = 149;
    
    public static final int MinTemperatureFieldNum = 150;
    
    public static final int O2ToxicityFieldNum = 155;
    
    public static final int DiveNumberFieldNum = 156;
    
    public static final int TrainingLoadPeakFieldNum = 168;
    
    public static final int EnhancedAvgRespirationRateFieldNum = 169;
    
    public static final int EnhancedMaxRespirationRateFieldNum = 170;
    
    public static final int EnhancedMinRespirationRateFieldNum = 180;
    
    public static final int TotalGritFieldNum = 181;
    
    public static final int TotalFlowFieldNum = 182;
    
    public static final int JumpCountFieldNum = 183;
    
    public static final int AvgGritFieldNum = 186;
    
    public static final int AvgFlowFieldNum = 187;
    
    public static final int AvgSpo2FieldNum = 194;
    
    public static final int AvgStressFieldNum = 195;
    
    public static final int SdrrHrvFieldNum = 197;
    
    public static final int RmssdHrvFieldNum = 198;
    
    public static final int TotalFractionalAscentFieldNum = 199;
    
    public static final int TotalFractionalDescentFieldNum = 200;
    
    public static final int AvgCoreTemperatureFieldNum = 208;
    
    public static final int MinCoreTemperatureFieldNum = 209;
    
    public static final int MaxCoreTemperatureFieldNum = 210;
    

    protected static final  Mesg sessionMesg;
    static {
        int field_index = 0;
        int subfield_index = 0;
        // session
        sessionMesg = new Mesg("session", MesgNum.SESSION);
        sessionMesg.addField(new Field("message_index", MessageIndexFieldNum, 132, 1, 0, "", false, Profile.Type.MESSAGE_INDEX));
        field_index++;
        sessionMesg.addField(new Field("timestamp", TimestampFieldNum, 134, 1, 0, "s", false, Profile.Type.DATE_TIME));
        field_index++;
        sessionMesg.addField(new Field("event", EventFieldNum, 0, 1, 0, "", false, Profile.Type.EVENT));
        field_index++;
        sessionMesg.addField(new Field("event_type", EventTypeFieldNum, 0, 1, 0, "", false, Profile.Type.EVENT_TYPE));
        field_index++;
        sessionMesg.addField(new Field("start_time", StartTimeFieldNum, 134, 1, 0, "", false, Profile.Type.DATE_TIME));
        field_index++;
        sessionMesg.addField(new Field("start_position_lat", StartPositionLatFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("start_position_long", StartPositionLongFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("sport", SportFieldNum, 0, 1, 0, "", false, Profile.Type.SPORT));
        field_index++;
        sessionMesg.addField(new Field("sub_sport", SubSportFieldNum, 0, 1, 0, "", false, Profile.Type.SUB_SPORT));
        field_index++;
        sessionMesg.addField(new Field("total_elapsed_time", TotalElapsedTimeFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("total_timer_time", TotalTimerTimeFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("total_distance", TotalDistanceFieldNum, 134, 100, 0, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("total_cycles", TotalCyclesFieldNum, 134, 1, 0, "cycles", false, Profile.Type.UINT32));
        subfield_index = 0;
        sessionMesg.fields.get(field_index).subFields.add(new SubField("total_strides", 134, 1, 0, "strides"));
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 1);
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 11);
        subfield_index++;
        sessionMesg.fields.get(field_index).subFields.add(new SubField("total_strokes", 134, 1, 0, "strokes"));
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 2);
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 5);
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 15);
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 37);
        subfield_index++;
        field_index++;
        sessionMesg.addField(new Field("total_calories", TotalCaloriesFieldNum, 132, 1, 0, "kcal", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_fat_calories", TotalFatCaloriesFieldNum, 132, 1, 0, "kcal", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_speed", AvgSpeedFieldNum, 132, 1000, 0, "m/s", false, Profile.Type.UINT16));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(124, false, 16, 1000, 0)); // enhanced_avg_speed
        field_index++;
        sessionMesg.addField(new Field("max_speed", MaxSpeedFieldNum, 132, 1000, 0, "m/s", false, Profile.Type.UINT16));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(125, false, 16, 1000, 0)); // enhanced_max_speed
        field_index++;
        sessionMesg.addField(new Field("avg_heart_rate", AvgHeartRateFieldNum, 2, 1, 0, "bpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("max_heart_rate", MaxHeartRateFieldNum, 2, 1, 0, "bpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_cadence", AvgCadenceFieldNum, 2, 1, 0, "rpm", false, Profile.Type.UINT8));
        subfield_index = 0;
        sessionMesg.fields.get(field_index).subFields.add(new SubField("avg_running_cadence", 2, 1, 0, "strides/min"));
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 1);
        subfield_index++;
        field_index++;
        sessionMesg.addField(new Field("max_cadence", MaxCadenceFieldNum, 2, 1, 0, "rpm", false, Profile.Type.UINT8));
        subfield_index = 0;
        sessionMesg.fields.get(field_index).subFields.add(new SubField("max_running_cadence", 2, 1, 0, "strides/min"));
        sessionMesg.fields.get(field_index).subFields.get(subfield_index).addMap(5, 1);
        subfield_index++;
        field_index++;
        sessionMesg.addField(new Field("avg_power", AvgPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_power", MaxPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_ascent", TotalAscentFieldNum, 132, 1, 0, "m", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_descent", TotalDescentFieldNum, 132, 1, 0, "m", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_training_effect", TotalTrainingEffectFieldNum, 2, 10, 0, "", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("first_lap_index", FirstLapIndexFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("num_laps", NumLapsFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("event_group", EventGroupFieldNum, 2, 1, 0, "", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("trigger", TriggerFieldNum, 0, 1, 0, "", false, Profile.Type.SESSION_TRIGGER));
        field_index++;
        sessionMesg.addField(new Field("nec_lat", NecLatFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("nec_long", NecLongFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("swc_lat", SwcLatFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("swc_long", SwcLongFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("num_lengths", NumLengthsFieldNum, 132, 1, 0, "lengths", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("normalized_power", NormalizedPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("training_stress_score", TrainingStressScoreFieldNum, 132, 10, 0, "tss", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("intensity_factor", IntensityFactorFieldNum, 132, 1000, 0, "if", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("left_right_balance", LeftRightBalanceFieldNum, 132, 1, 0, "", false, Profile.Type.LEFT_RIGHT_BALANCE_100));
        field_index++;
        sessionMesg.addField(new Field("end_position_lat", EndPositionLatFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("end_position_long", EndPositionLongFieldNum, 133, 1, 0, "semicircles", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_stroke_count", AvgStrokeCountFieldNum, 134, 10, 0, "strokes/lap", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_stroke_distance", AvgStrokeDistanceFieldNum, 132, 100, 0, "m", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("swim_stroke", SwimStrokeFieldNum, 0, 1, 0, "swim_stroke", false, Profile.Type.SWIM_STROKE));
        field_index++;
        sessionMesg.addField(new Field("pool_length", PoolLengthFieldNum, 132, 100, 0, "m", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("threshold_power", ThresholdPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("pool_length_unit", PoolLengthUnitFieldNum, 0, 1, 0, "", false, Profile.Type.DISPLAY_MEASURE));
        field_index++;
        sessionMesg.addField(new Field("num_active_lengths", NumActiveLengthsFieldNum, 132, 1, 0, "lengths", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_work", TotalWorkFieldNum, 134, 1, 0, "J", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_altitude", AvgAltitudeFieldNum, 132, 5, 500, "m", false, Profile.Type.UINT16));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(126, false, 16, 5, 500)); // enhanced_avg_altitude
        field_index++;
        sessionMesg.addField(new Field("max_altitude", MaxAltitudeFieldNum, 132, 5, 500, "m", false, Profile.Type.UINT16));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(128, false, 16, 5, 500)); // enhanced_max_altitude
        field_index++;
        sessionMesg.addField(new Field("gps_accuracy", GpsAccuracyFieldNum, 2, 1, 0, "m", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_grade", AvgGradeFieldNum, 131, 100, 0, "%", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_pos_grade", AvgPosGradeFieldNum, 131, 100, 0, "%", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_neg_grade", AvgNegGradeFieldNum, 131, 100, 0, "%", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("max_pos_grade", MaxPosGradeFieldNum, 131, 100, 0, "%", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("max_neg_grade", MaxNegGradeFieldNum, 131, 100, 0, "%", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_temperature", AvgTemperatureFieldNum, 1, 1, 0, "C", false, Profile.Type.SINT8));
        field_index++;
        sessionMesg.addField(new Field("max_temperature", MaxTemperatureFieldNum, 1, 1, 0, "C", false, Profile.Type.SINT8));
        field_index++;
        sessionMesg.addField(new Field("total_moving_time", TotalMovingTimeFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_pos_vertical_speed", AvgPosVerticalSpeedFieldNum, 131, 1000, 0, "m/s", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_neg_vertical_speed", AvgNegVerticalSpeedFieldNum, 131, 1000, 0, "m/s", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("max_pos_vertical_speed", MaxPosVerticalSpeedFieldNum, 131, 1000, 0, "m/s", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("max_neg_vertical_speed", MaxNegVerticalSpeedFieldNum, 131, 1000, 0, "m/s", false, Profile.Type.SINT16));
        field_index++;
        sessionMesg.addField(new Field("min_heart_rate", MinHeartRateFieldNum, 2, 1, 0, "bpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("time_in_hr_zone", TimeInHrZoneFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("time_in_speed_zone", TimeInSpeedZoneFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("time_in_cadence_zone", TimeInCadenceZoneFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("time_in_power_zone", TimeInPowerZoneFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_lap_time", AvgLapTimeFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("best_lap_index", BestLapIndexFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("min_altitude", MinAltitudeFieldNum, 132, 5, 500, "m", false, Profile.Type.UINT16));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(127, false, 16, 5, 500)); // enhanced_min_altitude
        field_index++;
        sessionMesg.addField(new Field("player_score", PlayerScoreFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("opponent_score", OpponentScoreFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("opponent_name", OpponentNameFieldNum, 7, 1, 0, "", false, Profile.Type.STRING));
        field_index++;
        sessionMesg.addField(new Field("stroke_count", StrokeCountFieldNum, 132, 1, 0, "counts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("zone_count", ZoneCountFieldNum, 132, 1, 0, "counts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_ball_speed", MaxBallSpeedFieldNum, 132, 100, 0, "m/s", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_ball_speed", AvgBallSpeedFieldNum, 132, 100, 0, "m/s", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_vertical_oscillation", AvgVerticalOscillationFieldNum, 132, 10, 0, "mm", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_stance_time_percent", AvgStanceTimePercentFieldNum, 132, 100, 0, "percent", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_stance_time", AvgStanceTimeFieldNum, 132, 10, 0, "ms", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_fractional_cadence", AvgFractionalCadenceFieldNum, 2, 128, 0, "rpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("max_fractional_cadence", MaxFractionalCadenceFieldNum, 2, 128, 0, "rpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("total_fractional_cycles", TotalFractionalCyclesFieldNum, 2, 128, 0, "cycles", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_total_hemoglobin_conc", AvgTotalHemoglobinConcFieldNum, 132, 100, 0, "g/dL", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("min_total_hemoglobin_conc", MinTotalHemoglobinConcFieldNum, 132, 100, 0, "g/dL", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_total_hemoglobin_conc", MaxTotalHemoglobinConcFieldNum, 132, 100, 0, "g/dL", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_saturated_hemoglobin_percent", AvgSaturatedHemoglobinPercentFieldNum, 132, 10, 0, "%", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("min_saturated_hemoglobin_percent", MinSaturatedHemoglobinPercentFieldNum, 132, 10, 0, "%", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_saturated_hemoglobin_percent", MaxSaturatedHemoglobinPercentFieldNum, 132, 10, 0, "%", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_left_torque_effectiveness", AvgLeftTorqueEffectivenessFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_right_torque_effectiveness", AvgRightTorqueEffectivenessFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_left_pedal_smoothness", AvgLeftPedalSmoothnessFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_right_pedal_smoothness", AvgRightPedalSmoothnessFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_combined_pedal_smoothness", AvgCombinedPedalSmoothnessFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("sport_profile_name", SportProfileNameFieldNum, 7, 1, 0, "", false, Profile.Type.STRING));
        field_index++;
        sessionMesg.addField(new Field("sport_index", SportIndexFieldNum, 2, 1, 0, "", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("time_standing", TimeStandingFieldNum, 134, 1000, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("stand_count", StandCountFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_left_pco", AvgLeftPcoFieldNum, 1, 1, 0, "mm", false, Profile.Type.SINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_right_pco", AvgRightPcoFieldNum, 1, 1, 0, "mm", false, Profile.Type.SINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_left_power_phase", AvgLeftPowerPhaseFieldNum, 2, 0.7111111, 0, "degrees", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_left_power_phase_peak", AvgLeftPowerPhasePeakFieldNum, 2, 0.7111111, 0, "degrees", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_right_power_phase", AvgRightPowerPhaseFieldNum, 2, 0.7111111, 0, "degrees", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_right_power_phase_peak", AvgRightPowerPhasePeakFieldNum, 2, 0.7111111, 0, "degrees", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_power_position", AvgPowerPositionFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_power_position", MaxPowerPositionFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_cadence_position", AvgCadencePositionFieldNum, 2, 1, 0, "rpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("max_cadence_position", MaxCadencePositionFieldNum, 2, 1, 0, "rpm", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("enhanced_avg_speed", EnhancedAvgSpeedFieldNum, 134, 1000, 0, "m/s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("enhanced_max_speed", EnhancedMaxSpeedFieldNum, 134, 1000, 0, "m/s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("enhanced_avg_altitude", EnhancedAvgAltitudeFieldNum, 134, 5, 500, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("enhanced_min_altitude", EnhancedMinAltitudeFieldNum, 134, 5, 500, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("enhanced_max_altitude", EnhancedMaxAltitudeFieldNum, 134, 5, 500, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("avg_lev_motor_power", AvgLevMotorPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_lev_motor_power", MaxLevMotorPowerFieldNum, 132, 1, 0, "watts", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("lev_battery_consumption", LevBatteryConsumptionFieldNum, 2, 2, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_vertical_ratio", AvgVerticalRatioFieldNum, 132, 100, 0, "percent", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_stance_time_balance", AvgStanceTimeBalanceFieldNum, 132, 100, 0, "percent", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_step_length", AvgStepLengthFieldNum, 132, 10, 0, "mm", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_anaerobic_training_effect", TotalAnaerobicTrainingEffectFieldNum, 2, 10, 0, "", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_vam", AvgVamFieldNum, 132, 1000, 0, "m/s", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_depth", AvgDepthFieldNum, 134, 1000, 0, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("max_depth", MaxDepthFieldNum, 134, 1000, 0, "m", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("surface_interval", SurfaceIntervalFieldNum, 134, 1, 0, "s", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("start_cns", StartCnsFieldNum, 2, 1, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("end_cns", EndCnsFieldNum, 2, 1, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("start_n2", StartN2FieldNum, 132, 1, 0, "percent", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("end_n2", EndN2FieldNum, 132, 1, 0, "percent", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_respiration_rate", AvgRespirationRateFieldNum, 2, 1, 0, "", false, Profile.Type.UINT8));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(169, false, 8, 1, 0)); // enhanced_avg_respiration_rate
        field_index++;
        sessionMesg.addField(new Field("max_respiration_rate", MaxRespirationRateFieldNum, 2, 1, 0, "", false, Profile.Type.UINT8));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(170, false, 8, 1, 0)); // enhanced_max_respiration_rate
        field_index++;
        sessionMesg.addField(new Field("min_respiration_rate", MinRespirationRateFieldNum, 2, 1, 0, "", false, Profile.Type.UINT8));
        sessionMesg.fields.get(field_index).components.add(new FieldComponent(180, false, 8, 1, 0)); // enhanced_min_respiration_rate
        field_index++;
        sessionMesg.addField(new Field("min_temperature", MinTemperatureFieldNum, 1, 1, 0, "C", false, Profile.Type.SINT8));
        field_index++;
        sessionMesg.addField(new Field("o2_toxicity", O2ToxicityFieldNum, 132, 1, 0, "OTUs", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("dive_number", DiveNumberFieldNum, 134, 1, 0, "", false, Profile.Type.UINT32));
        field_index++;
        sessionMesg.addField(new Field("training_load_peak", TrainingLoadPeakFieldNum, 133, 65536, 0, "", false, Profile.Type.SINT32));
        field_index++;
        sessionMesg.addField(new Field("enhanced_avg_respiration_rate", EnhancedAvgRespirationRateFieldNum, 132, 100, 0, "Breaths/min", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("enhanced_max_respiration_rate", EnhancedMaxRespirationRateFieldNum, 132, 100, 0, "Breaths/min", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("enhanced_min_respiration_rate", EnhancedMinRespirationRateFieldNum, 132, 100, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("total_grit", TotalGritFieldNum, 136, 1, 0, "kGrit", false, Profile.Type.FLOAT32));
        field_index++;
        sessionMesg.addField(new Field("total_flow", TotalFlowFieldNum, 136, 1, 0, "Flow", false, Profile.Type.FLOAT32));
        field_index++;
        sessionMesg.addField(new Field("jump_count", JumpCountFieldNum, 132, 1, 0, "", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("avg_grit", AvgGritFieldNum, 136, 1, 0, "kGrit", false, Profile.Type.FLOAT32));
        field_index++;
        sessionMesg.addField(new Field("avg_flow", AvgFlowFieldNum, 136, 1, 0, "Flow", false, Profile.Type.FLOAT32));
        field_index++;
        sessionMesg.addField(new Field("avg_spo2", AvgSpo2FieldNum, 2, 1, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_stress", AvgStressFieldNum, 2, 1, 0, "percent", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("sdrr_hrv", SdrrHrvFieldNum, 2, 1, 0, "mS", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("rmssd_hrv", RmssdHrvFieldNum, 2, 1, 0, "mS", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("total_fractional_ascent", TotalFractionalAscentFieldNum, 2, 100, 0, "m", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("total_fractional_descent", TotalFractionalDescentFieldNum, 2, 100, 0, "m", false, Profile.Type.UINT8));
        field_index++;
        sessionMesg.addField(new Field("avg_core_temperature", AvgCoreTemperatureFieldNum, 132, 100, 0, "C", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("min_core_temperature", MinCoreTemperatureFieldNum, 132, 100, 0, "C", false, Profile.Type.UINT16));
        field_index++;
        sessionMesg.addField(new Field("max_core_temperature", MaxCoreTemperatureFieldNum, 132, 100, 0, "C", false, Profile.Type.UINT16));
        field_index++;
    }

    public SessionMesg() {
        super(Factory.createMesg(MesgNum.SESSION));
    }

    public SessionMesg(final Mesg mesg) {
        super(mesg);
    }


    /**
     * Get message_index field
     * Comment: Selected bit is set for the current session.
     *
     * @return message_index
     */
    public Integer getMessageIndex() {
        return getFieldIntegerValue(254, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set message_index field
     * Comment: Selected bit is set for the current session.
     *
     * @param messageIndex The new messageIndex value to be set
     */
    public void setMessageIndex(Integer messageIndex) {
        setFieldValue(254, 0, messageIndex, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get timestamp field
     * Units: s
     * Comment: Sesson end time.
     *
     * @return timestamp
     */
    public DateTime getTimestamp() {
        return timestampToDateTime(getFieldLongValue(253, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD));
    }

    /**
     * Set timestamp field
     * Units: s
     * Comment: Sesson end time.
     *
     * @param timestamp The new timestamp value to be set
     */
    public void setTimestamp(DateTime timestamp) {
        setFieldValue(253, 0, timestamp.getTimestamp(), Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get event field
     * Comment: session
     *
     * @return event
     */
    public Event getEvent() {
        Short value = getFieldShortValue(0, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return Event.getByValue(value);
    }

    /**
     * Set event field
     * Comment: session
     *
     * @param event The new event value to be set
     */
    public void setEvent(Event event) {
        setFieldValue(0, 0, event.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get event_type field
     * Comment: stop
     *
     * @return event_type
     */
    public EventType getEventType() {
        Short value = getFieldShortValue(1, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return EventType.getByValue(value);
    }

    /**
     * Set event_type field
     * Comment: stop
     *
     * @param eventType The new eventType value to be set
     */
    public void setEventType(EventType eventType) {
        setFieldValue(1, 0, eventType.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get start_time field
     *
     * @return start_time
     */
    public DateTime getStartTime() {
        return timestampToDateTime(getFieldLongValue(2, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD));
    }

    /**
     * Set start_time field
     *
     * @param startTime The new startTime value to be set
     */
    public void setStartTime(DateTime startTime) {
        setFieldValue(2, 0, startTime.getTimestamp(), Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get start_position_lat field
     * Units: semicircles
     *
     * @return start_position_lat
     */
    public Integer getStartPositionLat() {
        return getFieldIntegerValue(3, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set start_position_lat field
     * Units: semicircles
     *
     * @param startPositionLat The new startPositionLat value to be set
     */
    public void setStartPositionLat(Integer startPositionLat) {
        setFieldValue(3, 0, startPositionLat, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get start_position_long field
     * Units: semicircles
     *
     * @return start_position_long
     */
    public Integer getStartPositionLong() {
        return getFieldIntegerValue(4, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set start_position_long field
     * Units: semicircles
     *
     * @param startPositionLong The new startPositionLong value to be set
     */
    public void setStartPositionLong(Integer startPositionLong) {
        setFieldValue(4, 0, startPositionLong, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get sport field
     *
     * @return sport
     */
    public Sport getSport() {
        Short value = getFieldShortValue(5, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return Sport.getByValue(value);
    }

    /**
     * Set sport field
     *
     * @param sport The new sport value to be set
     */
    public void setSport(Sport sport) {
        setFieldValue(5, 0, sport.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get sub_sport field
     *
     * @return sub_sport
     */
    public SubSport getSubSport() {
        Short value = getFieldShortValue(6, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return SubSport.getByValue(value);
    }

    /**
     * Set sub_sport field
     *
     * @param subSport The new subSport value to be set
     */
    public void setSubSport(SubSport subSport) {
        setFieldValue(6, 0, subSport.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_elapsed_time field
     * Units: s
     * Comment: Time (includes pauses)
     *
     * @return total_elapsed_time
     */
    public Float getTotalElapsedTime() {
        return getFieldFloatValue(7, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_elapsed_time field
     * Units: s
     * Comment: Time (includes pauses)
     *
     * @param totalElapsedTime The new totalElapsedTime value to be set
     */
    public void setTotalElapsedTime(Float totalElapsedTime) {
        setFieldValue(7, 0, totalElapsedTime, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_timer_time field
     * Units: s
     * Comment: Timer Time (excludes pauses)
     *
     * @return total_timer_time
     */
    public Float getTotalTimerTime() {
        return getFieldFloatValue(8, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_timer_time field
     * Units: s
     * Comment: Timer Time (excludes pauses)
     *
     * @param totalTimerTime The new totalTimerTime value to be set
     */
    public void setTotalTimerTime(Float totalTimerTime) {
        setFieldValue(8, 0, totalTimerTime, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_distance field
     * Units: m
     *
     * @return total_distance
     */
    public Float getTotalDistance() {
        return getFieldFloatValue(9, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_distance field
     * Units: m
     *
     * @param totalDistance The new totalDistance value to be set
     */
    public void setTotalDistance(Float totalDistance) {
        setFieldValue(9, 0, totalDistance, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_cycles field
     * Units: cycles
     *
     * @return total_cycles
     */
    public Long getTotalCycles() {
        return getFieldLongValue(10, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_cycles field
     * Units: cycles
     *
     * @param totalCycles The new totalCycles value to be set
     */
    public void setTotalCycles(Long totalCycles) {
        setFieldValue(10, 0, totalCycles, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_strides field
     * Units: strides
     *
     * @return total_strides
     */
    public Long getTotalStrides() {
        return getFieldLongValue(10, 0, Profile.SubFields.SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES);
    }

    /**
     * Set total_strides field
     * Units: strides
     *
     * @param totalStrides The new totalStrides value to be set
     */
    public void setTotalStrides(Long totalStrides) {
        setFieldValue(10, 0, totalStrides, Profile.SubFields.SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES);
    }

    /**
     * Get total_strokes field
     * Units: strokes
     *
     * @return total_strokes
     */
    public Long getTotalStrokes() {
        return getFieldLongValue(10, 0, Profile.SubFields.SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES);
    }

    /**
     * Set total_strokes field
     * Units: strokes
     *
     * @param totalStrokes The new totalStrokes value to be set
     */
    public void setTotalStrokes(Long totalStrokes) {
        setFieldValue(10, 0, totalStrokes, Profile.SubFields.SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES);
    }

    /**
     * Get total_calories field
     * Units: kcal
     *
     * @return total_calories
     */
    public Integer getTotalCalories() {
        return getFieldIntegerValue(11, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_calories field
     * Units: kcal
     *
     * @param totalCalories The new totalCalories value to be set
     */
    public void setTotalCalories(Integer totalCalories) {
        setFieldValue(11, 0, totalCalories, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_fat_calories field
     * Units: kcal
     *
     * @return total_fat_calories
     */
    public Integer getTotalFatCalories() {
        return getFieldIntegerValue(13, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_fat_calories field
     * Units: kcal
     *
     * @param totalFatCalories The new totalFatCalories value to be set
     */
    public void setTotalFatCalories(Integer totalFatCalories) {
        setFieldValue(13, 0, totalFatCalories, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_speed field
     * Units: m/s
     * Comment: total_distance / total_timer_time
     *
     * @return avg_speed
     */
    public Float getAvgSpeed() {
        return getFieldFloatValue(14, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_speed field
     * Units: m/s
     * Comment: total_distance / total_timer_time
     *
     * @param avgSpeed The new avgSpeed value to be set
     */
    public void setAvgSpeed(Float avgSpeed) {
        setFieldValue(14, 0, avgSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_speed field
     * Units: m/s
     *
     * @return max_speed
     */
    public Float getMaxSpeed() {
        return getFieldFloatValue(15, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_speed field
     * Units: m/s
     *
     * @param maxSpeed The new maxSpeed value to be set
     */
    public void setMaxSpeed(Float maxSpeed) {
        setFieldValue(15, 0, maxSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_heart_rate field
     * Units: bpm
     * Comment: average heart rate (excludes pause time)
     *
     * @return avg_heart_rate
     */
    public Short getAvgHeartRate() {
        return getFieldShortValue(16, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_heart_rate field
     * Units: bpm
     * Comment: average heart rate (excludes pause time)
     *
     * @param avgHeartRate The new avgHeartRate value to be set
     */
    public void setAvgHeartRate(Short avgHeartRate) {
        setFieldValue(16, 0, avgHeartRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_heart_rate field
     * Units: bpm
     *
     * @return max_heart_rate
     */
    public Short getMaxHeartRate() {
        return getFieldShortValue(17, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_heart_rate field
     * Units: bpm
     *
     * @param maxHeartRate The new maxHeartRate value to be set
     */
    public void setMaxHeartRate(Short maxHeartRate) {
        setFieldValue(17, 0, maxHeartRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_cadence field
     * Units: rpm
     * Comment: total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
     *
     * @return avg_cadence
     */
    public Short getAvgCadence() {
        return getFieldShortValue(18, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_cadence field
     * Units: rpm
     * Comment: total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
     *
     * @param avgCadence The new avgCadence value to be set
     */
    public void setAvgCadence(Short avgCadence) {
        setFieldValue(18, 0, avgCadence, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_running_cadence field
     * Units: strides/min
     *
     * @return avg_running_cadence
     */
    public Short getAvgRunningCadence() {
        return getFieldShortValue(18, 0, Profile.SubFields.SESSION_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE);
    }

    /**
     * Set avg_running_cadence field
     * Units: strides/min
     *
     * @param avgRunningCadence The new avgRunningCadence value to be set
     */
    public void setAvgRunningCadence(Short avgRunningCadence) {
        setFieldValue(18, 0, avgRunningCadence, Profile.SubFields.SESSION_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE);
    }

    /**
     * Get max_cadence field
     * Units: rpm
     *
     * @return max_cadence
     */
    public Short getMaxCadence() {
        return getFieldShortValue(19, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_cadence field
     * Units: rpm
     *
     * @param maxCadence The new maxCadence value to be set
     */
    public void setMaxCadence(Short maxCadence) {
        setFieldValue(19, 0, maxCadence, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_running_cadence field
     * Units: strides/min
     *
     * @return max_running_cadence
     */
    public Short getMaxRunningCadence() {
        return getFieldShortValue(19, 0, Profile.SubFields.SESSION_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE);
    }

    /**
     * Set max_running_cadence field
     * Units: strides/min
     *
     * @param maxRunningCadence The new maxRunningCadence value to be set
     */
    public void setMaxRunningCadence(Short maxRunningCadence) {
        setFieldValue(19, 0, maxRunningCadence, Profile.SubFields.SESSION_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE);
    }

    /**
     * Get avg_power field
     * Units: watts
     * Comment: total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
     *
     * @return avg_power
     */
    public Integer getAvgPower() {
        return getFieldIntegerValue(20, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_power field
     * Units: watts
     * Comment: total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
     *
     * @param avgPower The new avgPower value to be set
     */
    public void setAvgPower(Integer avgPower) {
        setFieldValue(20, 0, avgPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_power field
     * Units: watts
     *
     * @return max_power
     */
    public Integer getMaxPower() {
        return getFieldIntegerValue(21, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_power field
     * Units: watts
     *
     * @param maxPower The new maxPower value to be set
     */
    public void setMaxPower(Integer maxPower) {
        setFieldValue(21, 0, maxPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_ascent field
     * Units: m
     *
     * @return total_ascent
     */
    public Integer getTotalAscent() {
        return getFieldIntegerValue(22, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_ascent field
     * Units: m
     *
     * @param totalAscent The new totalAscent value to be set
     */
    public void setTotalAscent(Integer totalAscent) {
        setFieldValue(22, 0, totalAscent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_descent field
     * Units: m
     *
     * @return total_descent
     */
    public Integer getTotalDescent() {
        return getFieldIntegerValue(23, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_descent field
     * Units: m
     *
     * @param totalDescent The new totalDescent value to be set
     */
    public void setTotalDescent(Integer totalDescent) {
        setFieldValue(23, 0, totalDescent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_training_effect field
     *
     * @return total_training_effect
     */
    public Float getTotalTrainingEffect() {
        return getFieldFloatValue(24, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_training_effect field
     *
     * @param totalTrainingEffect The new totalTrainingEffect value to be set
     */
    public void setTotalTrainingEffect(Float totalTrainingEffect) {
        setFieldValue(24, 0, totalTrainingEffect, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get first_lap_index field
     *
     * @return first_lap_index
     */
    public Integer getFirstLapIndex() {
        return getFieldIntegerValue(25, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set first_lap_index field
     *
     * @param firstLapIndex The new firstLapIndex value to be set
     */
    public void setFirstLapIndex(Integer firstLapIndex) {
        setFieldValue(25, 0, firstLapIndex, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get num_laps field
     *
     * @return num_laps
     */
    public Integer getNumLaps() {
        return getFieldIntegerValue(26, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set num_laps field
     *
     * @param numLaps The new numLaps value to be set
     */
    public void setNumLaps(Integer numLaps) {
        setFieldValue(26, 0, numLaps, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get event_group field
     *
     * @return event_group
     */
    public Short getEventGroup() {
        return getFieldShortValue(27, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set event_group field
     *
     * @param eventGroup The new eventGroup value to be set
     */
    public void setEventGroup(Short eventGroup) {
        setFieldValue(27, 0, eventGroup, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get trigger field
     *
     * @return trigger
     */
    public SessionTrigger getTrigger() {
        Short value = getFieldShortValue(28, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return SessionTrigger.getByValue(value);
    }

    /**
     * Set trigger field
     *
     * @param trigger The new trigger value to be set
     */
    public void setTrigger(SessionTrigger trigger) {
        setFieldValue(28, 0, trigger.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get nec_lat field
     * Units: semicircles
     * Comment: North east corner latitude
     *
     * @return nec_lat
     */
    public Integer getNecLat() {
        return getFieldIntegerValue(29, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set nec_lat field
     * Units: semicircles
     * Comment: North east corner latitude
     *
     * @param necLat The new necLat value to be set
     */
    public void setNecLat(Integer necLat) {
        setFieldValue(29, 0, necLat, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get nec_long field
     * Units: semicircles
     * Comment: North east corner longitude
     *
     * @return nec_long
     */
    public Integer getNecLong() {
        return getFieldIntegerValue(30, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set nec_long field
     * Units: semicircles
     * Comment: North east corner longitude
     *
     * @param necLong The new necLong value to be set
     */
    public void setNecLong(Integer necLong) {
        setFieldValue(30, 0, necLong, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get swc_lat field
     * Units: semicircles
     * Comment: South west corner latitude
     *
     * @return swc_lat
     */
    public Integer getSwcLat() {
        return getFieldIntegerValue(31, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set swc_lat field
     * Units: semicircles
     * Comment: South west corner latitude
     *
     * @param swcLat The new swcLat value to be set
     */
    public void setSwcLat(Integer swcLat) {
        setFieldValue(31, 0, swcLat, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get swc_long field
     * Units: semicircles
     * Comment: South west corner longitude
     *
     * @return swc_long
     */
    public Integer getSwcLong() {
        return getFieldIntegerValue(32, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set swc_long field
     * Units: semicircles
     * Comment: South west corner longitude
     *
     * @param swcLong The new swcLong value to be set
     */
    public void setSwcLong(Integer swcLong) {
        setFieldValue(32, 0, swcLong, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get num_lengths field
     * Units: lengths
     * Comment: # of lengths of swim pool
     *
     * @return num_lengths
     */
    public Integer getNumLengths() {
        return getFieldIntegerValue(33, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set num_lengths field
     * Units: lengths
     * Comment: # of lengths of swim pool
     *
     * @param numLengths The new numLengths value to be set
     */
    public void setNumLengths(Integer numLengths) {
        setFieldValue(33, 0, numLengths, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get normalized_power field
     * Units: watts
     *
     * @return normalized_power
     */
    public Integer getNormalizedPower() {
        return getFieldIntegerValue(34, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set normalized_power field
     * Units: watts
     *
     * @param normalizedPower The new normalizedPower value to be set
     */
    public void setNormalizedPower(Integer normalizedPower) {
        setFieldValue(34, 0, normalizedPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get training_stress_score field
     * Units: tss
     *
     * @return training_stress_score
     */
    public Float getTrainingStressScore() {
        return getFieldFloatValue(35, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set training_stress_score field
     * Units: tss
     *
     * @param trainingStressScore The new trainingStressScore value to be set
     */
    public void setTrainingStressScore(Float trainingStressScore) {
        setFieldValue(35, 0, trainingStressScore, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get intensity_factor field
     * Units: if
     *
     * @return intensity_factor
     */
    public Float getIntensityFactor() {
        return getFieldFloatValue(36, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set intensity_factor field
     * Units: if
     *
     * @param intensityFactor The new intensityFactor value to be set
     */
    public void setIntensityFactor(Float intensityFactor) {
        setFieldValue(36, 0, intensityFactor, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get left_right_balance field
     *
     * @return left_right_balance
     */
    public Integer getLeftRightBalance() {
        return getFieldIntegerValue(37, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set left_right_balance field
     *
     * @param leftRightBalance The new leftRightBalance value to be set
     */
    public void setLeftRightBalance(Integer leftRightBalance) {
        setFieldValue(37, 0, leftRightBalance, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get end_position_lat field
     * Units: semicircles
     *
     * @return end_position_lat
     */
    public Integer getEndPositionLat() {
        return getFieldIntegerValue(38, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set end_position_lat field
     * Units: semicircles
     *
     * @param endPositionLat The new endPositionLat value to be set
     */
    public void setEndPositionLat(Integer endPositionLat) {
        setFieldValue(38, 0, endPositionLat, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get end_position_long field
     * Units: semicircles
     *
     * @return end_position_long
     */
    public Integer getEndPositionLong() {
        return getFieldIntegerValue(39, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set end_position_long field
     * Units: semicircles
     *
     * @param endPositionLong The new endPositionLong value to be set
     */
    public void setEndPositionLong(Integer endPositionLong) {
        setFieldValue(39, 0, endPositionLong, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stroke_count field
     * Units: strokes/lap
     *
     * @return avg_stroke_count
     */
    public Float getAvgStrokeCount() {
        return getFieldFloatValue(41, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stroke_count field
     * Units: strokes/lap
     *
     * @param avgStrokeCount The new avgStrokeCount value to be set
     */
    public void setAvgStrokeCount(Float avgStrokeCount) {
        setFieldValue(41, 0, avgStrokeCount, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stroke_distance field
     * Units: m
     *
     * @return avg_stroke_distance
     */
    public Float getAvgStrokeDistance() {
        return getFieldFloatValue(42, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stroke_distance field
     * Units: m
     *
     * @param avgStrokeDistance The new avgStrokeDistance value to be set
     */
    public void setAvgStrokeDistance(Float avgStrokeDistance) {
        setFieldValue(42, 0, avgStrokeDistance, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get swim_stroke field
     * Units: swim_stroke
     *
     * @return swim_stroke
     */
    public SwimStroke getSwimStroke() {
        Short value = getFieldShortValue(43, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return SwimStroke.getByValue(value);
    }

    /**
     * Set swim_stroke field
     * Units: swim_stroke
     *
     * @param swimStroke The new swimStroke value to be set
     */
    public void setSwimStroke(SwimStroke swimStroke) {
        setFieldValue(43, 0, swimStroke.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get pool_length field
     * Units: m
     *
     * @return pool_length
     */
    public Float getPoolLength() {
        return getFieldFloatValue(44, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set pool_length field
     * Units: m
     *
     * @param poolLength The new poolLength value to be set
     */
    public void setPoolLength(Float poolLength) {
        setFieldValue(44, 0, poolLength, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get threshold_power field
     * Units: watts
     *
     * @return threshold_power
     */
    public Integer getThresholdPower() {
        return getFieldIntegerValue(45, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set threshold_power field
     * Units: watts
     *
     * @param thresholdPower The new thresholdPower value to be set
     */
    public void setThresholdPower(Integer thresholdPower) {
        setFieldValue(45, 0, thresholdPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get pool_length_unit field
     *
     * @return pool_length_unit
     */
    public DisplayMeasure getPoolLengthUnit() {
        Short value = getFieldShortValue(46, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        if (value == null) {
            return null;
        }
        return DisplayMeasure.getByValue(value);
    }

    /**
     * Set pool_length_unit field
     *
     * @param poolLengthUnit The new poolLengthUnit value to be set
     */
    public void setPoolLengthUnit(DisplayMeasure poolLengthUnit) {
        setFieldValue(46, 0, poolLengthUnit.value, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get num_active_lengths field
     * Units: lengths
     * Comment: # of active lengths of swim pool
     *
     * @return num_active_lengths
     */
    public Integer getNumActiveLengths() {
        return getFieldIntegerValue(47, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set num_active_lengths field
     * Units: lengths
     * Comment: # of active lengths of swim pool
     *
     * @param numActiveLengths The new numActiveLengths value to be set
     */
    public void setNumActiveLengths(Integer numActiveLengths) {
        setFieldValue(47, 0, numActiveLengths, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_work field
     * Units: J
     *
     * @return total_work
     */
    public Long getTotalWork() {
        return getFieldLongValue(48, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_work field
     * Units: J
     *
     * @param totalWork The new totalWork value to be set
     */
    public void setTotalWork(Long totalWork) {
        setFieldValue(48, 0, totalWork, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_altitude field
     * Units: m
     *
     * @return avg_altitude
     */
    public Float getAvgAltitude() {
        return getFieldFloatValue(49, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_altitude field
     * Units: m
     *
     * @param avgAltitude The new avgAltitude value to be set
     */
    public void setAvgAltitude(Float avgAltitude) {
        setFieldValue(49, 0, avgAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_altitude field
     * Units: m
     *
     * @return max_altitude
     */
    public Float getMaxAltitude() {
        return getFieldFloatValue(50, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_altitude field
     * Units: m
     *
     * @param maxAltitude The new maxAltitude value to be set
     */
    public void setMaxAltitude(Float maxAltitude) {
        setFieldValue(50, 0, maxAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get gps_accuracy field
     * Units: m
     *
     * @return gps_accuracy
     */
    public Short getGpsAccuracy() {
        return getFieldShortValue(51, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set gps_accuracy field
     * Units: m
     *
     * @param gpsAccuracy The new gpsAccuracy value to be set
     */
    public void setGpsAccuracy(Short gpsAccuracy) {
        setFieldValue(51, 0, gpsAccuracy, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_grade field
     * Units: %
     *
     * @return avg_grade
     */
    public Float getAvgGrade() {
        return getFieldFloatValue(52, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_grade field
     * Units: %
     *
     * @param avgGrade The new avgGrade value to be set
     */
    public void setAvgGrade(Float avgGrade) {
        setFieldValue(52, 0, avgGrade, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_pos_grade field
     * Units: %
     *
     * @return avg_pos_grade
     */
    public Float getAvgPosGrade() {
        return getFieldFloatValue(53, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_pos_grade field
     * Units: %
     *
     * @param avgPosGrade The new avgPosGrade value to be set
     */
    public void setAvgPosGrade(Float avgPosGrade) {
        setFieldValue(53, 0, avgPosGrade, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_neg_grade field
     * Units: %
     *
     * @return avg_neg_grade
     */
    public Float getAvgNegGrade() {
        return getFieldFloatValue(54, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_neg_grade field
     * Units: %
     *
     * @param avgNegGrade The new avgNegGrade value to be set
     */
    public void setAvgNegGrade(Float avgNegGrade) {
        setFieldValue(54, 0, avgNegGrade, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_pos_grade field
     * Units: %
     *
     * @return max_pos_grade
     */
    public Float getMaxPosGrade() {
        return getFieldFloatValue(55, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_pos_grade field
     * Units: %
     *
     * @param maxPosGrade The new maxPosGrade value to be set
     */
    public void setMaxPosGrade(Float maxPosGrade) {
        setFieldValue(55, 0, maxPosGrade, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_neg_grade field
     * Units: %
     *
     * @return max_neg_grade
     */
    public Float getMaxNegGrade() {
        return getFieldFloatValue(56, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_neg_grade field
     * Units: %
     *
     * @param maxNegGrade The new maxNegGrade value to be set
     */
    public void setMaxNegGrade(Float maxNegGrade) {
        setFieldValue(56, 0, maxNegGrade, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_temperature field
     * Units: C
     *
     * @return avg_temperature
     */
    public Byte getAvgTemperature() {
        return getFieldByteValue(57, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_temperature field
     * Units: C
     *
     * @param avgTemperature The new avgTemperature value to be set
     */
    public void setAvgTemperature(Byte avgTemperature) {
        setFieldValue(57, 0, avgTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_temperature field
     * Units: C
     *
     * @return max_temperature
     */
    public Byte getMaxTemperature() {
        return getFieldByteValue(58, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_temperature field
     * Units: C
     *
     * @param maxTemperature The new maxTemperature value to be set
     */
    public void setMaxTemperature(Byte maxTemperature) {
        setFieldValue(58, 0, maxTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_moving_time field
     * Units: s
     *
     * @return total_moving_time
     */
    public Float getTotalMovingTime() {
        return getFieldFloatValue(59, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_moving_time field
     * Units: s
     *
     * @param totalMovingTime The new totalMovingTime value to be set
     */
    public void setTotalMovingTime(Float totalMovingTime) {
        setFieldValue(59, 0, totalMovingTime, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_pos_vertical_speed field
     * Units: m/s
     *
     * @return avg_pos_vertical_speed
     */
    public Float getAvgPosVerticalSpeed() {
        return getFieldFloatValue(60, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_pos_vertical_speed field
     * Units: m/s
     *
     * @param avgPosVerticalSpeed The new avgPosVerticalSpeed value to be set
     */
    public void setAvgPosVerticalSpeed(Float avgPosVerticalSpeed) {
        setFieldValue(60, 0, avgPosVerticalSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_neg_vertical_speed field
     * Units: m/s
     *
     * @return avg_neg_vertical_speed
     */
    public Float getAvgNegVerticalSpeed() {
        return getFieldFloatValue(61, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_neg_vertical_speed field
     * Units: m/s
     *
     * @param avgNegVerticalSpeed The new avgNegVerticalSpeed value to be set
     */
    public void setAvgNegVerticalSpeed(Float avgNegVerticalSpeed) {
        setFieldValue(61, 0, avgNegVerticalSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_pos_vertical_speed field
     * Units: m/s
     *
     * @return max_pos_vertical_speed
     */
    public Float getMaxPosVerticalSpeed() {
        return getFieldFloatValue(62, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_pos_vertical_speed field
     * Units: m/s
     *
     * @param maxPosVerticalSpeed The new maxPosVerticalSpeed value to be set
     */
    public void setMaxPosVerticalSpeed(Float maxPosVerticalSpeed) {
        setFieldValue(62, 0, maxPosVerticalSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_neg_vertical_speed field
     * Units: m/s
     *
     * @return max_neg_vertical_speed
     */
    public Float getMaxNegVerticalSpeed() {
        return getFieldFloatValue(63, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_neg_vertical_speed field
     * Units: m/s
     *
     * @param maxNegVerticalSpeed The new maxNegVerticalSpeed value to be set
     */
    public void setMaxNegVerticalSpeed(Float maxNegVerticalSpeed) {
        setFieldValue(63, 0, maxNegVerticalSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_heart_rate field
     * Units: bpm
     *
     * @return min_heart_rate
     */
    public Short getMinHeartRate() {
        return getFieldShortValue(64, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_heart_rate field
     * Units: bpm
     *
     * @param minHeartRate The new minHeartRate value to be set
     */
    public void setMinHeartRate(Short minHeartRate) {
        setFieldValue(64, 0, minHeartRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getTimeInHrZone() {
        
        return getFieldFloatValues(65, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of time_in_hr_zone
     */
    public int getNumTimeInHrZone() {
        return getNumFieldValues(65, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get time_in_hr_zone field
     * Units: s
     *
     * @param index of time_in_hr_zone
     * @return time_in_hr_zone
     */
    public Float getTimeInHrZone(int index) {
        return getFieldFloatValue(65, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set time_in_hr_zone field
     * Units: s
     *
     * @param index of time_in_hr_zone
     * @param timeInHrZone The new timeInHrZone value to be set
     */
    public void setTimeInHrZone(int index, Float timeInHrZone) {
        setFieldValue(65, index, timeInHrZone, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getTimeInSpeedZone() {
        
        return getFieldFloatValues(66, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of time_in_speed_zone
     */
    public int getNumTimeInSpeedZone() {
        return getNumFieldValues(66, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get time_in_speed_zone field
     * Units: s
     *
     * @param index of time_in_speed_zone
     * @return time_in_speed_zone
     */
    public Float getTimeInSpeedZone(int index) {
        return getFieldFloatValue(66, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set time_in_speed_zone field
     * Units: s
     *
     * @param index of time_in_speed_zone
     * @param timeInSpeedZone The new timeInSpeedZone value to be set
     */
    public void setTimeInSpeedZone(int index, Float timeInSpeedZone) {
        setFieldValue(66, index, timeInSpeedZone, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getTimeInCadenceZone() {
        
        return getFieldFloatValues(67, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of time_in_cadence_zone
     */
    public int getNumTimeInCadenceZone() {
        return getNumFieldValues(67, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get time_in_cadence_zone field
     * Units: s
     *
     * @param index of time_in_cadence_zone
     * @return time_in_cadence_zone
     */
    public Float getTimeInCadenceZone(int index) {
        return getFieldFloatValue(67, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set time_in_cadence_zone field
     * Units: s
     *
     * @param index of time_in_cadence_zone
     * @param timeInCadenceZone The new timeInCadenceZone value to be set
     */
    public void setTimeInCadenceZone(int index, Float timeInCadenceZone) {
        setFieldValue(67, index, timeInCadenceZone, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getTimeInPowerZone() {
        
        return getFieldFloatValues(68, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of time_in_power_zone
     */
    public int getNumTimeInPowerZone() {
        return getNumFieldValues(68, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get time_in_power_zone field
     * Units: s
     *
     * @param index of time_in_power_zone
     * @return time_in_power_zone
     */
    public Float getTimeInPowerZone(int index) {
        return getFieldFloatValue(68, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set time_in_power_zone field
     * Units: s
     *
     * @param index of time_in_power_zone
     * @param timeInPowerZone The new timeInPowerZone value to be set
     */
    public void setTimeInPowerZone(int index, Float timeInPowerZone) {
        setFieldValue(68, index, timeInPowerZone, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_lap_time field
     * Units: s
     *
     * @return avg_lap_time
     */
    public Float getAvgLapTime() {
        return getFieldFloatValue(69, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_lap_time field
     * Units: s
     *
     * @param avgLapTime The new avgLapTime value to be set
     */
    public void setAvgLapTime(Float avgLapTime) {
        setFieldValue(69, 0, avgLapTime, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get best_lap_index field
     *
     * @return best_lap_index
     */
    public Integer getBestLapIndex() {
        return getFieldIntegerValue(70, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set best_lap_index field
     *
     * @param bestLapIndex The new bestLapIndex value to be set
     */
    public void setBestLapIndex(Integer bestLapIndex) {
        setFieldValue(70, 0, bestLapIndex, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_altitude field
     * Units: m
     *
     * @return min_altitude
     */
    public Float getMinAltitude() {
        return getFieldFloatValue(71, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_altitude field
     * Units: m
     *
     * @param minAltitude The new minAltitude value to be set
     */
    public void setMinAltitude(Float minAltitude) {
        setFieldValue(71, 0, minAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get player_score field
     *
     * @return player_score
     */
    public Integer getPlayerScore() {
        return getFieldIntegerValue(82, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set player_score field
     *
     * @param playerScore The new playerScore value to be set
     */
    public void setPlayerScore(Integer playerScore) {
        setFieldValue(82, 0, playerScore, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get opponent_score field
     *
     * @return opponent_score
     */
    public Integer getOpponentScore() {
        return getFieldIntegerValue(83, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set opponent_score field
     *
     * @param opponentScore The new opponentScore value to be set
     */
    public void setOpponentScore(Integer opponentScore) {
        setFieldValue(83, 0, opponentScore, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get opponent_name field
     *
     * @return opponent_name
     */
    public String getOpponentName() {
        return getFieldStringValue(84, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set opponent_name field
     *
     * @param opponentName The new opponentName value to be set
     */
    public void setOpponentName(String opponentName) {
        setFieldValue(84, 0, opponentName, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Integer[] getStrokeCount() {
        
        return getFieldIntegerValues(85, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of stroke_count
     */
    public int getNumStrokeCount() {
        return getNumFieldValues(85, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get stroke_count field
     * Units: counts
     * Comment: stroke_type enum used as the index
     *
     * @param index of stroke_count
     * @return stroke_count
     */
    public Integer getStrokeCount(int index) {
        return getFieldIntegerValue(85, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set stroke_count field
     * Units: counts
     * Comment: stroke_type enum used as the index
     *
     * @param index of stroke_count
     * @param strokeCount The new strokeCount value to be set
     */
    public void setStrokeCount(int index, Integer strokeCount) {
        setFieldValue(85, index, strokeCount, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Integer[] getZoneCount() {
        
        return getFieldIntegerValues(86, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of zone_count
     */
    public int getNumZoneCount() {
        return getNumFieldValues(86, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get zone_count field
     * Units: counts
     * Comment: zone number used as the index
     *
     * @param index of zone_count
     * @return zone_count
     */
    public Integer getZoneCount(int index) {
        return getFieldIntegerValue(86, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set zone_count field
     * Units: counts
     * Comment: zone number used as the index
     *
     * @param index of zone_count
     * @param zoneCount The new zoneCount value to be set
     */
    public void setZoneCount(int index, Integer zoneCount) {
        setFieldValue(86, index, zoneCount, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_ball_speed field
     * Units: m/s
     *
     * @return max_ball_speed
     */
    public Float getMaxBallSpeed() {
        return getFieldFloatValue(87, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_ball_speed field
     * Units: m/s
     *
     * @param maxBallSpeed The new maxBallSpeed value to be set
     */
    public void setMaxBallSpeed(Float maxBallSpeed) {
        setFieldValue(87, 0, maxBallSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_ball_speed field
     * Units: m/s
     *
     * @return avg_ball_speed
     */
    public Float getAvgBallSpeed() {
        return getFieldFloatValue(88, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_ball_speed field
     * Units: m/s
     *
     * @param avgBallSpeed The new avgBallSpeed value to be set
     */
    public void setAvgBallSpeed(Float avgBallSpeed) {
        setFieldValue(88, 0, avgBallSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_vertical_oscillation field
     * Units: mm
     *
     * @return avg_vertical_oscillation
     */
    public Float getAvgVerticalOscillation() {
        return getFieldFloatValue(89, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_vertical_oscillation field
     * Units: mm
     *
     * @param avgVerticalOscillation The new avgVerticalOscillation value to be set
     */
    public void setAvgVerticalOscillation(Float avgVerticalOscillation) {
        setFieldValue(89, 0, avgVerticalOscillation, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stance_time_percent field
     * Units: percent
     *
     * @return avg_stance_time_percent
     */
    public Float getAvgStanceTimePercent() {
        return getFieldFloatValue(90, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stance_time_percent field
     * Units: percent
     *
     * @param avgStanceTimePercent The new avgStanceTimePercent value to be set
     */
    public void setAvgStanceTimePercent(Float avgStanceTimePercent) {
        setFieldValue(90, 0, avgStanceTimePercent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stance_time field
     * Units: ms
     *
     * @return avg_stance_time
     */
    public Float getAvgStanceTime() {
        return getFieldFloatValue(91, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stance_time field
     * Units: ms
     *
     * @param avgStanceTime The new avgStanceTime value to be set
     */
    public void setAvgStanceTime(Float avgStanceTime) {
        setFieldValue(91, 0, avgStanceTime, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_fractional_cadence field
     * Units: rpm
     * Comment: fractional part of the avg_cadence
     *
     * @return avg_fractional_cadence
     */
    public Float getAvgFractionalCadence() {
        return getFieldFloatValue(92, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_fractional_cadence field
     * Units: rpm
     * Comment: fractional part of the avg_cadence
     *
     * @param avgFractionalCadence The new avgFractionalCadence value to be set
     */
    public void setAvgFractionalCadence(Float avgFractionalCadence) {
        setFieldValue(92, 0, avgFractionalCadence, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_fractional_cadence field
     * Units: rpm
     * Comment: fractional part of the max_cadence
     *
     * @return max_fractional_cadence
     */
    public Float getMaxFractionalCadence() {
        return getFieldFloatValue(93, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_fractional_cadence field
     * Units: rpm
     * Comment: fractional part of the max_cadence
     *
     * @param maxFractionalCadence The new maxFractionalCadence value to be set
     */
    public void setMaxFractionalCadence(Float maxFractionalCadence) {
        setFieldValue(93, 0, maxFractionalCadence, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_fractional_cycles field
     * Units: cycles
     * Comment: fractional part of the total_cycles
     *
     * @return total_fractional_cycles
     */
    public Float getTotalFractionalCycles() {
        return getFieldFloatValue(94, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_fractional_cycles field
     * Units: cycles
     * Comment: fractional part of the total_cycles
     *
     * @param totalFractionalCycles The new totalFractionalCycles value to be set
     */
    public void setTotalFractionalCycles(Float totalFractionalCycles) {
        setFieldValue(94, 0, totalFractionalCycles, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgTotalHemoglobinConc() {
        
        return getFieldFloatValues(95, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_total_hemoglobin_conc
     */
    public int getNumAvgTotalHemoglobinConc() {
        return getNumFieldValues(95, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Avg saturated and unsaturated hemoglobin
     *
     * @param index of avg_total_hemoglobin_conc
     * @return avg_total_hemoglobin_conc
     */
    public Float getAvgTotalHemoglobinConc(int index) {
        return getFieldFloatValue(95, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Avg saturated and unsaturated hemoglobin
     *
     * @param index of avg_total_hemoglobin_conc
     * @param avgTotalHemoglobinConc The new avgTotalHemoglobinConc value to be set
     */
    public void setAvgTotalHemoglobinConc(int index, Float avgTotalHemoglobinConc) {
        setFieldValue(95, index, avgTotalHemoglobinConc, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getMinTotalHemoglobinConc() {
        
        return getFieldFloatValues(96, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of min_total_hemoglobin_conc
     */
    public int getNumMinTotalHemoglobinConc() {
        return getNumFieldValues(96, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Min saturated and unsaturated hemoglobin
     *
     * @param index of min_total_hemoglobin_conc
     * @return min_total_hemoglobin_conc
     */
    public Float getMinTotalHemoglobinConc(int index) {
        return getFieldFloatValue(96, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Min saturated and unsaturated hemoglobin
     *
     * @param index of min_total_hemoglobin_conc
     * @param minTotalHemoglobinConc The new minTotalHemoglobinConc value to be set
     */
    public void setMinTotalHemoglobinConc(int index, Float minTotalHemoglobinConc) {
        setFieldValue(96, index, minTotalHemoglobinConc, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getMaxTotalHemoglobinConc() {
        
        return getFieldFloatValues(97, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of max_total_hemoglobin_conc
     */
    public int getNumMaxTotalHemoglobinConc() {
        return getNumFieldValues(97, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Max saturated and unsaturated hemoglobin
     *
     * @param index of max_total_hemoglobin_conc
     * @return max_total_hemoglobin_conc
     */
    public Float getMaxTotalHemoglobinConc(int index) {
        return getFieldFloatValue(97, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_total_hemoglobin_conc field
     * Units: g/dL
     * Comment: Max saturated and unsaturated hemoglobin
     *
     * @param index of max_total_hemoglobin_conc
     * @param maxTotalHemoglobinConc The new maxTotalHemoglobinConc value to be set
     */
    public void setMaxTotalHemoglobinConc(int index, Float maxTotalHemoglobinConc) {
        setFieldValue(97, index, maxTotalHemoglobinConc, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgSaturatedHemoglobinPercent() {
        
        return getFieldFloatValues(98, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_saturated_hemoglobin_percent
     */
    public int getNumAvgSaturatedHemoglobinPercent() {
        return getNumFieldValues(98, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Avg percentage of hemoglobin saturated with oxygen
     *
     * @param index of avg_saturated_hemoglobin_percent
     * @return avg_saturated_hemoglobin_percent
     */
    public Float getAvgSaturatedHemoglobinPercent(int index) {
        return getFieldFloatValue(98, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Avg percentage of hemoglobin saturated with oxygen
     *
     * @param index of avg_saturated_hemoglobin_percent
     * @param avgSaturatedHemoglobinPercent The new avgSaturatedHemoglobinPercent value to be set
     */
    public void setAvgSaturatedHemoglobinPercent(int index, Float avgSaturatedHemoglobinPercent) {
        setFieldValue(98, index, avgSaturatedHemoglobinPercent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getMinSaturatedHemoglobinPercent() {
        
        return getFieldFloatValues(99, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of min_saturated_hemoglobin_percent
     */
    public int getNumMinSaturatedHemoglobinPercent() {
        return getNumFieldValues(99, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Min percentage of hemoglobin saturated with oxygen
     *
     * @param index of min_saturated_hemoglobin_percent
     * @return min_saturated_hemoglobin_percent
     */
    public Float getMinSaturatedHemoglobinPercent(int index) {
        return getFieldFloatValue(99, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Min percentage of hemoglobin saturated with oxygen
     *
     * @param index of min_saturated_hemoglobin_percent
     * @param minSaturatedHemoglobinPercent The new minSaturatedHemoglobinPercent value to be set
     */
    public void setMinSaturatedHemoglobinPercent(int index, Float minSaturatedHemoglobinPercent) {
        setFieldValue(99, index, minSaturatedHemoglobinPercent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getMaxSaturatedHemoglobinPercent() {
        
        return getFieldFloatValues(100, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of max_saturated_hemoglobin_percent
     */
    public int getNumMaxSaturatedHemoglobinPercent() {
        return getNumFieldValues(100, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Max percentage of hemoglobin saturated with oxygen
     *
     * @param index of max_saturated_hemoglobin_percent
     * @return max_saturated_hemoglobin_percent
     */
    public Float getMaxSaturatedHemoglobinPercent(int index) {
        return getFieldFloatValue(100, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_saturated_hemoglobin_percent field
     * Units: %
     * Comment: Max percentage of hemoglobin saturated with oxygen
     *
     * @param index of max_saturated_hemoglobin_percent
     * @param maxSaturatedHemoglobinPercent The new maxSaturatedHemoglobinPercent value to be set
     */
    public void setMaxSaturatedHemoglobinPercent(int index, Float maxSaturatedHemoglobinPercent) {
        setFieldValue(100, index, maxSaturatedHemoglobinPercent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_left_torque_effectiveness field
     * Units: percent
     *
     * @return avg_left_torque_effectiveness
     */
    public Float getAvgLeftTorqueEffectiveness() {
        return getFieldFloatValue(101, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_left_torque_effectiveness field
     * Units: percent
     *
     * @param avgLeftTorqueEffectiveness The new avgLeftTorqueEffectiveness value to be set
     */
    public void setAvgLeftTorqueEffectiveness(Float avgLeftTorqueEffectiveness) {
        setFieldValue(101, 0, avgLeftTorqueEffectiveness, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_right_torque_effectiveness field
     * Units: percent
     *
     * @return avg_right_torque_effectiveness
     */
    public Float getAvgRightTorqueEffectiveness() {
        return getFieldFloatValue(102, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_right_torque_effectiveness field
     * Units: percent
     *
     * @param avgRightTorqueEffectiveness The new avgRightTorqueEffectiveness value to be set
     */
    public void setAvgRightTorqueEffectiveness(Float avgRightTorqueEffectiveness) {
        setFieldValue(102, 0, avgRightTorqueEffectiveness, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_left_pedal_smoothness field
     * Units: percent
     *
     * @return avg_left_pedal_smoothness
     */
    public Float getAvgLeftPedalSmoothness() {
        return getFieldFloatValue(103, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_left_pedal_smoothness field
     * Units: percent
     *
     * @param avgLeftPedalSmoothness The new avgLeftPedalSmoothness value to be set
     */
    public void setAvgLeftPedalSmoothness(Float avgLeftPedalSmoothness) {
        setFieldValue(103, 0, avgLeftPedalSmoothness, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_right_pedal_smoothness field
     * Units: percent
     *
     * @return avg_right_pedal_smoothness
     */
    public Float getAvgRightPedalSmoothness() {
        return getFieldFloatValue(104, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_right_pedal_smoothness field
     * Units: percent
     *
     * @param avgRightPedalSmoothness The new avgRightPedalSmoothness value to be set
     */
    public void setAvgRightPedalSmoothness(Float avgRightPedalSmoothness) {
        setFieldValue(104, 0, avgRightPedalSmoothness, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_combined_pedal_smoothness field
     * Units: percent
     *
     * @return avg_combined_pedal_smoothness
     */
    public Float getAvgCombinedPedalSmoothness() {
        return getFieldFloatValue(105, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_combined_pedal_smoothness field
     * Units: percent
     *
     * @param avgCombinedPedalSmoothness The new avgCombinedPedalSmoothness value to be set
     */
    public void setAvgCombinedPedalSmoothness(Float avgCombinedPedalSmoothness) {
        setFieldValue(105, 0, avgCombinedPedalSmoothness, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get sport_profile_name field
     * Comment: Sport name from associated sport mesg
     *
     * @return sport_profile_name
     */
    public String getSportProfileName() {
        return getFieldStringValue(110, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set sport_profile_name field
     * Comment: Sport name from associated sport mesg
     *
     * @param sportProfileName The new sportProfileName value to be set
     */
    public void setSportProfileName(String sportProfileName) {
        setFieldValue(110, 0, sportProfileName, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get sport_index field
     *
     * @return sport_index
     */
    public Short getSportIndex() {
        return getFieldShortValue(111, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set sport_index field
     *
     * @param sportIndex The new sportIndex value to be set
     */
    public void setSportIndex(Short sportIndex) {
        setFieldValue(111, 0, sportIndex, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get time_standing field
     * Units: s
     * Comment: Total time spend in the standing position
     *
     * @return time_standing
     */
    public Float getTimeStanding() {
        return getFieldFloatValue(112, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set time_standing field
     * Units: s
     * Comment: Total time spend in the standing position
     *
     * @param timeStanding The new timeStanding value to be set
     */
    public void setTimeStanding(Float timeStanding) {
        setFieldValue(112, 0, timeStanding, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get stand_count field
     * Comment: Number of transitions to the standing state
     *
     * @return stand_count
     */
    public Integer getStandCount() {
        return getFieldIntegerValue(113, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set stand_count field
     * Comment: Number of transitions to the standing state
     *
     * @param standCount The new standCount value to be set
     */
    public void setStandCount(Integer standCount) {
        setFieldValue(113, 0, standCount, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_left_pco field
     * Units: mm
     * Comment: Average platform center offset Left
     *
     * @return avg_left_pco
     */
    public Byte getAvgLeftPco() {
        return getFieldByteValue(114, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_left_pco field
     * Units: mm
     * Comment: Average platform center offset Left
     *
     * @param avgLeftPco The new avgLeftPco value to be set
     */
    public void setAvgLeftPco(Byte avgLeftPco) {
        setFieldValue(114, 0, avgLeftPco, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_right_pco field
     * Units: mm
     * Comment: Average platform center offset Right
     *
     * @return avg_right_pco
     */
    public Byte getAvgRightPco() {
        return getFieldByteValue(115, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_right_pco field
     * Units: mm
     * Comment: Average platform center offset Right
     *
     * @param avgRightPco The new avgRightPco value to be set
     */
    public void setAvgRightPco(Byte avgRightPco) {
        setFieldValue(115, 0, avgRightPco, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgLeftPowerPhase() {
        
        return getFieldFloatValues(116, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_left_power_phase
     */
    public int getNumAvgLeftPowerPhase() {
        return getNumFieldValues(116, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_left_power_phase field
     * Units: degrees
     * Comment: Average left power phase angles. Indexes defined by power_phase_type.
     *
     * @param index of avg_left_power_phase
     * @return avg_left_power_phase
     */
    public Float getAvgLeftPowerPhase(int index) {
        return getFieldFloatValue(116, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_left_power_phase field
     * Units: degrees
     * Comment: Average left power phase angles. Indexes defined by power_phase_type.
     *
     * @param index of avg_left_power_phase
     * @param avgLeftPowerPhase The new avgLeftPowerPhase value to be set
     */
    public void setAvgLeftPowerPhase(int index, Float avgLeftPowerPhase) {
        setFieldValue(116, index, avgLeftPowerPhase, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgLeftPowerPhasePeak() {
        
        return getFieldFloatValues(117, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_left_power_phase_peak
     */
    public int getNumAvgLeftPowerPhasePeak() {
        return getNumFieldValues(117, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_left_power_phase_peak field
     * Units: degrees
     * Comment: Average left power phase peak angles. Data value indexes defined by power_phase_type.
     *
     * @param index of avg_left_power_phase_peak
     * @return avg_left_power_phase_peak
     */
    public Float getAvgLeftPowerPhasePeak(int index) {
        return getFieldFloatValue(117, 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.
     *
     * @param index of avg_left_power_phase_peak
     * @param avgLeftPowerPhasePeak The new avgLeftPowerPhasePeak value to be set
     */
    public void setAvgLeftPowerPhasePeak(int index, Float avgLeftPowerPhasePeak) {
        setFieldValue(117, index, avgLeftPowerPhasePeak, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgRightPowerPhase() {
        
        return getFieldFloatValues(118, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_right_power_phase
     */
    public int getNumAvgRightPowerPhase() {
        return getNumFieldValues(118, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_right_power_phase field
     * Units: degrees
     * Comment: Average right power phase angles. Data value indexes defined by power_phase_type.
     *
     * @param index of avg_right_power_phase
     * @return avg_right_power_phase
     */
    public Float getAvgRightPowerPhase(int index) {
        return getFieldFloatValue(118, 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.
     *
     * @param index of avg_right_power_phase
     * @param avgRightPowerPhase The new avgRightPowerPhase value to be set
     */
    public void setAvgRightPowerPhase(int index, Float avgRightPowerPhase) {
        setFieldValue(118, index, avgRightPowerPhase, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Float[] getAvgRightPowerPhasePeak() {
        
        return getFieldFloatValues(119, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_right_power_phase_peak
     */
    public int getNumAvgRightPowerPhasePeak() {
        return getNumFieldValues(119, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_right_power_phase_peak field
     * Units: degrees
     * Comment: Average right power phase peak angles data value indexes defined by power_phase_type.
     *
     * @param index of avg_right_power_phase_peak
     * @return avg_right_power_phase_peak
     */
    public Float getAvgRightPowerPhasePeak(int index) {
        return getFieldFloatValue(119, 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.
     *
     * @param index of avg_right_power_phase_peak
     * @param avgRightPowerPhasePeak The new avgRightPowerPhasePeak value to be set
     */
    public void setAvgRightPowerPhasePeak(int index, Float avgRightPowerPhasePeak) {
        setFieldValue(119, index, avgRightPowerPhasePeak, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Integer[] getAvgPowerPosition() {
        
        return getFieldIntegerValues(120, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_power_position
     */
    public int getNumAvgPowerPosition() {
        return getNumFieldValues(120, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_power_position field
     * Units: watts
     * Comment: Average power by position. Data value indexes defined by rider_position_type.
     *
     * @param index of avg_power_position
     * @return avg_power_position
     */
    public Integer getAvgPowerPosition(int index) {
        return getFieldIntegerValue(120, 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.
     *
     * @param index of avg_power_position
     * @param avgPowerPosition The new avgPowerPosition value to be set
     */
    public void setAvgPowerPosition(int index, Integer avgPowerPosition) {
        setFieldValue(120, index, avgPowerPosition, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Integer[] getMaxPowerPosition() {
        
        return getFieldIntegerValues(121, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of max_power_position
     */
    public int getNumMaxPowerPosition() {
        return getNumFieldValues(121, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_power_position field
     * Units: watts
     * Comment: Maximum power by position. Data value indexes defined by rider_position_type.
     *
     * @param index of max_power_position
     * @return max_power_position
     */
    public Integer getMaxPowerPosition(int index) {
        return getFieldIntegerValue(121, 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.
     *
     * @param index of max_power_position
     * @param maxPowerPosition The new maxPowerPosition value to be set
     */
    public void setMaxPowerPosition(int index, Integer maxPowerPosition) {
        setFieldValue(121, index, maxPowerPosition, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Short[] getAvgCadencePosition() {
        
        return getFieldShortValues(122, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of avg_cadence_position
     */
    public int getNumAvgCadencePosition() {
        return getNumFieldValues(122, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_cadence_position field
     * Units: rpm
     * Comment: Average cadence by position. Data value indexes defined by rider_position_type.
     *
     * @param index of avg_cadence_position
     * @return avg_cadence_position
     */
    public Short getAvgCadencePosition(int index) {
        return getFieldShortValue(122, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_cadence_position field
     * Units: rpm
     * Comment: Average cadence by position. Data value indexes defined by rider_position_type.
     *
     * @param index of avg_cadence_position
     * @param avgCadencePosition The new avgCadencePosition value to be set
     */
    public void setAvgCadencePosition(int index, Short avgCadencePosition) {
        setFieldValue(122, index, avgCadencePosition, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    public Short[] getMaxCadencePosition() {
        
        return getFieldShortValues(123, Fit.SUBFIELD_INDEX_MAIN_FIELD);
        
    }

    /**
     * @return number of max_cadence_position
     */
    public int getNumMaxCadencePosition() {
        return getNumFieldValues(123, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_cadence_position field
     * Units: rpm
     * Comment: Maximum cadence by position. Data value indexes defined by rider_position_type.
     *
     * @param index of max_cadence_position
     * @return max_cadence_position
     */
    public Short getMaxCadencePosition(int index) {
        return getFieldShortValue(123, index, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_cadence_position field
     * Units: rpm
     * Comment: Maximum cadence by position. Data value indexes defined by rider_position_type.
     *
     * @param index of max_cadence_position
     * @param maxCadencePosition The new maxCadencePosition value to be set
     */
    public void setMaxCadencePosition(int index, Short maxCadencePosition) {
        setFieldValue(123, index, maxCadencePosition, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_avg_speed field
     * Units: m/s
     * Comment: total_distance / total_timer_time
     *
     * @return enhanced_avg_speed
     */
    public Float getEnhancedAvgSpeed() {
        return getFieldFloatValue(124, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_avg_speed field
     * Units: m/s
     * Comment: total_distance / total_timer_time
     *
     * @param enhancedAvgSpeed The new enhancedAvgSpeed value to be set
     */
    public void setEnhancedAvgSpeed(Float enhancedAvgSpeed) {
        setFieldValue(124, 0, enhancedAvgSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_max_speed field
     * Units: m/s
     *
     * @return enhanced_max_speed
     */
    public Float getEnhancedMaxSpeed() {
        return getFieldFloatValue(125, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_max_speed field
     * Units: m/s
     *
     * @param enhancedMaxSpeed The new enhancedMaxSpeed value to be set
     */
    public void setEnhancedMaxSpeed(Float enhancedMaxSpeed) {
        setFieldValue(125, 0, enhancedMaxSpeed, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_avg_altitude field
     * Units: m
     *
     * @return enhanced_avg_altitude
     */
    public Float getEnhancedAvgAltitude() {
        return getFieldFloatValue(126, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_avg_altitude field
     * Units: m
     *
     * @param enhancedAvgAltitude The new enhancedAvgAltitude value to be set
     */
    public void setEnhancedAvgAltitude(Float enhancedAvgAltitude) {
        setFieldValue(126, 0, enhancedAvgAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_min_altitude field
     * Units: m
     *
     * @return enhanced_min_altitude
     */
    public Float getEnhancedMinAltitude() {
        return getFieldFloatValue(127, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_min_altitude field
     * Units: m
     *
     * @param enhancedMinAltitude The new enhancedMinAltitude value to be set
     */
    public void setEnhancedMinAltitude(Float enhancedMinAltitude) {
        setFieldValue(127, 0, enhancedMinAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_max_altitude field
     * Units: m
     *
     * @return enhanced_max_altitude
     */
    public Float getEnhancedMaxAltitude() {
        return getFieldFloatValue(128, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_max_altitude field
     * Units: m
     *
     * @param enhancedMaxAltitude The new enhancedMaxAltitude value to be set
     */
    public void setEnhancedMaxAltitude(Float enhancedMaxAltitude) {
        setFieldValue(128, 0, enhancedMaxAltitude, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_lev_motor_power field
     * Units: watts
     * Comment: lev average motor power during session
     *
     * @return avg_lev_motor_power
     */
    public Integer getAvgLevMotorPower() {
        return getFieldIntegerValue(129, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_lev_motor_power field
     * Units: watts
     * Comment: lev average motor power during session
     *
     * @param avgLevMotorPower The new avgLevMotorPower value to be set
     */
    public void setAvgLevMotorPower(Integer avgLevMotorPower) {
        setFieldValue(129, 0, avgLevMotorPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_lev_motor_power field
     * Units: watts
     * Comment: lev maximum motor power during session
     *
     * @return max_lev_motor_power
     */
    public Integer getMaxLevMotorPower() {
        return getFieldIntegerValue(130, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_lev_motor_power field
     * Units: watts
     * Comment: lev maximum motor power during session
     *
     * @param maxLevMotorPower The new maxLevMotorPower value to be set
     */
    public void setMaxLevMotorPower(Integer maxLevMotorPower) {
        setFieldValue(130, 0, maxLevMotorPower, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get lev_battery_consumption field
     * Units: percent
     * Comment: lev battery consumption during session
     *
     * @return lev_battery_consumption
     */
    public Float getLevBatteryConsumption() {
        return getFieldFloatValue(131, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set lev_battery_consumption field
     * Units: percent
     * Comment: lev battery consumption during session
     *
     * @param levBatteryConsumption The new levBatteryConsumption value to be set
     */
    public void setLevBatteryConsumption(Float levBatteryConsumption) {
        setFieldValue(131, 0, levBatteryConsumption, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_vertical_ratio field
     * Units: percent
     *
     * @return avg_vertical_ratio
     */
    public Float getAvgVerticalRatio() {
        return getFieldFloatValue(132, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_vertical_ratio field
     * Units: percent
     *
     * @param avgVerticalRatio The new avgVerticalRatio value to be set
     */
    public void setAvgVerticalRatio(Float avgVerticalRatio) {
        setFieldValue(132, 0, avgVerticalRatio, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stance_time_balance field
     * Units: percent
     *
     * @return avg_stance_time_balance
     */
    public Float getAvgStanceTimeBalance() {
        return getFieldFloatValue(133, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stance_time_balance field
     * Units: percent
     *
     * @param avgStanceTimeBalance The new avgStanceTimeBalance value to be set
     */
    public void setAvgStanceTimeBalance(Float avgStanceTimeBalance) {
        setFieldValue(133, 0, avgStanceTimeBalance, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_step_length field
     * Units: mm
     *
     * @return avg_step_length
     */
    public Float getAvgStepLength() {
        return getFieldFloatValue(134, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_step_length field
     * Units: mm
     *
     * @param avgStepLength The new avgStepLength value to be set
     */
    public void setAvgStepLength(Float avgStepLength) {
        setFieldValue(134, 0, avgStepLength, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_anaerobic_training_effect field
     *
     * @return total_anaerobic_training_effect
     */
    public Float getTotalAnaerobicTrainingEffect() {
        return getFieldFloatValue(137, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_anaerobic_training_effect field
     *
     * @param totalAnaerobicTrainingEffect The new totalAnaerobicTrainingEffect value to be set
     */
    public void setTotalAnaerobicTrainingEffect(Float totalAnaerobicTrainingEffect) {
        setFieldValue(137, 0, totalAnaerobicTrainingEffect, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_vam field
     * Units: m/s
     *
     * @return avg_vam
     */
    public Float getAvgVam() {
        return getFieldFloatValue(139, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_vam field
     * Units: m/s
     *
     * @param avgVam The new avgVam value to be set
     */
    public void setAvgVam(Float avgVam) {
        setFieldValue(139, 0, avgVam, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_depth field
     * Units: m
     * Comment: 0 if above water
     *
     * @return avg_depth
     */
    public Float getAvgDepth() {
        return getFieldFloatValue(140, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_depth field
     * Units: m
     * Comment: 0 if above water
     *
     * @param avgDepth The new avgDepth value to be set
     */
    public void setAvgDepth(Float avgDepth) {
        setFieldValue(140, 0, avgDepth, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_depth field
     * Units: m
     * Comment: 0 if above water
     *
     * @return max_depth
     */
    public Float getMaxDepth() {
        return getFieldFloatValue(141, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_depth field
     * Units: m
     * Comment: 0 if above water
     *
     * @param maxDepth The new maxDepth value to be set
     */
    public void setMaxDepth(Float maxDepth) {
        setFieldValue(141, 0, maxDepth, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get surface_interval field
     * Units: s
     * Comment: Time since end of last dive
     *
     * @return surface_interval
     */
    public Long getSurfaceInterval() {
        return getFieldLongValue(142, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set surface_interval field
     * Units: s
     * Comment: Time since end of last dive
     *
     * @param surfaceInterval The new surfaceInterval value to be set
     */
    public void setSurfaceInterval(Long surfaceInterval) {
        setFieldValue(142, 0, surfaceInterval, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get start_cns field
     * Units: percent
     *
     * @return start_cns
     */
    public Short getStartCns() {
        return getFieldShortValue(143, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set start_cns field
     * Units: percent
     *
     * @param startCns The new startCns value to be set
     */
    public void setStartCns(Short startCns) {
        setFieldValue(143, 0, startCns, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get end_cns field
     * Units: percent
     *
     * @return end_cns
     */
    public Short getEndCns() {
        return getFieldShortValue(144, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set end_cns field
     * Units: percent
     *
     * @param endCns The new endCns value to be set
     */
    public void setEndCns(Short endCns) {
        setFieldValue(144, 0, endCns, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get start_n2 field
     * Units: percent
     *
     * @return start_n2
     */
    public Integer getStartN2() {
        return getFieldIntegerValue(145, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set start_n2 field
     * Units: percent
     *
     * @param startN2 The new startN2 value to be set
     */
    public void setStartN2(Integer startN2) {
        setFieldValue(145, 0, startN2, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get end_n2 field
     * Units: percent
     *
     * @return end_n2
     */
    public Integer getEndN2() {
        return getFieldIntegerValue(146, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set end_n2 field
     * Units: percent
     *
     * @param endN2 The new endN2 value to be set
     */
    public void setEndN2(Integer endN2) {
        setFieldValue(146, 0, endN2, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_respiration_rate field
     *
     * @return avg_respiration_rate
     */
    public Short getAvgRespirationRate() {
        return getFieldShortValue(147, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_respiration_rate field
     *
     * @param avgRespirationRate The new avgRespirationRate value to be set
     */
    public void setAvgRespirationRate(Short avgRespirationRate) {
        setFieldValue(147, 0, avgRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_respiration_rate field
     *
     * @return max_respiration_rate
     */
    public Short getMaxRespirationRate() {
        return getFieldShortValue(148, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_respiration_rate field
     *
     * @param maxRespirationRate The new maxRespirationRate value to be set
     */
    public void setMaxRespirationRate(Short maxRespirationRate) {
        setFieldValue(148, 0, maxRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_respiration_rate field
     *
     * @return min_respiration_rate
     */
    public Short getMinRespirationRate() {
        return getFieldShortValue(149, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_respiration_rate field
     *
     * @param minRespirationRate The new minRespirationRate value to be set
     */
    public void setMinRespirationRate(Short minRespirationRate) {
        setFieldValue(149, 0, minRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_temperature field
     * Units: C
     *
     * @return min_temperature
     */
    public Byte getMinTemperature() {
        return getFieldByteValue(150, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_temperature field
     * Units: C
     *
     * @param minTemperature The new minTemperature value to be set
     */
    public void setMinTemperature(Byte minTemperature) {
        setFieldValue(150, 0, minTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get o2_toxicity field
     * Units: OTUs
     *
     * @return o2_toxicity
     */
    public Integer getO2Toxicity() {
        return getFieldIntegerValue(155, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set o2_toxicity field
     * Units: OTUs
     *
     * @param o2Toxicity The new o2Toxicity value to be set
     */
    public void setO2Toxicity(Integer o2Toxicity) {
        setFieldValue(155, 0, o2Toxicity, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get dive_number field
     *
     * @return dive_number
     */
    public Long getDiveNumber() {
        return getFieldLongValue(156, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set dive_number field
     *
     * @param diveNumber The new diveNumber value to be set
     */
    public void setDiveNumber(Long diveNumber) {
        setFieldValue(156, 0, diveNumber, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get training_load_peak field
     *
     * @return training_load_peak
     */
    public Float getTrainingLoadPeak() {
        return getFieldFloatValue(168, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set training_load_peak field
     *
     * @param trainingLoadPeak The new trainingLoadPeak value to be set
     */
    public void setTrainingLoadPeak(Float trainingLoadPeak) {
        setFieldValue(168, 0, trainingLoadPeak, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_avg_respiration_rate field
     * Units: Breaths/min
     *
     * @return enhanced_avg_respiration_rate
     */
    public Float getEnhancedAvgRespirationRate() {
        return getFieldFloatValue(169, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_avg_respiration_rate field
     * Units: Breaths/min
     *
     * @param enhancedAvgRespirationRate The new enhancedAvgRespirationRate value to be set
     */
    public void setEnhancedAvgRespirationRate(Float enhancedAvgRespirationRate) {
        setFieldValue(169, 0, enhancedAvgRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_max_respiration_rate field
     * Units: Breaths/min
     *
     * @return enhanced_max_respiration_rate
     */
    public Float getEnhancedMaxRespirationRate() {
        return getFieldFloatValue(170, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_max_respiration_rate field
     * Units: Breaths/min
     *
     * @param enhancedMaxRespirationRate The new enhancedMaxRespirationRate value to be set
     */
    public void setEnhancedMaxRespirationRate(Float enhancedMaxRespirationRate) {
        setFieldValue(170, 0, enhancedMaxRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get enhanced_min_respiration_rate field
     *
     * @return enhanced_min_respiration_rate
     */
    public Float getEnhancedMinRespirationRate() {
        return getFieldFloatValue(180, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set enhanced_min_respiration_rate field
     *
     * @param enhancedMinRespirationRate The new enhancedMinRespirationRate value to be set
     */
    public void setEnhancedMinRespirationRate(Float enhancedMinRespirationRate) {
        setFieldValue(180, 0, enhancedMinRespirationRate, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get 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.
     *
     * @return total_grit
     */
    public Float getTotalGrit() {
        return getFieldFloatValue(181, 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.
     *
     * @param totalGrit The new totalGrit value to be set
     */
    public void setTotalGrit(Float totalGrit) {
        setFieldValue(181, 0, totalGrit, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_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.
     *
     * @return total_flow
     */
    public Float getTotalFlow() {
        return getFieldFloatValue(182, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_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.
     *
     * @param totalFlow The new totalFlow value to be set
     */
    public void setTotalFlow(Float totalFlow) {
        setFieldValue(182, 0, totalFlow, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get jump_count field
     *
     * @return jump_count
     */
    public Integer getJumpCount() {
        return getFieldIntegerValue(183, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set jump_count field
     *
     * @param jumpCount The new jumpCount value to be set
     */
    public void setJumpCount(Integer jumpCount) {
        setFieldValue(183, 0, jumpCount, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_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.
     *
     * @return avg_grit
     */
    public Float getAvgGrit() {
        return getFieldFloatValue(186, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_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.
     *
     * @param avgGrit The new avgGrit value to be set
     */
    public void setAvgGrit(Float avgGrit) {
        setFieldValue(186, 0, avgGrit, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get 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.
     *
     * @return avg_flow
     */
    public Float getAvgFlow() {
        return getFieldFloatValue(187, 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.
     *
     * @param avgFlow The new avgFlow value to be set
     */
    public void setAvgFlow(Float avgFlow) {
        setFieldValue(187, 0, avgFlow, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_spo2 field
     * Units: percent
     * Comment: Average SPO2 for the monitoring session
     *
     * @return avg_spo2
     */
    public Short getAvgSpo2() {
        return getFieldShortValue(194, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_spo2 field
     * Units: percent
     * Comment: Average SPO2 for the monitoring session
     *
     * @param avgSpo2 The new avgSpo2 value to be set
     */
    public void setAvgSpo2(Short avgSpo2) {
        setFieldValue(194, 0, avgSpo2, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_stress field
     * Units: percent
     * Comment: Average stress for the monitoring session
     *
     * @return avg_stress
     */
    public Short getAvgStress() {
        return getFieldShortValue(195, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_stress field
     * Units: percent
     * Comment: Average stress for the monitoring session
     *
     * @param avgStress The new avgStress value to be set
     */
    public void setAvgStress(Short avgStress) {
        setFieldValue(195, 0, avgStress, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get sdrr_hrv field
     * Units: mS
     * Comment: Standard deviation of R-R interval (SDRR) - Heart rate variability measure most useful for wellness users.
     *
     * @return sdrr_hrv
     */
    public Short getSdrrHrv() {
        return getFieldShortValue(197, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set sdrr_hrv field
     * Units: mS
     * Comment: Standard deviation of R-R interval (SDRR) - Heart rate variability measure most useful for wellness users.
     *
     * @param sdrrHrv The new sdrrHrv value to be set
     */
    public void setSdrrHrv(Short sdrrHrv) {
        setFieldValue(197, 0, sdrrHrv, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get rmssd_hrv field
     * Units: mS
     * Comment: Root mean square successive difference (RMSSD) - Heart rate variability measure most useful for athletes
     *
     * @return rmssd_hrv
     */
    public Short getRmssdHrv() {
        return getFieldShortValue(198, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set rmssd_hrv field
     * Units: mS
     * Comment: Root mean square successive difference (RMSSD) - Heart rate variability measure most useful for athletes
     *
     * @param rmssdHrv The new rmssdHrv value to be set
     */
    public void setRmssdHrv(Short rmssdHrv) {
        setFieldValue(198, 0, rmssdHrv, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_fractional_ascent field
     * Units: m
     * Comment: fractional part of total_ascent
     *
     * @return total_fractional_ascent
     */
    public Float getTotalFractionalAscent() {
        return getFieldFloatValue(199, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_fractional_ascent field
     * Units: m
     * Comment: fractional part of total_ascent
     *
     * @param totalFractionalAscent The new totalFractionalAscent value to be set
     */
    public void setTotalFractionalAscent(Float totalFractionalAscent) {
        setFieldValue(199, 0, totalFractionalAscent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get total_fractional_descent field
     * Units: m
     * Comment: fractional part of total_descent
     *
     * @return total_fractional_descent
     */
    public Float getTotalFractionalDescent() {
        return getFieldFloatValue(200, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set total_fractional_descent field
     * Units: m
     * Comment: fractional part of total_descent
     *
     * @param totalFractionalDescent The new totalFractionalDescent value to be set
     */
    public void setTotalFractionalDescent(Float totalFractionalDescent) {
        setFieldValue(200, 0, totalFractionalDescent, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get avg_core_temperature field
     * Units: C
     *
     * @return avg_core_temperature
     */
    public Float getAvgCoreTemperature() {
        return getFieldFloatValue(208, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set avg_core_temperature field
     * Units: C
     *
     * @param avgCoreTemperature The new avgCoreTemperature value to be set
     */
    public void setAvgCoreTemperature(Float avgCoreTemperature) {
        setFieldValue(208, 0, avgCoreTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get min_core_temperature field
     * Units: C
     *
     * @return min_core_temperature
     */
    public Float getMinCoreTemperature() {
        return getFieldFloatValue(209, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set min_core_temperature field
     * Units: C
     *
     * @param minCoreTemperature The new minCoreTemperature value to be set
     */
    public void setMinCoreTemperature(Float minCoreTemperature) {
        setFieldValue(209, 0, minCoreTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Get max_core_temperature field
     * Units: C
     *
     * @return max_core_temperature
     */
    public Float getMaxCoreTemperature() {
        return getFieldFloatValue(210, 0, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

    /**
     * Set max_core_temperature field
     * Units: C
     *
     * @param maxCoreTemperature The new maxCoreTemperature value to be set
     */
    public void setMaxCoreTemperature(Float maxCoreTemperature) {
        setFieldValue(210, 0, maxCoreTemperature, Fit.SUBFIELD_INDEX_MAIN_FIELD);
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy