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

t.21.120.2.source-code.Profile 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 Profile {
    public class SubFields {
        // file_id message, product field
        public static final int FILE_ID_MESG_PRODUCT_FIELD_FAVERO_PRODUCT = 0;
        public static final int FILE_ID_MESG_PRODUCT_FIELD_GARMIN_PRODUCT = 1;
        public static final int FILE_ID_MESG_PRODUCT_FIELD_SUBFIELDS = 2;
        public static final int FILE_ID_MESG_PRODUCT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int FILE_ID_MESG_PRODUCT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // slave_device message, product field
        public static final int SLAVE_DEVICE_MESG_PRODUCT_FIELD_FAVERO_PRODUCT = 0;
        public static final int SLAVE_DEVICE_MESG_PRODUCT_FIELD_GARMIN_PRODUCT = 1;
        public static final int SLAVE_DEVICE_MESG_PRODUCT_FIELD_SUBFIELDS = 2;
        public static final int SLAVE_DEVICE_MESG_PRODUCT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SLAVE_DEVICE_MESG_PRODUCT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // mesg_capabilities message, count field
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_NUM_PER_FILE = 0;
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_MAX_PER_FILE = 1;
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_MAX_PER_FILE_TYPE = 2;
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_SUBFIELDS = 3;
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int MESG_CAPABILITIES_MESG_COUNT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // watchface_settings message, layout field
        public static final int WATCHFACE_SETTINGS_MESG_LAYOUT_FIELD_DIGITAL_LAYOUT = 0;
        public static final int WATCHFACE_SETTINGS_MESG_LAYOUT_FIELD_ANALOG_LAYOUT = 1;
        public static final int WATCHFACE_SETTINGS_MESG_LAYOUT_FIELD_SUBFIELDS = 2;
        public static final int WATCHFACE_SETTINGS_MESG_LAYOUT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WATCHFACE_SETTINGS_MESG_LAYOUT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // dive_settings message, heart_rate_source field
        public static final int DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_ANTPLUS_DEVICE_TYPE = 0;
        public static final int DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_LOCAL_DEVICE_TYPE = 1;
        public static final int DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_SUBFIELDS = 2;
        public static final int DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // session message, total_cycles field
        public static final int SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES = 0;
        public static final int SESSION_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES = 1;
        public static final int SESSION_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS = 2;
        public static final int SESSION_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SESSION_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // session message, avg_cadence field
        public static final int SESSION_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE = 0;
        public static final int SESSION_MESG_AVG_CADENCE_FIELD_SUBFIELDS = 1;
        public static final int SESSION_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SESSION_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // session message, max_cadence field
        public static final int SESSION_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE = 0;
        public static final int SESSION_MESG_MAX_CADENCE_FIELD_SUBFIELDS = 1;
        public static final int SESSION_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SESSION_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // lap message, total_cycles field
        public static final int LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STRIDES = 0;
        public static final int LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES = 1;
        public static final int LAP_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS = 2;
        public static final int LAP_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int LAP_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // lap message, avg_cadence field
        public static final int LAP_MESG_AVG_CADENCE_FIELD_AVG_RUNNING_CADENCE = 0;
        public static final int LAP_MESG_AVG_CADENCE_FIELD_SUBFIELDS = 1;
        public static final int LAP_MESG_AVG_CADENCE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int LAP_MESG_AVG_CADENCE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // lap message, max_cadence field
        public static final int LAP_MESG_MAX_CADENCE_FIELD_MAX_RUNNING_CADENCE = 0;
        public static final int LAP_MESG_MAX_CADENCE_FIELD_SUBFIELDS = 1;
        public static final int LAP_MESG_MAX_CADENCE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int LAP_MESG_MAX_CADENCE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // event message, data field
        public static final int EVENT_MESG_DATA_FIELD_TIMER_TRIGGER = 0;
        public static final int EVENT_MESG_DATA_FIELD_COURSE_POINT_INDEX = 1;
        public static final int EVENT_MESG_DATA_FIELD_BATTERY_LEVEL = 2;
        public static final int EVENT_MESG_DATA_FIELD_VIRTUAL_PARTNER_SPEED = 3;
        public static final int EVENT_MESG_DATA_FIELD_HR_HIGH_ALERT = 4;
        public static final int EVENT_MESG_DATA_FIELD_HR_LOW_ALERT = 5;
        public static final int EVENT_MESG_DATA_FIELD_SPEED_HIGH_ALERT = 6;
        public static final int EVENT_MESG_DATA_FIELD_SPEED_LOW_ALERT = 7;
        public static final int EVENT_MESG_DATA_FIELD_CAD_HIGH_ALERT = 8;
        public static final int EVENT_MESG_DATA_FIELD_CAD_LOW_ALERT = 9;
        public static final int EVENT_MESG_DATA_FIELD_POWER_HIGH_ALERT = 10;
        public static final int EVENT_MESG_DATA_FIELD_POWER_LOW_ALERT = 11;
        public static final int EVENT_MESG_DATA_FIELD_TIME_DURATION_ALERT = 12;
        public static final int EVENT_MESG_DATA_FIELD_DISTANCE_DURATION_ALERT = 13;
        public static final int EVENT_MESG_DATA_FIELD_CALORIE_DURATION_ALERT = 14;
        public static final int EVENT_MESG_DATA_FIELD_FITNESS_EQUIPMENT_STATE = 15;
        public static final int EVENT_MESG_DATA_FIELD_SPORT_POINT = 16;
        public static final int EVENT_MESG_DATA_FIELD_GEAR_CHANGE_DATA = 17;
        public static final int EVENT_MESG_DATA_FIELD_RIDER_POSITION = 18;
        public static final int EVENT_MESG_DATA_FIELD_COMM_TIMEOUT = 19;
        public static final int EVENT_MESG_DATA_FIELD_DIVE_ALERT = 20;
        public static final int EVENT_MESG_DATA_FIELD_AUTO_ACTIVITY_DETECT_DURATION = 21;
        public static final int EVENT_MESG_DATA_FIELD_RADAR_THREAT_ALERT = 22;
        public static final int EVENT_MESG_DATA_FIELD_SUBFIELDS = 23;
        public static final int EVENT_MESG_DATA_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int EVENT_MESG_DATA_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // event message, start_timestamp field
        public static final int EVENT_MESG_START_TIMESTAMP_FIELD_AUTO_ACTIVITY_DETECT_START_TIMESTAMP = 0;
        public static final int EVENT_MESG_START_TIMESTAMP_FIELD_SUBFIELDS = 1;
        public static final int EVENT_MESG_START_TIMESTAMP_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int EVENT_MESG_START_TIMESTAMP_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // device_info message, device_type field
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_BLE_DEVICE_TYPE = 0;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_ANTPLUS_DEVICE_TYPE = 1;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_ANT_DEVICE_TYPE = 2;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_LOCAL_DEVICE_TYPE = 3;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_SUBFIELDS = 4;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int DEVICE_INFO_MESG_DEVICE_TYPE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // device_info message, product field
        public static final int DEVICE_INFO_MESG_PRODUCT_FIELD_FAVERO_PRODUCT = 0;
        public static final int DEVICE_INFO_MESG_PRODUCT_FIELD_GARMIN_PRODUCT = 1;
        public static final int DEVICE_INFO_MESG_PRODUCT_FIELD_SUBFIELDS = 2;
        public static final int DEVICE_INFO_MESG_PRODUCT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int DEVICE_INFO_MESG_PRODUCT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // training_file message, product field
        public static final int TRAINING_FILE_MESG_PRODUCT_FIELD_FAVERO_PRODUCT = 0;
        public static final int TRAINING_FILE_MESG_PRODUCT_FIELD_GARMIN_PRODUCT = 1;
        public static final int TRAINING_FILE_MESG_PRODUCT_FIELD_SUBFIELDS = 2;
        public static final int TRAINING_FILE_MESG_PRODUCT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int TRAINING_FILE_MESG_PRODUCT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // three_d_sensor_calibration message, calibration_factor field
        public static final int THREE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_ACCEL_CAL_FACTOR = 0;
        public static final int THREE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_GYRO_CAL_FACTOR = 1;
        public static final int THREE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_SUBFIELDS = 2;
        public static final int THREE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int THREE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // one_d_sensor_calibration message, calibration_factor field
        public static final int ONE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_BARO_CAL_FACTOR = 0;
        public static final int ONE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_SUBFIELDS = 1;
        public static final int ONE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int ONE_D_SENSOR_CALIBRATION_MESG_CALIBRATION_FACTOR_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // segment_lap message, total_cycles field
        public static final int SEGMENT_LAP_MESG_TOTAL_CYCLES_FIELD_TOTAL_STROKES = 0;
        public static final int SEGMENT_LAP_MESG_TOTAL_CYCLES_FIELD_SUBFIELDS = 1;
        public static final int SEGMENT_LAP_MESG_TOTAL_CYCLES_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SEGMENT_LAP_MESG_TOTAL_CYCLES_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, duration_value field
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_TIME = 0;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_DISTANCE = 1;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_HR = 2;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_CALORIES = 3;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_STEP = 4;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_POWER = 5;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_DURATION_REPS = 6;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_SUBFIELDS = 7;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_DURATION_VALUE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, target_value field
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_TARGET_SPEED_ZONE = 0;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_TARGET_HR_ZONE = 1;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_TARGET_CADENCE_ZONE = 2;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_TARGET_POWER_ZONE = 3;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_STEPS = 4;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_TIME = 5;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_DISTANCE = 6;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_CALORIES = 7;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_HR = 8;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_REPEAT_POWER = 9;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_TARGET_STROKE_TYPE = 10;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_SUBFIELDS = 11;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_TARGET_VALUE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, custom_target_value_low field
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_CUSTOM_TARGET_SPEED_LOW = 0;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_CUSTOM_TARGET_HEART_RATE_LOW = 1;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_CUSTOM_TARGET_CADENCE_LOW = 2;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_CUSTOM_TARGET_POWER_LOW = 3;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_SUBFIELDS = 4;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_LOW_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, custom_target_value_high field
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_CUSTOM_TARGET_SPEED_HIGH = 0;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_CUSTOM_TARGET_HEART_RATE_HIGH = 1;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_CUSTOM_TARGET_CADENCE_HIGH = 2;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_CUSTOM_TARGET_POWER_HIGH = 3;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_SUBFIELDS = 4;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_CUSTOM_TARGET_VALUE_HIGH_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, secondary_target_value field
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SECONDARY_TARGET_SPEED_ZONE = 0;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SECONDARY_TARGET_HR_ZONE = 1;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SECONDARY_TARGET_CADENCE_ZONE = 2;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SECONDARY_TARGET_POWER_ZONE = 3;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SECONDARY_TARGET_STROKE_TYPE = 4;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_SUBFIELDS = 5;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_SECONDARY_TARGET_VALUE_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, secondary_custom_target_value_low field
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_SECONDARY_CUSTOM_TARGET_SPEED_LOW = 0;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_SECONDARY_CUSTOM_TARGET_HEART_RATE_LOW = 1;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_SECONDARY_CUSTOM_TARGET_CADENCE_LOW = 2;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_SECONDARY_CUSTOM_TARGET_POWER_LOW = 3;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_SUBFIELDS = 4;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_LOW_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // workout_step message, secondary_custom_target_value_high field
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_SECONDARY_CUSTOM_TARGET_SPEED_HIGH = 0;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_SECONDARY_CUSTOM_TARGET_HEART_RATE_HIGH = 1;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_SECONDARY_CUSTOM_TARGET_CADENCE_HIGH = 2;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_SECONDARY_CUSTOM_TARGET_POWER_HIGH = 3;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_SUBFIELDS = 4;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int WORKOUT_STEP_MESG_SECONDARY_CUSTOM_TARGET_VALUE_HIGH_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // schedule message, product field
        public static final int SCHEDULE_MESG_PRODUCT_FIELD_FAVERO_PRODUCT = 0;
        public static final int SCHEDULE_MESG_PRODUCT_FIELD_GARMIN_PRODUCT = 1;
        public static final int SCHEDULE_MESG_PRODUCT_FIELD_SUBFIELDS = 2;
        public static final int SCHEDULE_MESG_PRODUCT_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int SCHEDULE_MESG_PRODUCT_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

        // monitoring message, cycles field
        public static final int MONITORING_MESG_CYCLES_FIELD_STEPS = 0;
        public static final int MONITORING_MESG_CYCLES_FIELD_STROKES = 1;
        public static final int MONITORING_MESG_CYCLES_FIELD_SUBFIELDS = 2;
        public static final int MONITORING_MESG_CYCLES_FIELD_ACTIVE_SUBFIELD = Fit.SUBFIELD_INDEX_ACTIVE_SUBFIELD;
        public static final int MONITORING_MESG_CYCLES_FIELD_MAIN_FIELD = Fit.SUBFIELD_INDEX_MAIN_FIELD;

    }
    /**
     * Returns the string name associated with a given enum value. If there is no such
     * label, returns the string representation of the numerical value instead.
     *
     * @param enumType the type of the enum
     * @param enumVal the numerical value of the enum
     * @return the enum label associated with this value for the given enum type, or the
     *         string representation of the numerical value if there is no such label.
     */
    public static String enumValueName(Profile.Type enumType, long enumVal) {
        String retVal = "";
        short shortVal = (short)enumVal;

        switch (enumType) {
        case ENUM: // No applicable labels for base types
            break;

        case SINT8: // No applicable labels for base types
            break;

        case UINT8: // No applicable labels for base types
            break;

        case SINT16: // No applicable labels for base types
            break;

        case UINT16: // No applicable labels for base types
            break;

        case SINT32: // No applicable labels for base types
            break;

        case UINT32: // No applicable labels for base types
            break;

        case STRING: // No applicable labels for base types
            break;

        case FLOAT32: // No applicable labels for base types
            break;

        case FLOAT64: // No applicable labels for base types
            break;

        case UINT8Z: // No applicable labels for base types
            break;

        case UINT16Z: // No applicable labels for base types
            break;

        case UINT32Z: // No applicable labels for base types
            break;

        case BYTE: // No applicable labels for base types
            break;

        case SINT64: // No applicable labels for base types
            break;

        case UINT64: // No applicable labels for base types
            break;

        case UINT64Z: // No applicable labels for base types
            break;

        case BOOL: // No applicable labels for base types
            break;

        case FILE:
            retVal = File.getStringFromValue(File.getByValue(shortVal));
            break;

        case MESG_NUM:
            retVal = MesgNum.getStringFromValue((int)enumVal);
            break;

        case CHECKSUM:
            retVal = Checksum.getStringFromValue((short)enumVal);
            break;

        case FILE_FLAGS:
            retVal = FileFlags.getStringFromValue((short)enumVal);
            break;

        case MESG_COUNT:
            retVal = MesgCount.getStringFromValue(MesgCount.getByValue(shortVal));
            break;

        case DATE_TIME:
            retVal = DateTime.getStringFromValue(enumVal);
            break;

        case LOCAL_DATE_TIME:
            retVal = LocalDateTime.getStringFromValue(enumVal);
            break;

        case MESSAGE_INDEX:
            retVal = MessageIndex.getStringFromValue((int)enumVal);
            break;

        case DEVICE_INDEX:
            retVal = DeviceIndex.getStringFromValue((short)enumVal);
            break;

        case GENDER:
            retVal = Gender.getStringFromValue(Gender.getByValue(shortVal));
            break;

        case LANGUAGE:
            retVal = Language.getStringFromValue(Language.getByValue(shortVal));
            break;

        case LANGUAGE_BITS_0:
            retVal = LanguageBits0.getStringFromValue((short)enumVal);
            break;

        case LANGUAGE_BITS_1:
            retVal = LanguageBits1.getStringFromValue((short)enumVal);
            break;

        case LANGUAGE_BITS_2:
            retVal = LanguageBits2.getStringFromValue((short)enumVal);
            break;

        case LANGUAGE_BITS_3:
            retVal = LanguageBits3.getStringFromValue((short)enumVal);
            break;

        case LANGUAGE_BITS_4:
            retVal = LanguageBits4.getStringFromValue((short)enumVal);
            break;

        case TIME_ZONE:
            retVal = TimeZone.getStringFromValue(TimeZone.getByValue(shortVal));
            break;

        case DISPLAY_MEASURE:
            retVal = DisplayMeasure.getStringFromValue(DisplayMeasure.getByValue(shortVal));
            break;

        case DISPLAY_HEART:
            retVal = DisplayHeart.getStringFromValue(DisplayHeart.getByValue(shortVal));
            break;

        case DISPLAY_POWER:
            retVal = DisplayPower.getStringFromValue(DisplayPower.getByValue(shortVal));
            break;

        case DISPLAY_POSITION:
            retVal = DisplayPosition.getStringFromValue(DisplayPosition.getByValue(shortVal));
            break;

        case SWITCH:
            retVal = Switch.getStringFromValue(Switch.getByValue(shortVal));
            break;

        case SPORT:
            retVal = Sport.getStringFromValue(Sport.getByValue(shortVal));
            break;

        case SPORT_BITS_0:
            retVal = SportBits0.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_1:
            retVal = SportBits1.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_2:
            retVal = SportBits2.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_3:
            retVal = SportBits3.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_4:
            retVal = SportBits4.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_5:
            retVal = SportBits5.getStringFromValue((short)enumVal);
            break;

        case SPORT_BITS_6:
            retVal = SportBits6.getStringFromValue((short)enumVal);
            break;

        case SUB_SPORT:
            retVal = SubSport.getStringFromValue(SubSport.getByValue(shortVal));
            break;

        case SPORT_EVENT:
            retVal = SportEvent.getStringFromValue(SportEvent.getByValue(shortVal));
            break;

        case ACTIVITY:
            retVal = Activity.getStringFromValue(Activity.getByValue(shortVal));
            break;

        case INTENSITY:
            retVal = Intensity.getStringFromValue(Intensity.getByValue(shortVal));
            break;

        case SESSION_TRIGGER:
            retVal = SessionTrigger.getStringFromValue(SessionTrigger.getByValue(shortVal));
            break;

        case AUTOLAP_TRIGGER:
            retVal = AutolapTrigger.getStringFromValue(AutolapTrigger.getByValue(shortVal));
            break;

        case LAP_TRIGGER:
            retVal = LapTrigger.getStringFromValue(LapTrigger.getByValue(shortVal));
            break;

        case TIME_MODE:
            retVal = TimeMode.getStringFromValue(TimeMode.getByValue(shortVal));
            break;

        case BACKLIGHT_MODE:
            retVal = BacklightMode.getStringFromValue(BacklightMode.getByValue(shortVal));
            break;

        case DATE_MODE:
            retVal = DateMode.getStringFromValue(DateMode.getByValue(shortVal));
            break;

        case BACKLIGHT_TIMEOUT:
            retVal = BacklightTimeout.getStringFromValue((short)enumVal);
            break;

        case EVENT:
            retVal = Event.getStringFromValue(Event.getByValue(shortVal));
            break;

        case EVENT_TYPE:
            retVal = EventType.getStringFromValue(EventType.getByValue(shortVal));
            break;

        case TIMER_TRIGGER:
            retVal = TimerTrigger.getStringFromValue(TimerTrigger.getByValue(shortVal));
            break;

        case FITNESS_EQUIPMENT_STATE:
            retVal = FitnessEquipmentState.getStringFromValue(FitnessEquipmentState.getByValue(shortVal));
            break;

        case TONE:
            retVal = Tone.getStringFromValue(Tone.getByValue(shortVal));
            break;

        case AUTOSCROLL:
            retVal = Autoscroll.getStringFromValue(Autoscroll.getByValue(shortVal));
            break;

        case ACTIVITY_CLASS:
            retVal = ActivityClass.getStringFromValue(ActivityClass.getByValue(shortVal));
            break;

        case HR_ZONE_CALC:
            retVal = HrZoneCalc.getStringFromValue(HrZoneCalc.getByValue(shortVal));
            break;

        case PWR_ZONE_CALC:
            retVal = PwrZoneCalc.getStringFromValue(PwrZoneCalc.getByValue(shortVal));
            break;

        case WKT_STEP_DURATION:
            retVal = WktStepDuration.getStringFromValue(WktStepDuration.getByValue(shortVal));
            break;

        case WKT_STEP_TARGET:
            retVal = WktStepTarget.getStringFromValue(WktStepTarget.getByValue(shortVal));
            break;

        case GOAL:
            retVal = Goal.getStringFromValue(Goal.getByValue(shortVal));
            break;

        case GOAL_RECURRENCE:
            retVal = GoalRecurrence.getStringFromValue(GoalRecurrence.getByValue(shortVal));
            break;

        case GOAL_SOURCE:
            retVal = GoalSource.getStringFromValue(GoalSource.getByValue(shortVal));
            break;

        case SCHEDULE:
            retVal = Schedule.getStringFromValue(Schedule.getByValue(shortVal));
            break;

        case COURSE_POINT:
            retVal = CoursePoint.getStringFromValue(CoursePoint.getByValue(shortVal));
            break;

        case MANUFACTURER:
            retVal = Manufacturer.getStringFromValue((int)enumVal);
            break;

        case GARMIN_PRODUCT:
            retVal = GarminProduct.getStringFromValue((int)enumVal);
            break;

        case ANTPLUS_DEVICE_TYPE:
            retVal = AntplusDeviceType.getStringFromValue((short)enumVal);
            break;

        case ANT_NETWORK:
            retVal = AntNetwork.getStringFromValue(AntNetwork.getByValue(shortVal));
            break;

        case WORKOUT_CAPABILITIES:
            retVal = WorkoutCapabilities.getStringFromValue(enumVal);
            break;

        case BATTERY_STATUS:
            retVal = BatteryStatus.getStringFromValue((short)enumVal);
            break;

        case HR_TYPE:
            retVal = HrType.getStringFromValue(HrType.getByValue(shortVal));
            break;

        case COURSE_CAPABILITIES:
            retVal = CourseCapabilities.getStringFromValue(enumVal);
            break;

        case WEIGHT:
            retVal = Weight.getStringFromValue((int)enumVal);
            break;

        case WORKOUT_HR:
            retVal = WorkoutHr.getStringFromValue(enumVal);
            break;

        case WORKOUT_POWER:
            retVal = WorkoutPower.getStringFromValue(enumVal);
            break;

        case BP_STATUS:
            retVal = BpStatus.getStringFromValue(BpStatus.getByValue(shortVal));
            break;

        case USER_LOCAL_ID:
            retVal = UserLocalId.getStringFromValue((int)enumVal);
            break;

        case SWIM_STROKE:
            retVal = SwimStroke.getStringFromValue(SwimStroke.getByValue(shortVal));
            break;

        case ACTIVITY_TYPE:
            retVal = ActivityType.getStringFromValue(ActivityType.getByValue(shortVal));
            break;

        case ACTIVITY_SUBTYPE:
            retVal = ActivitySubtype.getStringFromValue(ActivitySubtype.getByValue(shortVal));
            break;

        case ACTIVITY_LEVEL:
            retVal = ActivityLevel.getStringFromValue(ActivityLevel.getByValue(shortVal));
            break;

        case SIDE:
            retVal = Side.getStringFromValue(Side.getByValue(shortVal));
            break;

        case LEFT_RIGHT_BALANCE:
            retVal = LeftRightBalance.getStringFromValue((short)enumVal);
            break;

        case LEFT_RIGHT_BALANCE_100:
            retVal = LeftRightBalance100.getStringFromValue((int)enumVal);
            break;

        case LENGTH_TYPE:
            retVal = LengthType.getStringFromValue(LengthType.getByValue(shortVal));
            break;

        case DAY_OF_WEEK:
            retVal = DayOfWeek.getStringFromValue(DayOfWeek.getByValue(shortVal));
            break;

        case CONNECTIVITY_CAPABILITIES:
            retVal = ConnectivityCapabilities.getStringFromValue(enumVal);
            break;

        case WEATHER_REPORT:
            retVal = WeatherReport.getStringFromValue(WeatherReport.getByValue(shortVal));
            break;

        case WEATHER_STATUS:
            retVal = WeatherStatus.getStringFromValue(WeatherStatus.getByValue(shortVal));
            break;

        case WEATHER_SEVERITY:
            retVal = WeatherSeverity.getStringFromValue(WeatherSeverity.getByValue(shortVal));
            break;

        case WEATHER_SEVERE_TYPE:
            retVal = WeatherSevereType.getStringFromValue(WeatherSevereType.getByValue(shortVal));
            break;

        case TIME_INTO_DAY:
            retVal = TimeIntoDay.getStringFromValue(enumVal);
            break;

        case LOCALTIME_INTO_DAY:
            retVal = LocaltimeIntoDay.getStringFromValue(enumVal);
            break;

        case STROKE_TYPE:
            retVal = StrokeType.getStringFromValue(StrokeType.getByValue(shortVal));
            break;

        case BODY_LOCATION:
            retVal = BodyLocation.getStringFromValue(BodyLocation.getByValue(shortVal));
            break;

        case SEGMENT_LAP_STATUS:
            retVal = SegmentLapStatus.getStringFromValue(SegmentLapStatus.getByValue(shortVal));
            break;

        case SEGMENT_LEADERBOARD_TYPE:
            retVal = SegmentLeaderboardType.getStringFromValue(SegmentLeaderboardType.getByValue(shortVal));
            break;

        case SEGMENT_DELETE_STATUS:
            retVal = SegmentDeleteStatus.getStringFromValue(SegmentDeleteStatus.getByValue(shortVal));
            break;

        case SEGMENT_SELECTION_TYPE:
            retVal = SegmentSelectionType.getStringFromValue(SegmentSelectionType.getByValue(shortVal));
            break;

        case SOURCE_TYPE:
            retVal = SourceType.getStringFromValue(SourceType.getByValue(shortVal));
            break;

        case LOCAL_DEVICE_TYPE:
            retVal = LocalDeviceType.getStringFromValue((short)enumVal);
            break;

        case BLE_DEVICE_TYPE:
            retVal = BleDeviceType.getStringFromValue((short)enumVal);
            break;

        case ANT_CHANNEL_ID:
            retVal = AntChannelId.getStringFromValue(enumVal);
            break;

        case DISPLAY_ORIENTATION:
            retVal = DisplayOrientation.getStringFromValue(DisplayOrientation.getByValue(shortVal));
            break;

        case WORKOUT_EQUIPMENT:
            retVal = WorkoutEquipment.getStringFromValue(WorkoutEquipment.getByValue(shortVal));
            break;

        case WATCHFACE_MODE:
            retVal = WatchfaceMode.getStringFromValue(WatchfaceMode.getByValue(shortVal));
            break;

        case DIGITAL_WATCHFACE_LAYOUT:
            retVal = DigitalWatchfaceLayout.getStringFromValue(DigitalWatchfaceLayout.getByValue(shortVal));
            break;

        case ANALOG_WATCHFACE_LAYOUT:
            retVal = AnalogWatchfaceLayout.getStringFromValue(AnalogWatchfaceLayout.getByValue(shortVal));
            break;

        case RIDER_POSITION_TYPE:
            retVal = RiderPositionType.getStringFromValue(RiderPositionType.getByValue(shortVal));
            break;

        case POWER_PHASE_TYPE:
            retVal = PowerPhaseType.getStringFromValue(PowerPhaseType.getByValue(shortVal));
            break;

        case CAMERA_EVENT_TYPE:
            retVal = CameraEventType.getStringFromValue(CameraEventType.getByValue(shortVal));
            break;

        case SENSOR_TYPE:
            retVal = SensorType.getStringFromValue(SensorType.getByValue(shortVal));
            break;

        case BIKE_LIGHT_NETWORK_CONFIG_TYPE:
            retVal = BikeLightNetworkConfigType.getStringFromValue(BikeLightNetworkConfigType.getByValue(shortVal));
            break;

        case COMM_TIMEOUT_TYPE:
            retVal = CommTimeoutType.getStringFromValue((int)enumVal);
            break;

        case CAMERA_ORIENTATION_TYPE:
            retVal = CameraOrientationType.getStringFromValue(CameraOrientationType.getByValue(shortVal));
            break;

        case ATTITUDE_STAGE:
            retVal = AttitudeStage.getStringFromValue(AttitudeStage.getByValue(shortVal));
            break;

        case ATTITUDE_VALIDITY:
            retVal = AttitudeValidity.getStringFromValue((int)enumVal);
            break;

        case AUTO_SYNC_FREQUENCY:
            retVal = AutoSyncFrequency.getStringFromValue(AutoSyncFrequency.getByValue(shortVal));
            break;

        case EXD_LAYOUT:
            retVal = ExdLayout.getStringFromValue(ExdLayout.getByValue(shortVal));
            break;

        case EXD_DISPLAY_TYPE:
            retVal = ExdDisplayType.getStringFromValue(ExdDisplayType.getByValue(shortVal));
            break;

        case EXD_DATA_UNITS:
            retVal = ExdDataUnits.getStringFromValue(ExdDataUnits.getByValue(shortVal));
            break;

        case EXD_QUALIFIERS:
            retVal = ExdQualifiers.getStringFromValue(ExdQualifiers.getByValue(shortVal));
            break;

        case EXD_DESCRIPTORS:
            retVal = ExdDescriptors.getStringFromValue(ExdDescriptors.getByValue(shortVal));
            break;

        case AUTO_ACTIVITY_DETECT:
            retVal = AutoActivityDetect.getStringFromValue(enumVal);
            break;

        case SUPPORTED_EXD_SCREEN_LAYOUTS:
            retVal = SupportedExdScreenLayouts.getStringFromValue(enumVal);
            break;

        case FIT_BASE_TYPE:
            retVal = FitBaseType.getStringFromValue((short)enumVal);
            break;

        case TURN_TYPE:
            retVal = TurnType.getStringFromValue(TurnType.getByValue(shortVal));
            break;

        case BIKE_LIGHT_BEAM_ANGLE_MODE:
            retVal = BikeLightBeamAngleMode.getStringFromValue((short)enumVal);
            break;

        case FIT_BASE_UNIT:
            retVal = FitBaseUnit.getStringFromValue((int)enumVal);
            break;

        case SET_TYPE:
            retVal = SetType.getStringFromValue((short)enumVal);
            break;

        case MAX_MET_CATEGORY:
            retVal = MaxMetCategory.getStringFromValue(MaxMetCategory.getByValue(shortVal));
            break;

        case EXERCISE_CATEGORY:
            retVal = ExerciseCategory.getStringFromValue((int)enumVal);
            break;

        case BENCH_PRESS_EXERCISE_NAME:
            retVal = BenchPressExerciseName.getStringFromValue((int)enumVal);
            break;

        case CALF_RAISE_EXERCISE_NAME:
            retVal = CalfRaiseExerciseName.getStringFromValue((int)enumVal);
            break;

        case CARDIO_EXERCISE_NAME:
            retVal = CardioExerciseName.getStringFromValue((int)enumVal);
            break;

        case CARRY_EXERCISE_NAME:
            retVal = CarryExerciseName.getStringFromValue((int)enumVal);
            break;

        case CHOP_EXERCISE_NAME:
            retVal = ChopExerciseName.getStringFromValue((int)enumVal);
            break;

        case CORE_EXERCISE_NAME:
            retVal = CoreExerciseName.getStringFromValue((int)enumVal);
            break;

        case CRUNCH_EXERCISE_NAME:
            retVal = CrunchExerciseName.getStringFromValue((int)enumVal);
            break;

        case CURL_EXERCISE_NAME:
            retVal = CurlExerciseName.getStringFromValue((int)enumVal);
            break;

        case DEADLIFT_EXERCISE_NAME:
            retVal = DeadliftExerciseName.getStringFromValue((int)enumVal);
            break;

        case FLYE_EXERCISE_NAME:
            retVal = FlyeExerciseName.getStringFromValue((int)enumVal);
            break;

        case HIP_RAISE_EXERCISE_NAME:
            retVal = HipRaiseExerciseName.getStringFromValue((int)enumVal);
            break;

        case HIP_STABILITY_EXERCISE_NAME:
            retVal = HipStabilityExerciseName.getStringFromValue((int)enumVal);
            break;

        case HIP_SWING_EXERCISE_NAME:
            retVal = HipSwingExerciseName.getStringFromValue((int)enumVal);
            break;

        case HYPEREXTENSION_EXERCISE_NAME:
            retVal = HyperextensionExerciseName.getStringFromValue((int)enumVal);
            break;

        case LATERAL_RAISE_EXERCISE_NAME:
            retVal = LateralRaiseExerciseName.getStringFromValue((int)enumVal);
            break;

        case LEG_CURL_EXERCISE_NAME:
            retVal = LegCurlExerciseName.getStringFromValue((int)enumVal);
            break;

        case LEG_RAISE_EXERCISE_NAME:
            retVal = LegRaiseExerciseName.getStringFromValue((int)enumVal);
            break;

        case LUNGE_EXERCISE_NAME:
            retVal = LungeExerciseName.getStringFromValue((int)enumVal);
            break;

        case OLYMPIC_LIFT_EXERCISE_NAME:
            retVal = OlympicLiftExerciseName.getStringFromValue((int)enumVal);
            break;

        case PLANK_EXERCISE_NAME:
            retVal = PlankExerciseName.getStringFromValue((int)enumVal);
            break;

        case PLYO_EXERCISE_NAME:
            retVal = PlyoExerciseName.getStringFromValue((int)enumVal);
            break;

        case PULL_UP_EXERCISE_NAME:
            retVal = PullUpExerciseName.getStringFromValue((int)enumVal);
            break;

        case PUSH_UP_EXERCISE_NAME:
            retVal = PushUpExerciseName.getStringFromValue((int)enumVal);
            break;

        case ROW_EXERCISE_NAME:
            retVal = RowExerciseName.getStringFromValue((int)enumVal);
            break;

        case SHOULDER_PRESS_EXERCISE_NAME:
            retVal = ShoulderPressExerciseName.getStringFromValue((int)enumVal);
            break;

        case SHOULDER_STABILITY_EXERCISE_NAME:
            retVal = ShoulderStabilityExerciseName.getStringFromValue((int)enumVal);
            break;

        case SHRUG_EXERCISE_NAME:
            retVal = ShrugExerciseName.getStringFromValue((int)enumVal);
            break;

        case SIT_UP_EXERCISE_NAME:
            retVal = SitUpExerciseName.getStringFromValue((int)enumVal);
            break;

        case SQUAT_EXERCISE_NAME:
            retVal = SquatExerciseName.getStringFromValue((int)enumVal);
            break;

        case TOTAL_BODY_EXERCISE_NAME:
            retVal = TotalBodyExerciseName.getStringFromValue((int)enumVal);
            break;

        case TRICEPS_EXTENSION_EXERCISE_NAME:
            retVal = TricepsExtensionExerciseName.getStringFromValue((int)enumVal);
            break;

        case WARM_UP_EXERCISE_NAME:
            retVal = WarmUpExerciseName.getStringFromValue((int)enumVal);
            break;

        case RUN_EXERCISE_NAME:
            retVal = RunExerciseName.getStringFromValue((int)enumVal);
            break;

        case WATER_TYPE:
            retVal = WaterType.getStringFromValue(WaterType.getByValue(shortVal));
            break;

        case TISSUE_MODEL_TYPE:
            retVal = TissueModelType.getStringFromValue(TissueModelType.getByValue(shortVal));
            break;

        case DIVE_GAS_STATUS:
            retVal = DiveGasStatus.getStringFromValue(DiveGasStatus.getByValue(shortVal));
            break;

        case DIVE_ALERT:
            retVal = DiveAlert.getStringFromValue(DiveAlert.getByValue(shortVal));
            break;

        case DIVE_ALARM_TYPE:
            retVal = DiveAlarmType.getStringFromValue(DiveAlarmType.getByValue(shortVal));
            break;

        case DIVE_BACKLIGHT_MODE:
            retVal = DiveBacklightMode.getStringFromValue(DiveBacklightMode.getByValue(shortVal));
            break;

        case SLEEP_LEVEL:
            retVal = SleepLevel.getStringFromValue(SleepLevel.getByValue(shortVal));
            break;

        case SPO2_MEASUREMENT_TYPE:
            retVal = Spo2MeasurementType.getStringFromValue(Spo2MeasurementType.getByValue(shortVal));
            break;

        case CCR_SETPOINT_SWITCH_MODE:
            retVal = CcrSetpointSwitchMode.getStringFromValue(CcrSetpointSwitchMode.getByValue(shortVal));
            break;

        case DIVE_GAS_MODE:
            retVal = DiveGasMode.getStringFromValue(DiveGasMode.getByValue(shortVal));
            break;

        case FAVERO_PRODUCT:
            retVal = FaveroProduct.getStringFromValue((int)enumVal);
            break;

        case SPLIT_TYPE:
            retVal = SplitType.getStringFromValue(SplitType.getByValue(shortVal));
            break;

        case CLIMB_PRO_EVENT:
            retVal = ClimbProEvent.getStringFromValue(ClimbProEvent.getByValue(shortVal));
            break;

        case GAS_CONSUMPTION_RATE_TYPE:
            retVal = GasConsumptionRateType.getStringFromValue(GasConsumptionRateType.getByValue(shortVal));
            break;

        case TAP_SENSITIVITY:
            retVal = TapSensitivity.getStringFromValue(TapSensitivity.getByValue(shortVal));
            break;

        case RADAR_THREAT_LEVEL_TYPE:
            retVal = RadarThreatLevelType.getStringFromValue(RadarThreatLevelType.getByValue(shortVal));
            break;

        case MAX_MET_SPEED_SOURCE:
            retVal = MaxMetSpeedSource.getStringFromValue(MaxMetSpeedSource.getByValue(shortVal));
            break;

        case MAX_MET_HEART_RATE_SOURCE:
            retVal = MaxMetHeartRateSource.getStringFromValue(MaxMetHeartRateSource.getByValue(shortVal));
            break;

        case HRV_STATUS:
            retVal = HrvStatus.getStringFromValue(HrvStatus.getByValue(shortVal));
            break;

        case NO_FLY_TIME_MODE:
            retVal = NoFlyTimeMode.getStringFromValue(NoFlyTimeMode.getByValue(shortVal));
            break;

        default:
            break;
        }

        // If we fail to convert this to a named enum value, return the string representation
        // of the numerical value.
        if (retVal.equals("")) {
            retVal = String.valueOf(enumVal);
        }

        return retVal;
    }

    public enum Type {
        ENUM,
        SINT8,
        UINT8,
        SINT16,
        UINT16,
        SINT32,
        UINT32,
        STRING,
        FLOAT32,
        FLOAT64,
        UINT8Z,
        UINT16Z,
        UINT32Z,
        BYTE,
        SINT64,
        UINT64,
        UINT64Z,
        BOOL,
        FILE,
        MESG_NUM,
        CHECKSUM,
        FILE_FLAGS,
        MESG_COUNT,
        DATE_TIME,
        LOCAL_DATE_TIME,
        MESSAGE_INDEX,
        DEVICE_INDEX,
        GENDER,
        LANGUAGE,
        LANGUAGE_BITS_0,
        LANGUAGE_BITS_1,
        LANGUAGE_BITS_2,
        LANGUAGE_BITS_3,
        LANGUAGE_BITS_4,
        TIME_ZONE,
        DISPLAY_MEASURE,
        DISPLAY_HEART,
        DISPLAY_POWER,
        DISPLAY_POSITION,
        SWITCH,
        SPORT,
        SPORT_BITS_0,
        SPORT_BITS_1,
        SPORT_BITS_2,
        SPORT_BITS_3,
        SPORT_BITS_4,
        SPORT_BITS_5,
        SPORT_BITS_6,
        SUB_SPORT,
        SPORT_EVENT,
        ACTIVITY,
        INTENSITY,
        SESSION_TRIGGER,
        AUTOLAP_TRIGGER,
        LAP_TRIGGER,
        TIME_MODE,
        BACKLIGHT_MODE,
        DATE_MODE,
        BACKLIGHT_TIMEOUT,
        EVENT,
        EVENT_TYPE,
        TIMER_TRIGGER,
        FITNESS_EQUIPMENT_STATE,
        TONE,
        AUTOSCROLL,
        ACTIVITY_CLASS,
        HR_ZONE_CALC,
        PWR_ZONE_CALC,
        WKT_STEP_DURATION,
        WKT_STEP_TARGET,
        GOAL,
        GOAL_RECURRENCE,
        GOAL_SOURCE,
        SCHEDULE,
        COURSE_POINT,
        MANUFACTURER,
        GARMIN_PRODUCT,
        ANTPLUS_DEVICE_TYPE,
        ANT_NETWORK,
        WORKOUT_CAPABILITIES,
        BATTERY_STATUS,
        HR_TYPE,
        COURSE_CAPABILITIES,
        WEIGHT,
        WORKOUT_HR,
        WORKOUT_POWER,
        BP_STATUS,
        USER_LOCAL_ID,
        SWIM_STROKE,
        ACTIVITY_TYPE,
        ACTIVITY_SUBTYPE,
        ACTIVITY_LEVEL,
        SIDE,
        LEFT_RIGHT_BALANCE,
        LEFT_RIGHT_BALANCE_100,
        LENGTH_TYPE,
        DAY_OF_WEEK,
        CONNECTIVITY_CAPABILITIES,
        WEATHER_REPORT,
        WEATHER_STATUS,
        WEATHER_SEVERITY,
        WEATHER_SEVERE_TYPE,
        TIME_INTO_DAY,
        LOCALTIME_INTO_DAY,
        STROKE_TYPE,
        BODY_LOCATION,
        SEGMENT_LAP_STATUS,
        SEGMENT_LEADERBOARD_TYPE,
        SEGMENT_DELETE_STATUS,
        SEGMENT_SELECTION_TYPE,
        SOURCE_TYPE,
        LOCAL_DEVICE_TYPE,
        BLE_DEVICE_TYPE,
        ANT_CHANNEL_ID,
        DISPLAY_ORIENTATION,
        WORKOUT_EQUIPMENT,
        WATCHFACE_MODE,
        DIGITAL_WATCHFACE_LAYOUT,
        ANALOG_WATCHFACE_LAYOUT,
        RIDER_POSITION_TYPE,
        POWER_PHASE_TYPE,
        CAMERA_EVENT_TYPE,
        SENSOR_TYPE,
        BIKE_LIGHT_NETWORK_CONFIG_TYPE,
        COMM_TIMEOUT_TYPE,
        CAMERA_ORIENTATION_TYPE,
        ATTITUDE_STAGE,
        ATTITUDE_VALIDITY,
        AUTO_SYNC_FREQUENCY,
        EXD_LAYOUT,
        EXD_DISPLAY_TYPE,
        EXD_DATA_UNITS,
        EXD_QUALIFIERS,
        EXD_DESCRIPTORS,
        AUTO_ACTIVITY_DETECT,
        SUPPORTED_EXD_SCREEN_LAYOUTS,
        FIT_BASE_TYPE,
        TURN_TYPE,
        BIKE_LIGHT_BEAM_ANGLE_MODE,
        FIT_BASE_UNIT,
        SET_TYPE,
        MAX_MET_CATEGORY,
        EXERCISE_CATEGORY,
        BENCH_PRESS_EXERCISE_NAME,
        CALF_RAISE_EXERCISE_NAME,
        CARDIO_EXERCISE_NAME,
        CARRY_EXERCISE_NAME,
        CHOP_EXERCISE_NAME,
        CORE_EXERCISE_NAME,
        CRUNCH_EXERCISE_NAME,
        CURL_EXERCISE_NAME,
        DEADLIFT_EXERCISE_NAME,
        FLYE_EXERCISE_NAME,
        HIP_RAISE_EXERCISE_NAME,
        HIP_STABILITY_EXERCISE_NAME,
        HIP_SWING_EXERCISE_NAME,
        HYPEREXTENSION_EXERCISE_NAME,
        LATERAL_RAISE_EXERCISE_NAME,
        LEG_CURL_EXERCISE_NAME,
        LEG_RAISE_EXERCISE_NAME,
        LUNGE_EXERCISE_NAME,
        OLYMPIC_LIFT_EXERCISE_NAME,
        PLANK_EXERCISE_NAME,
        PLYO_EXERCISE_NAME,
        PULL_UP_EXERCISE_NAME,
        PUSH_UP_EXERCISE_NAME,
        ROW_EXERCISE_NAME,
        SHOULDER_PRESS_EXERCISE_NAME,
        SHOULDER_STABILITY_EXERCISE_NAME,
        SHRUG_EXERCISE_NAME,
        SIT_UP_EXERCISE_NAME,
        SQUAT_EXERCISE_NAME,
        TOTAL_BODY_EXERCISE_NAME,
        TRICEPS_EXTENSION_EXERCISE_NAME,
        WARM_UP_EXERCISE_NAME,
        RUN_EXERCISE_NAME,
        WATER_TYPE,
        TISSUE_MODEL_TYPE,
        DIVE_GAS_STATUS,
        DIVE_ALERT,
        DIVE_ALARM_TYPE,
        DIVE_BACKLIGHT_MODE,
        SLEEP_LEVEL,
        SPO2_MEASUREMENT_TYPE,
        CCR_SETPOINT_SWITCH_MODE,
        DIVE_GAS_MODE,
        FAVERO_PRODUCT,
        SPLIT_TYPE,
        CLIMB_PRO_EVENT,
        GAS_CONSUMPTION_RATE_TYPE,
        TAP_SENSITIVITY,
        RADAR_THREAT_LEVEL_TYPE,
        MAX_MET_SPEED_SOURCE,
        MAX_MET_HEART_RATE_SOURCE,
        HRV_STATUS,
        NO_FLY_TIME_MODE,
        
        NUM_TYPES;

        public static Type fromBaseType(final int baseType) {

            switch(baseType) {
            case Fit.BASE_TYPE_SINT8:
                return Type.SINT8;
            case Fit.BASE_TYPE_UINT8:
                return Type.UINT8;
            case Fit.BASE_TYPE_SINT16:
                return Type.SINT16;
            case Fit.BASE_TYPE_UINT16:
                return Type.UINT16;
            case Fit.BASE_TYPE_SINT32:
                return Type.SINT32;
            case Fit.BASE_TYPE_UINT32:
                return Type.UINT32;

            case Fit.BASE_TYPE_STRING:
                return Type.STRING;

            case Fit.BASE_TYPE_FLOAT32:
                return Type.FLOAT32;
            case Fit.BASE_TYPE_FLOAT64:
                return Type.FLOAT64;

            case Fit.BASE_TYPE_UINT8Z:
                return Type.UINT8Z;
            case Fit.BASE_TYPE_UINT16Z:
                return Type.UINT16Z;
            case Fit.BASE_TYPE_UINT32Z:
                return Type.UINT32Z;

            case Fit.BASE_TYPE_UINT64:
                return Type.UINT64;
            case Fit.BASE_TYPE_SINT64:
                return Type.SINT64;
            case Fit.BASE_TYPE_UINT64Z:
                return Type.UINT64Z;

            case Fit.BASE_TYPE_ENUM:
            default:
                return Type.ENUM;
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy