########################################################################################
#   This file is auto generated at 2023-02-13 21:55:51.394201, do not edit this file   #
########################################################################################
MESSAGES = {
    0: {
        "name": "file_id",
        "fields": {
            0: {
                "field_name": "type",
                "field_type": "file",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "product",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "garmin_product",
                "field_type": "garmin_product",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": [
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                ],
                "ref_field_value": ["garmin", "dynastream", "dynastream_oem", "tacx"],
                "comment": None,
            },
            3: {
                "field_name": "serial_number",
                "field_type": "uint32z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "time_created",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Only set for files that are can be created/erased.",
            },
            5: {
                "field_name": "number",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Only set for files that are not created/erased.",
            },
            8: {
                "field_name": "product_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Optional free form string to indicate the devices name "
                "or model",
            },
        },
        "group": "COMMON MESSAGES",
    },
    49: {
        "name": "file_creator",
        "fields": {
            0: {
                "field_name": "software_version",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "hardware_version",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "COMMON MESSAGES",
    },
    162: {
        "name": "timestamp_correlation",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of UTC timestamp at the time the "
                "system timestamp was recorded.",
            },
            0: {
                "field_name": "fractional_timestamp",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 32768,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of the UTC timestamp at the time the "
                "system timestamp was recorded.",
            },
            1: {
                "field_name": "system_timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the system timestamp",
            },
            2: {
                "field_name": "fractional_system_timestamp",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 32768,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of the system timestamp",
            },
            3: {
                "field_name": "local_timestamp",
                "field_type": "local_date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "timestamp epoch expressed in local time used to "
                "convert timestamps to local time",
            },
            4: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the UTC timestamp at the time "
                "the system timestamp was recorded.",
            },
            5: {
                "field_name": "system_timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the system timestamp",
            },
        },
        "group": "COMMON MESSAGES",
    },
    35: {
        "name": "software",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "version",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "part_number",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    106: {
        "name": "slave_device",
        "fields": {
            0: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "product",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "garmin_product",
                "field_type": "garmin_product",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": [
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                ],
                "ref_field_value": ["garmin", "dynastream", "dynastream_oem", "tacx"],
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    1: {
        "name": "capabilities",
        "fields": {
            0: {
                "field_name": "languages",
                "field_type": "uint8z",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use language_bits_x types where x is index of array.",
            },
            1: {
                "field_name": "sports",
                "field_type": "sport_bits_0",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use sport_bits_x types where x is index of array.",
            },
            21: {
                "field_name": "workouts_supported",
                "field_type": "workout_capabilities",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "connectivity_supported",
                "field_type": "connectivity_capabilities",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    37: {
        "name": "file_capabilities",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "type",
                "field_type": "file",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "flags",
                "field_type": "file_flags",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "directory",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "max_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "max_size",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bytes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    38: {
        "name": "mesg_capabilities",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "file",
                "field_type": "file",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "mesg_num",
                "field_type": "mesg_num",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "count_type",
                "field_type": "mesg_count",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "max_per_file_type",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": "count_type",
                "ref_field_value": "max_per_file_type",
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    39: {
        "name": "field_capabilities",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "file",
                "field_type": "file",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "mesg_num",
                "field_type": "mesg_num",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "field_num",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "DEVICE FILE MESSAGES",
    },
    2: {
        "name": "device_settings",
        "fields": {
            0: {
                "field_name": "active_time_zone",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Index into time zone arrays.",
            },
            1: {
                "field_name": "utc_offset",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Offset from system time. Required to convert timestamp "
                "from system time to UTC.",
            },
            2: {
                "field_name": "time_offset",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Offset from system time.",
            },
            4: {
                "field_name": "time_mode",
                "field_type": "time_mode",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Display mode for the time",
            },
            5: {
                "field_name": "time_zone_offset",
                "field_type": "sint8",
                "array": "N",
                "components": None,
                "scale": 4,
                "offset": None,
                "units": "hr",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "timezone offset in 1/4 hour increments",
            },
            12: {
                "field_name": "backlight_mode",
                "field_type": "backlight_mode",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Mode for backlight",
            },
            36: {
                "field_name": "activity_tracker_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Enabled state of the activity tracker functionality",
            },
            39: {
                "field_name": "clock_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "UTC timestamp used to set the devices clock and date",
            },
            40: {
                "field_name": "pages_enabled",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Bitfield to configure enabled screens for each "
                "supported loop",
            },
            46: {
                "field_name": "move_alert_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Enabled state of the move alert",
            },
            47: {
                "field_name": "date_mode",
                "field_type": "date_mode",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Display mode for the date",
            },
            55: {
                "field_name": "display_orientation",
                "field_type": "display_orientation",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            56: {
                "field_name": "mounting_side",
                "field_type": "side",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            57: {
                "field_name": "default_page",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Bitfield to indicate one page as default for each "
                "supported loop",
            },
            58: {
                "field_name": "autosync_min_steps",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "steps",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Minimum steps before an autosync can occur",
            },
            59: {
                "field_name": "autosync_min_time",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "minutes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Minimum minutes before an autosync can occur",
            },
            80: {
                "field_name": "lactate_threshold_autodetect_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Enable auto-detect setting for the lactate threshold "
                "feature.",
            },
            86: {
                "field_name": "ble_auto_upload_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Automatically upload using BLE",
            },
            89: {
                "field_name": "auto_sync_frequency",
                "field_type": "auto_sync_frequency",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Helps to conserve battery by changing modes",
            },
            90: {
                "field_name": "auto_activity_detect",
                "field_type": "auto_activity_detect",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Allows setting specific activities auto-activity "
                "detect enabled/disabled settings",
            },
            94: {
                "field_name": "number_of_screens",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of screens configured to display",
            },
            95: {
                "field_name": "smart_notification_display_orientation",
                "field_type": "display_orientation",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Smart Notification display orientation",
            },
            134: {
                "field_name": "tap_interface",
                "field_type": "switch",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            174: {
                "field_name": "tap_sensitivity",
                "field_type": "tap_sensitivity",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Used to hold the tap threshold setting",
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    3: {
        "name": "user_profile",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "friendly_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "gender",
                "field_type": "gender",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "age",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "years",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "height",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "weight",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "language",
                "field_type": "language",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "elev_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "weight_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "resting_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "default_max_running_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "default_max_biking_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "default_max_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "hr_setting",
                "field_type": "display_heart",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "speed_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "dist_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "power_setting",
                "field_type": "display_power",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "activity_class",
                "field_type": "activity_class",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            18: {
                "field_name": "position_setting",
                "field_type": "display_position",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "temperature_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "local_id",
                "field_type": "user_local_id",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "global_id",
                "field_type": "byte",
                "array": 6,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            28: {
                "field_name": "wake_time",
                "field_type": "localtime_into_day",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Typical wake time",
            },
            29: {
                "field_name": "sleep_time",
                "field_type": "localtime_into_day",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Typical bed time",
            },
            30: {
                "field_name": "height_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            31: {
                "field_name": "user_running_step_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "User defined running step length set to 0 for auto "
                "length",
            },
            32: {
                "field_name": "user_walking_step_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "User defined walking step length set to 0 for auto "
                "length",
            },
            47: {
                "field_name": "depth_setting",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            49: {
                "field_name": "dive_count",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    4: {
        "name": "hrm_profile",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "hrm_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "log_hrv",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "hrm_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    5: {
        "name": "sdm_profile",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "sdm_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "sdm_cal_factor",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "odometer",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "speed_source",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use footpod for speed source instead of GPS",
            },
            5: {
                "field_name": "sdm_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "odometer_rollover",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Rollover counter that can be used to extend the "
                "odometer",
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    6: {
        "name": "bike_profile",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "odometer",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "bike_spd_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "bike_cad_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "bike_spdcad_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "bike_power_ant_id",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "custom_wheelsize",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "auto_wheelsize",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "bike_weight",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "power_cal_factor",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "auto_wheel_cal",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "auto_power_zero",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "id",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "spd_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "cad_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "spdcad_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            18: {
                "field_name": "power_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "crank_length",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": -110,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            20: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "bike_spd_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "bike_cad_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "bike_spdcad_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            24: {
                "field_name": "bike_power_ant_id_trans_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            37: {
                "field_name": "odometer_rollover",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Rollover counter that can be used to extend the "
                "odometer",
            },
            38: {
                "field_name": "front_gear_num",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of front gears",
            },
            39: {
                "field_name": "front_gear",
                "field_type": "uint8z",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of teeth on each gear 0 is innermost",
            },
            40: {
                "field_name": "rear_gear_num",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of rear gears",
            },
            41: {
                "field_name": "rear_gear",
                "field_type": "uint8z",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of teeth on each gear 0 is innermost",
            },
            44: {
                "field_name": "shimano_di2_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    127: {
        "name": "connectivity",
        "fields": {
            0: {
                "field_name": "bluetooth_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use Bluetooth for connectivity features",
            },
            1: {
                "field_name": "bluetooth_le_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use Bluetooth Low Energy for connectivity features",
            },
            2: {
                "field_name": "ant_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use ANT for connectivity features",
            },
            3: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "live_tracking_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "weather_conditions_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "weather_alerts_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "auto_activity_upload_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "course_download_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "workout_download_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "gps_ephemeris_download_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "incident_detection_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "grouptrack_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    159: {
        "name": "watchface_settings",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "mode",
                "field_type": "watchface_mode",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "layout",
                "field_type": "byte",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "analog_layout",
                "field_type": "analog_watchface_layout",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": "mode",
                "ref_field_value": "analog",
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    188: {
        "name": "ohr_settings",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "enabled",
                "field_type": "switch",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SETTINGS FILE MESSAGES",
    },
    7: {
        "name": "zones_target",
        "fields": {
            1: {
                "field_name": "max_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "threshold_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "functional_threshold_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "hr_calc_type",
                "field_type": "hr_zone_calc",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "pwr_calc_type",
                "field_type": "pwr_zone_calc",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    12: {
        "name": "sport",
        "fields": {
            0: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    8: {
        "name": "hr_zone",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "high_bpm",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    53: {
        "name": "speed_zone",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "high_value",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    131: {
        "name": "cadence_zone",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "high_value",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    9: {
        "name": "power_zone",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "high_value",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    10: {
        "name": "met_zone",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "high_bpm",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "kcal / min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "fat_calories",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "kcal / min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    258: {
        "name": "dive_settings",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "model",
                "field_type": "tissue_model_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "gf_low",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "gf_high",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "water_type",
                "field_type": "water_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "water_density",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kg/m^3",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fresh water is usually 1000; salt water is usually " "1025",
            },
            6: {
                "field_name": "po2_warn",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Typically 1.40",
            },
            7: {
                "field_name": "po2_critical",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Typically 1.60",
            },
            8: {
                "field_name": "po2_deco",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "safety_stop_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "bottom_depth",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "bottom_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "apnea_countdown_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "apnea_countdown_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "backlight_mode",
                "field_type": "dive_backlight_mode",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "backlight_brightness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "backlight_timeout",
                "field_type": "backlight_timeout",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "repeat_dive_interval",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time between surfacing and ending the activity",
            },
            18: {
                "field_name": "safety_stop_time",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time at safety stop (if enabled)",
            },
            19: {
                "field_name": "heart_rate_source_type",
                "field_type": "source_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            20: {
                "field_name": "heart_rate_source",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "heart_rate_local_device_type",
                "field_type": "local_device_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": "heart_rate_source_type",
                "ref_field_value": "local",
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    262: {
        "name": "dive_alarm",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Index of the alarm",
            },
            0: {
                "field_name": "depth",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Depth setting (m) for depth type alarms",
            },
            1: {
                "field_name": "time",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time setting (s) for time type alarms",
            },
            2: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Enablement flag",
            },
            3: {
                "field_name": "alarm_type",
                "field_type": "dive_alarm_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Alarm type setting",
            },
            4: {
                "field_name": "sound",
                "field_type": "tone",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Tone and Vibe setting for the alarm",
            },
            5: {
                "field_name": "dive_types",
                "field_type": "sub_sport",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Dive types the alarm will trigger on",
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    259: {
        "name": "dive_gas",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "helium_content",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "oxygen_content",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "status",
                "field_type": "dive_gas_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SPORT SETTINGS FILE MESSAGES",
    },
    15: {
        "name": "goal",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "start_date",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "end_date",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "type",
                "field_type": "goal",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "value",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "repeat",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "target_value",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "recurrence",
                "field_type": "goal_recurrence",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "recurrence_value",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "source",
                "field_type": "goal_source",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "GOALS FILE MESSAGES",
    },
    34: {
        "name": "activity",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "total_timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Exclude pauses",
            },
            1: {
                "field_name": "num_sessions",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "type",
                "field_type": "activity",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "local_timestamp",
                "field_type": "local_date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "timestamp epoch expressed in local time, used to "
                "convert activity timestamps to local time",
            },
            6: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    18: {
        "name": "session",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Selected bit is set for the current session.",
            },
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Sesson end time.",
            },
            0: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "session",
            },
            1: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "stop",
            },
            2: {
                "field_name": "start_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "start_position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "start_position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "total_elapsed_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time (includes pauses)",
            },
            8: {
                "field_name": "total_timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timer Time (excludes pauses)",
            },
            9: {
                "field_name": "total_distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "total_cycles",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "max_running_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "strides/min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "sport",
                "ref_field_value": "running",
                "comment": None,
            },
            11: {
                "field_name": "total_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "total_fat_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "avg_speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_avg_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_distance / total_timer_time",
            },
            15: {
                "field_name": "max_speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_max_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "avg_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "average heart rate (excludes pause time)",
            },
            17: {
                "field_name": "max_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            18: {
                "field_name": "avg_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_cycles / total_timer_time if "
                "non_zero_avg_cadence otherwise total_cycles / "
                "total_elapsed_time",
            },
            19: {
                "field_name": "max_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            20: {
                "field_name": "avg_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_power / total_timer_time if non_zero_avg_power "
                "otherwise total_power / total_elapsed_time",
            },
            21: {
                "field_name": "max_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "total_ascent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "total_descent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            24: {
                "field_name": "total_training_effect",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            25: {
                "field_name": "first_lap_index",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            26: {
                "field_name": "num_laps",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            27: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            28: {
                "field_name": "trigger",
                "field_type": "session_trigger",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            29: {
                "field_name": "nec_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "North east corner latitude",
            },
            30: {
                "field_name": "nec_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "North east corner longitude",
            },
            31: {
                "field_name": "swc_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "South west corner latitude",
            },
            32: {
                "field_name": "swc_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "South west corner longitude",
            },
            33: {
                "field_name": "num_lengths",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "lengths",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "# of lengths of swim pool",
            },
            34: {
                "field_name": "normalized_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            35: {
                "field_name": "training_stress_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "tss",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            36: {
                "field_name": "intensity_factor",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "if",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            37: {
                "field_name": "left_right_balance",
                "field_type": "left_right_balance_100",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            41: {
                "field_name": "avg_stroke_count",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "strokes/lap",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            42: {
                "field_name": "avg_stroke_distance",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            43: {
                "field_name": "swim_stroke",
                "field_type": "swim_stroke",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "swim_stroke",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            44: {
                "field_name": "pool_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            45: {
                "field_name": "threshold_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            46: {
                "field_name": "pool_length_unit",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            47: {
                "field_name": "num_active_lengths",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "lengths",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "# of active lengths of swim pool",
            },
            48: {
                "field_name": "total_work",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "J",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            49: {
                "field_name": "avg_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_avg_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            50: {
                "field_name": "max_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_max_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            51: {
                "field_name": "gps_accuracy",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            52: {
                "field_name": "avg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            53: {
                "field_name": "avg_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            54: {
                "field_name": "avg_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            55: {
                "field_name": "max_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            56: {
                "field_name": "max_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            57: {
                "field_name": "avg_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            58: {
                "field_name": "max_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            59: {
                "field_name": "total_moving_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            60: {
                "field_name": "avg_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            61: {
                "field_name": "avg_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            62: {
                "field_name": "max_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            63: {
                "field_name": "max_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            64: {
                "field_name": "min_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            65: {
                "field_name": "time_in_hr_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            66: {
                "field_name": "time_in_speed_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            67: {
                "field_name": "time_in_cadence_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            68: {
                "field_name": "time_in_power_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            69: {
                "field_name": "avg_lap_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            70: {
                "field_name": "best_lap_index",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            71: {
                "field_name": "min_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_min_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            82: {
                "field_name": "player_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            83: {
                "field_name": "opponent_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            84: {
                "field_name": "opponent_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            85: {
                "field_name": "stroke_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "stroke_type enum used as the index",
            },
            86: {
                "field_name": "zone_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "zone number used as the index",
            },
            87: {
                "field_name": "max_ball_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            88: {
                "field_name": "avg_ball_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            89: {
                "field_name": "avg_vertical_oscillation",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            90: {
                "field_name": "avg_stance_time_percent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            91: {
                "field_name": "avg_stance_time",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            92: {
                "field_name": "avg_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the avg_cadence",
            },
            93: {
                "field_name": "max_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the max_cadence",
            },
            94: {
                "field_name": "total_fractional_cycles",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the total_cycles",
            },
            95: {
                "field_name": "avg_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Avg saturated and unsaturated hemoglobin",
            },
            96: {
                "field_name": "min_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min saturated and unsaturated hemoglobin",
            },
            97: {
                "field_name": "max_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max saturated and unsaturated hemoglobin",
            },
            98: {
                "field_name": "avg_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Avg percentage of hemoglobin saturated with oxygen",
            },
            99: {
                "field_name": "min_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min percentage of hemoglobin saturated with oxygen",
            },
            100: {
                "field_name": "max_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max percentage of hemoglobin saturated with oxygen",
            },
            101: {
                "field_name": "avg_left_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            102: {
                "field_name": "avg_right_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            103: {
                "field_name": "avg_left_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            104: {
                "field_name": "avg_right_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            105: {
                "field_name": "avg_combined_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            111: {
                "field_name": "sport_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            112: {
                "field_name": "time_standing",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total time spend in the standing position",
            },
            113: {
                "field_name": "stand_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of transitions to the standing state",
            },
            114: {
                "field_name": "avg_left_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average platform center offset Left",
            },
            115: {
                "field_name": "avg_right_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average platform center offset Right",
            },
            116: {
                "field_name": "avg_left_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase angles. Indexes defined by "
                "power_phase_type.",
            },
            117: {
                "field_name": "avg_left_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase peak angles. Data value "
                "indexes defined by power_phase_type.",
            },
            118: {
                "field_name": "avg_right_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase angles. Data value "
                "indexes defined by power_phase_type.",
            },
            119: {
                "field_name": "avg_right_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase peak angles data value "
                "indexes defined by power_phase_type.",
            },
            120: {
                "field_name": "avg_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            121: {
                "field_name": "max_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            122: {
                "field_name": "avg_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            123: {
                "field_name": "max_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            124: {
                "field_name": "enhanced_avg_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_distance / total_timer_time",
            },
            125: {
                "field_name": "enhanced_max_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            126: {
                "field_name": "enhanced_avg_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            127: {
                "field_name": "enhanced_min_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            128: {
                "field_name": "enhanced_max_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            129: {
                "field_name": "avg_lev_motor_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev average motor power during session",
            },
            130: {
                "field_name": "max_lev_motor_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev maximum motor power during session",
            },
            131: {
                "field_name": "lev_battery_consumption",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev battery consumption during session",
            },
            132: {
                "field_name": "avg_vertical_ratio",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            133: {
                "field_name": "avg_stance_time_balance",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            134: {
                "field_name": "avg_step_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            137: {
                "field_name": "total_anaerobic_training_effect",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            139: {
                "field_name": "avg_vam",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            168: {
                "field_name": "training_load_peak",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": 65536,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            181: {
                "field_name": "total_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            182: {
                "field_name": "total_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            183: {
                "field_name": "jump_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            186: {
                "field_name": "avg_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            187: {
                "field_name": "avg_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            199: {
                "field_name": "total_fractional_ascent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_ascent",
            },
            200: {
                "field_name": "total_fractional_descent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_descent",
            },
            208: {
                "field_name": "avg_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            209: {
                "field_name": "min_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            210: {
                "field_name": "max_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    19: {
        "name": "lap",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Lap end time.",
            },
            0: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "start_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "start_position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "start_position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "end_position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "end_position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "total_elapsed_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time (includes pauses)",
            },
            8: {
                "field_name": "total_timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timer Time (excludes pauses)",
            },
            9: {
                "field_name": "total_distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "total_cycles",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "max_running_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "strides/min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "sport",
                "ref_field_value": "running",
                "comment": None,
            },
            11: {
                "field_name": "total_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "total_fat_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "If New Leaf",
            },
            13: {
                "field_name": "avg_speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_avg_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "max_speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_max_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "avg_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "max_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "avg_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_cycles / total_timer_time if "
                "non_zero_avg_cadence otherwise total_cycles / "
                "total_elapsed_time",
            },
            18: {
                "field_name": "max_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "avg_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_power / total_timer_time if non_zero_avg_power "
                "otherwise total_power / total_elapsed_time",
            },
            20: {
                "field_name": "max_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "total_ascent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "total_descent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "intensity",
                "field_type": "intensity",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            24: {
                "field_name": "lap_trigger",
                "field_type": "lap_trigger",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            25: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            26: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            32: {
                "field_name": "num_lengths",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "lengths",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "# of lengths of swim pool",
            },
            33: {
                "field_name": "normalized_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            34: {
                "field_name": "left_right_balance",
                "field_type": "left_right_balance_100",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            35: {
                "field_name": "first_length_index",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            37: {
                "field_name": "avg_stroke_distance",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            38: {
                "field_name": "swim_stroke",
                "field_type": "swim_stroke",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            39: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            40: {
                "field_name": "num_active_lengths",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "lengths",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "# of active lengths of swim pool",
            },
            41: {
                "field_name": "total_work",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "J",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            42: {
                "field_name": "avg_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_avg_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            43: {
                "field_name": "max_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_max_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            44: {
                "field_name": "gps_accuracy",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            45: {
                "field_name": "avg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            46: {
                "field_name": "avg_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            47: {
                "field_name": "avg_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            48: {
                "field_name": "max_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            49: {
                "field_name": "max_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            50: {
                "field_name": "avg_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            51: {
                "field_name": "max_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            52: {
                "field_name": "total_moving_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            53: {
                "field_name": "avg_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            54: {
                "field_name": "avg_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            55: {
                "field_name": "max_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            56: {
                "field_name": "max_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            57: {
                "field_name": "time_in_hr_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            58: {
                "field_name": "time_in_speed_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            59: {
                "field_name": "time_in_cadence_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            60: {
                "field_name": "time_in_power_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            61: {
                "field_name": "repetition_num",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            62: {
                "field_name": "min_altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_min_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            63: {
                "field_name": "min_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            71: {
                "field_name": "wkt_step_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            74: {
                "field_name": "opponent_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            75: {
                "field_name": "stroke_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "stroke_type enum used as the index",
            },
            76: {
                "field_name": "zone_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "zone number used as the index",
            },
            77: {
                "field_name": "avg_vertical_oscillation",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            78: {
                "field_name": "avg_stance_time_percent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            79: {
                "field_name": "avg_stance_time",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            80: {
                "field_name": "avg_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the avg_cadence",
            },
            81: {
                "field_name": "max_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the max_cadence",
            },
            82: {
                "field_name": "total_fractional_cycles",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the total_cycles",
            },
            83: {
                "field_name": "player_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            84: {
                "field_name": "avg_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Avg saturated and unsaturated hemoglobin",
            },
            85: {
                "field_name": "min_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min saturated and unsaturated hemoglobin",
            },
            86: {
                "field_name": "max_total_hemoglobin_conc",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max saturated and unsaturated hemoglobin",
            },
            87: {
                "field_name": "avg_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Avg percentage of hemoglobin saturated with oxygen",
            },
            88: {
                "field_name": "min_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min percentage of hemoglobin saturated with oxygen",
            },
            89: {
                "field_name": "max_saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max percentage of hemoglobin saturated with oxygen",
            },
            91: {
                "field_name": "avg_left_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            92: {
                "field_name": "avg_right_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            93: {
                "field_name": "avg_left_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            94: {
                "field_name": "avg_right_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            95: {
                "field_name": "avg_combined_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            98: {
                "field_name": "time_standing",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total time spent in the standing position",
            },
            99: {
                "field_name": "stand_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of transitions to the standing state",
            },
            100: {
                "field_name": "avg_left_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left platform center offset",
            },
            101: {
                "field_name": "avg_right_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right platform center offset",
            },
            102: {
                "field_name": "avg_left_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase angles. Data value indexes "
                "defined by power_phase_type.",
            },
            103: {
                "field_name": "avg_left_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase peak angles. Data value "
                "indexes defined by power_phase_type.",
            },
            104: {
                "field_name": "avg_right_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase angles. Data value "
                "indexes defined by power_phase_type.",
            },
            105: {
                "field_name": "avg_right_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase peak angles. Data value "
                "indexes defined by power_phase_type.",
            },
            106: {
                "field_name": "avg_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            107: {
                "field_name": "max_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            108: {
                "field_name": "avg_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            109: {
                "field_name": "max_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            110: {
                "field_name": "enhanced_avg_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            111: {
                "field_name": "enhanced_max_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            112: {
                "field_name": "enhanced_avg_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            113: {
                "field_name": "enhanced_min_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            114: {
                "field_name": "enhanced_max_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            115: {
                "field_name": "avg_lev_motor_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev average motor power during lap",
            },
            116: {
                "field_name": "max_lev_motor_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev maximum motor power during lap",
            },
            117: {
                "field_name": "lev_battery_consumption",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev battery consumption during lap",
            },
            118: {
                "field_name": "avg_vertical_ratio",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            119: {
                "field_name": "avg_stance_time_balance",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            120: {
                "field_name": "avg_step_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            121: {
                "field_name": "avg_vam",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            149: {
                "field_name": "total_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            150: {
                "field_name": "total_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            151: {
                "field_name": "jump_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            153: {
                "field_name": "avg_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            154: {
                "field_name": "avg_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            156: {
                "field_name": "total_fractional_ascent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_ascent",
            },
            157: {
                "field_name": "total_fractional_descent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_descent",
            },
            158: {
                "field_name": "avg_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            159: {
                "field_name": "min_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            160: {
                "field_name": "max_core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    101: {
        "name": "length",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "start_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "total_elapsed_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "total_timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "total_strokes",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "strokes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "avg_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "swim_stroke",
                "field_type": "swim_stroke",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "swim_stroke",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "avg_swimming_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "strokes/min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "total_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "length_type",
                "field_type": "length_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            18: {
                "field_name": "player_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "opponent_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            20: {
                "field_name": "stroke_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "stroke_type enum used as the index",
            },
            21: {
                "field_name": "zone_count",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "zone number used as the index",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    20: {
        "name": "record",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "altitude",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_altitude",
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "compressed_speed_distance",
                "field_type": "byte",
                "array": 3,
                "components": ["speed", "distance"],
                "scale": [100, 16],
                "offset": None,
                "units": "m/s,m",
                "bits": "12,12",
                "accumulate": [0, 1],
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "resistance",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Relative. 0 is none 254 is Max.",
            },
            11: {
                "field_name": "time_from_course",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "cycle_length",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "speed_1s",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 16,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Speed at 1s intervals. Timestamp field indicates "
                "time of last array element.",
            },
            18: {
                "field_name": "cycles",
                "field_type": "uint8",
                "array": False,
                "components": "total_cycles",
                "scale": None,
                "offset": None,
                "units": "cycles",
                "bits": 8,
                "accumulate": 1,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "total_cycles",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            28: {
                "field_name": "compressed_accumulated_power",
                "field_type": "uint16",
                "array": False,
                "components": "accumulated_power",
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": 16,
                "accumulate": 1,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            29: {
                "field_name": "accumulated_power",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            30: {
                "field_name": "left_right_balance",
                "field_type": "left_right_balance",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            31: {
                "field_name": "gps_accuracy",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            32: {
                "field_name": "vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            33: {
                "field_name": "calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            39: {
                "field_name": "vertical_oscillation",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            40: {
                "field_name": "stance_time_percent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            41: {
                "field_name": "stance_time",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            42: {
                "field_name": "activity_type",
                "field_type": "activity_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            43: {
                "field_name": "left_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            44: {
                "field_name": "right_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            45: {
                "field_name": "left_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            46: {
                "field_name": "right_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            47: {
                "field_name": "combined_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            48: {
                "field_name": "time128",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            49: {
                "field_name": "stroke_type",
                "field_type": "stroke_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            50: {
                "field_name": "zone",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            51: {
                "field_name": "ball_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            52: {
                "field_name": "cadence256",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 256,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Log cadence and fractional cadence for backwards "
                "compatability",
            },
            53: {
                "field_name": "fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            54: {
                "field_name": "total_hemoglobin_conc",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total saturated and unsaturated hemoglobin",
            },
            55: {
                "field_name": "total_hemoglobin_conc_min",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min saturated and unsaturated hemoglobin",
            },
            56: {
                "field_name": "total_hemoglobin_conc_max",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "g/dL",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max saturated and unsaturated hemoglobin",
            },
            57: {
                "field_name": "saturated_hemoglobin_percent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Percentage of hemoglobin saturated with oxygen",
            },
            58: {
                "field_name": "saturated_hemoglobin_percent_min",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min percentage of hemoglobin saturated with oxygen",
            },
            59: {
                "field_name": "saturated_hemoglobin_percent_max",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max percentage of hemoglobin saturated with oxygen",
            },
            62: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            67: {
                "field_name": "left_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Left platform center offset",
            },
            68: {
                "field_name": "right_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Right platform center offset",
            },
            69: {
                "field_name": "left_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Left power phase angles. Data value indexes defined "
                "by power_phase_type.",
            },
            70: {
                "field_name": "left_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Left power phase peak angles. Data value indexes "
                "defined by power_phase_type.",
            },
            71: {
                "field_name": "right_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Right power phase angles. Data value indexes defined "
                "by power_phase_type.",
            },
            72: {
                "field_name": "right_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Right power phase peak angles. Data value indexes "
                "defined by power_phase_type.",
            },
            73: {
                "field_name": "enhanced_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            78: {
                "field_name": "enhanced_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            81: {
                "field_name": "battery_soc",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev battery state of charge",
            },
            82: {
                "field_name": "motor_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "lev motor power",
            },
            83: {
                "field_name": "vertical_ratio",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            84: {
                "field_name": "stance_time_balance",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            85: {
                "field_name": "step_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            91: {
                "field_name": "absolute_pressure",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Pa",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Includes atmospheric pressure",
            },
            92: {
                "field_name": "depth",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "0 if above water",
            },
            93: {
                "field_name": "next_stop_depth",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "0 if above water",
            },
            94: {
                "field_name": "next_stop_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            95: {
                "field_name": "time_to_surface",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            96: {
                "field_name": "ndl_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            97: {
                "field_name": "cns_load",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            98: {
                "field_name": "n2_load",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            114: {
                "field_name": "grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            115: {
                "field_name": "flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            117: {
                "field_name": "ebike_travel_range",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "km",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            118: {
                "field_name": "ebike_battery_level",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            119: {
                "field_name": "ebike_assist_mode",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "depends on sensor",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            120: {
                "field_name": "ebike_assist_level_percent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            139: {
                "field_name": "core_temperature",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    21: {
        "name": "event",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "data16",
                "field_type": "uint16",
                "array": False,
                "components": "data",
                "scale": None,
                "offset": None,
                "units": None,
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "data",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "radar_threat_alert",
                "field_type": "uint32",
                "array": False,
                "components": [
                    "radar_threat_level_max",
                    "radar_threat_count",
                    "radar_threat_avg_approach_speed",
                    "radar_threat_max_approach_speed",
                ],
                "scale": [1, 1, 10, 10],
                "offset": None,
                "units": None,
                "bits": "8,8,8,8",
                "accumulate": None,
                "ref_field_name": "event",
                "ref_field_value": "radar_threat_alert",
                "comment": "The first byte is the radar_threat_level_max, the "
                "second byte is the radar_threat_count, third bytes "
                "is the average approach speed, and the 4th byte is "
                "the max approach speed",
            },
            4: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for sport_point subfield components",
            },
            8: {
                "field_name": "opponent_score",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for sport_point subfield components",
            },
            9: {
                "field_name": "front_gear_num",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for gear_change subfield components. Front gear "
                "number. 1 is innermost.",
            },
            10: {
                "field_name": "front_gear",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for gear_change subfield components. Number of front "
                "teeth.",
            },
            11: {
                "field_name": "rear_gear_num",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for gear_change subfield components. Rear gear "
                "number. 1 is innermost.",
            },
            12: {
                "field_name": "rear_gear",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for gear_change subfield components. Number of rear "
                "teeth.",
            },
            13: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "radar_threat_level_max",
                "field_type": "radar_threat_level_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for threat_alert subfield components.",
            },
            22: {
                "field_name": "radar_threat_count",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for threat_alert subfield components.",
            },
            23: {
                "field_name": "radar_threat_avg_approach_speed",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for radar_threat_alert subfield components",
            },
            24: {
                "field_name": "radar_threat_max_approach_speed",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Do not populate directly. Autogenerated by decoder "
                "for radar_threat_alert subfield components",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    23: {
        "name": "device_info",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "device_type",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "garmin_product",
                "field_type": "garmin_product",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": [
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                ],
                "ref_field_value": ["garmin", "dynastream", "dynastream_oem", "tacx"],
                "comment": None,
            },
            2: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "serial_number",
                "field_type": "uint32z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "product",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "software_version",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "hardware_version",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "cum_operating_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Reset by new battery or charge.",
            },
            10: {
                "field_name": "battery_voltage",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 256,
                "offset": None,
                "units": "V",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "battery_status",
                "field_type": "battery_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            18: {
                "field_name": "sensor_position",
                "field_type": "body_location",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates the location of the sensor",
            },
            19: {
                "field_name": "descriptor",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Used to describe the sensor or location",
            },
            20: {
                "field_name": "ant_transmission_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "ant_device_number",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "ant_network",
                "field_type": "ant_network",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            25: {
                "field_name": "source_type",
                "field_type": "source_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            27: {
                "field_name": "product_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Optional free form string to indicate the devices "
                "name or model",
            },
            32: {
                "field_name": "battery_level",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    375: {
        "name": "device_aux_battery_info",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "battery_voltage",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 256,
                "offset": None,
                "units": "V",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "battery_status",
                "field_type": "battery_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "battery_identifier",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    72: {
        "name": "training_file",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "type",
                "field_type": "file",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "product",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "garmin_product",
                "field_type": "garmin_product",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": [
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                ],
                "ref_field_value": ["garmin", "dynastream", "dynastream_oem", "tacx"],
                "comment": None,
            },
            3: {
                "field_name": "serial_number",
                "field_type": "uint32z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "time_created",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    128: {
        "name": "weather_conditions",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "time of update for current conditions, else "
                "forecast time",
            },
            0: {
                "field_name": "weather_report",
                "field_type": "weather_report",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Current or forecast",
            },
            1: {
                "field_name": "temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "condition",
                "field_type": "weather_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Corresponds to GSC Response weatherIcon field",
            },
            3: {
                "field_name": "wind_direction",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "wind_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "precipitation_probability",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "range 0-100",
            },
            6: {
                "field_name": "temperature_feels_like",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Heat Index if GCS heatIdx above or equal to 90F or "
                "wind chill if GCS windChill below or equal to 32F",
            },
            7: {
                "field_name": "relative_humidity",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "location",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "string corresponding to GCS response location " "string",
            },
            9: {
                "field_name": "observed_at_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "observed_location_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "observed_location_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "day_of_week",
                "field_type": "day_of_week",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "high_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "low_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    129: {
        "name": "weather_alert",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "report_id",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Unique identifier from GCS report ID string, length "
                "is 12",
            },
            1: {
                "field_name": "issue_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time alert was issued",
            },
            2: {
                "field_name": "expire_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time alert expires",
            },
            3: {
                "field_name": "severity",
                "field_type": "weather_severity",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Warning, Watch, Advisory, Statement",
            },
            4: {
                "field_name": "type",
                "field_type": "weather_severe_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Tornado, Severe Thunderstorm, etc.",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    160: {
        "name": "gps_metadata",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp.",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "enhanced_altitude",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "enhanced_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "heading",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "utc_timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Used to correlate UTC to system time if the "
                "timestamp of the message is in system time. This UTC "
                "time is derived from the GPS data.",
            },
            7: {
                "field_name": "velocity",
                "field_type": "sint16",
                "array": 3,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "velocity[0] is lon velocity. Velocity[1] is lat "
                "velocity. Velocity[2] is altitude velocity.",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    161: {
        "name": "camera_event",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp.",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "camera_event_type",
                "field_type": "camera_event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "camera_file_uuid",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "camera_orientation",
                "field_type": "camera_orientation_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    164: {
        "name": "gyroscope_data",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "sample_time_offset",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Each time in the array describes the time at which "
                "the gyro sample with the corrosponding index was "
                "taken. Limited to 30 samples in each message. The "
                "samples may span across seconds. Array size must "
                "match the number of samples in gyro_x and gyro_y and "
                "gyro_z",
            },
            2: {
                "field_name": "gyro_x",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            3: {
                "field_name": "gyro_y",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            4: {
                "field_name": "gyro_z",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            5: {
                "field_name": "calibrated_gyro_x",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "deg/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated gyro reading",
            },
            6: {
                "field_name": "calibrated_gyro_y",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "deg/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated gyro reading",
            },
            7: {
                "field_name": "calibrated_gyro_z",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "deg/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated gyro reading",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    165: {
        "name": "accelerometer_data",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "sample_time_offset",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Each time in the array describes the time at which "
                "the accelerometer sample with the corrosponding "
                "index was taken. Limited to 30 samples in each "
                "message. The samples may span across seconds. Array "
                "size must match the number of samples in accel_x and "
                "accel_y and accel_z",
            },
            2: {
                "field_name": "accel_x",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            3: {
                "field_name": "accel_y",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            4: {
                "field_name": "accel_z",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            5: {
                "field_name": "calibrated_accel_x",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "g",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
            6: {
                "field_name": "calibrated_accel_y",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "g",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
            7: {
                "field_name": "calibrated_accel_z",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "g",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
            8: {
                "field_name": "compressed_calibrated_accel_x",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mG",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
            9: {
                "field_name": "compressed_calibrated_accel_y",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mG",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
            10: {
                "field_name": "compressed_calibrated_accel_z",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mG",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated accel reading",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    208: {
        "name": "magnetometer_data",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "sample_time_offset",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Each time in the array describes the time at which "
                "the compass sample with the corrosponding index was "
                "taken. Limited to 30 samples in each message. The "
                "samples may span across seconds. Array size must "
                "match the number of samples in cmps_x and cmps_y and "
                "cmps_z",
            },
            2: {
                "field_name": "mag_x",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            3: {
                "field_name": "mag_y",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            4: {
                "field_name": "mag_z",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. Maximum number of "
                "samples is 30 in each message. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
            5: {
                "field_name": "calibrated_mag_x",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "G",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated Magnetometer reading",
            },
            6: {
                "field_name": "calibrated_mag_y",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "G",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated Magnetometer reading",
            },
            7: {
                "field_name": "calibrated_mag_z",
                "field_type": "float32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "G",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibrated Magnetometer reading",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    209: {
        "name": "barometer_data",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "sample_time_offset",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Each time in the array describes the time at which "
                "the barometer sample with the corrosponding index "
                "was taken. The samples may span across seconds. "
                "Array size must match the number of samples in "
                "baro_cal",
            },
            2: {
                "field_name": "baro_pres",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Pa",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "These are the raw ADC reading. The samples may span "
                "across seconds. A conversion will need to be done on "
                "this data once read.",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    167: {
        "name": "three_d_sensor_calibration",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "sensor_type",
                "field_type": "sensor_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates which sensor the calibration is for",
            },
            1: {
                "field_name": "calibration_factor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibration factor used to convert from raw ADC "
                "value to degrees, g, etc.",
            },
            None: {
                "field_name": "gyro_cal_factor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "deg/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "sensor_type",
                "ref_field_value": "gyroscope",
                "comment": "Gyro calibration factor",
            },
            2: {
                "field_name": "calibration_divisor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibration factor divisor",
            },
            3: {
                "field_name": "level_shift",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Level shift value used to shift the ADC value back "
                "into range",
            },
            4: {
                "field_name": "offset_cal",
                "field_type": "sint32",
                "array": 3,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Internal calibration factors, one for each: xy, yx, " "zx",
            },
            5: {
                "field_name": "orientation_matrix",
                "field_type": "sint32",
                "array": 9,
                "components": None,
                "scale": 65535,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "3 x 3 rotation matrix (row major)",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    210: {
        "name": "one_d_sensor_calibration",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "sensor_type",
                "field_type": "sensor_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates which sensor the calibration is for",
            },
            1: {
                "field_name": "calibration_factor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibration factor used to convert from raw ADC "
                "value to degrees, g, etc.",
            },
            None: {
                "field_name": "baro_cal_factor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Pa",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "sensor_type",
                "ref_field_value": "barometer",
                "comment": "Barometer calibration factor",
            },
            2: {
                "field_name": "calibration_divisor",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "counts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Calibration factor divisor",
            },
            3: {
                "field_name": "level_shift",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Level shift value used to shift the ADC value back "
                "into range",
            },
            4: {
                "field_name": "offset_cal",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Internal Calibration factor",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    169: {
        "name": "video_frame",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Whole second part of the timestamp",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Millisecond part of the timestamp.",
            },
            1: {
                "field_name": "frame_number",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of the frame that the timestamp and "
                "timestamp_ms correlate to",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    174: {
        "name": "obdii_data",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timestamp message was output",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of timestamp, added to timestamp",
            },
            1: {
                "field_name": "time_offset",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Offset of PID reading [i] from "
                "start_timestamp+start_timestamp_ms. Readings may "
                "span accross seconds.",
            },
            2: {
                "field_name": "pid",
                "field_type": "byte",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Parameter ID",
            },
            3: {
                "field_name": "raw_data",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Raw parameter data",
            },
            4: {
                "field_name": "pid_data_size",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Optional, data size of PID[i]. If not specified "
                "refer to SAE J1979.",
            },
            5: {
                "field_name": "system_time",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "System time associated with sample expressed in ms, "
                "can be used instead of time_offset. There will be a "
                "system_time value for each raw_data element. For "
                "multibyte pids the system_time is repeated.",
            },
            6: {
                "field_name": "start_timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timestamp of first sample recorded in the message. "
                "Used with time_offset to generate time of each "
                "sample",
            },
            7: {
                "field_name": "start_timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of start_timestamp",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    177: {
        "name": "nmea_sentence",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timestamp message was output",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of timestamp, added to timestamp",
            },
            1: {
                "field_name": "sentence",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "NMEA sentence",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    178: {
        "name": "aviation_attitude",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timestamp message was output",
            },
            0: {
                "field_name": "timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Fractional part of timestamp, added to timestamp",
            },
            1: {
                "field_name": "system_time",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "System time associated with sample expressed in ms.",
            },
            2: {
                "field_name": "pitch",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": 10430.38,
                "offset": None,
                "units": "radians",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Range -PI/2 to +PI/2",
            },
            3: {
                "field_name": "roll",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": 10430.38,
                "offset": None,
                "units": "radians",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Range -PI to +PI",
            },
            4: {
                "field_name": "accel_lateral",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s^2",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Range -78.4 to +78.4 (-8 Gs to 8 Gs)",
            },
            5: {
                "field_name": "accel_normal",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m/s^2",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Range -78.4 to +78.4 (-8 Gs to 8 Gs)",
            },
            6: {
                "field_name": "turn_rate",
                "field_type": "sint16",
                "array": "N",
                "components": None,
                "scale": 1024,
                "offset": None,
                "units": "radians/second",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Range -8.727 to +8.727 (-500 degs/sec to +500 " "degs/sec)",
            },
            7: {
                "field_name": "stage",
                "field_type": "attitude_stage",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "attitude_stage_complete",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "The percent complete of the current attitude stage. "
                "Set to 0 for attitude stages 0, 1 and 2 and to 100 "
                "for attitude stage 3 by AHRS modules that do not "
                "support it. Range - 100",
            },
            9: {
                "field_name": "track",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 10430.38,
                "offset": None,
                "units": "radians",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Track Angle/Heading Range 0 - 2pi",
            },
            10: {
                "field_name": "validity",
                "field_type": "attitude_validity",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    184: {
        "name": "video",
        "fields": {
            0: {
                "field_name": "url",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "hosting_provider",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "duration",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Playback time of video",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    185: {
        "name": "video_title",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Long titles will be split into multiple parts",
            },
            0: {
                "field_name": "message_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total number of title parts",
            },
            1: {
                "field_name": "text",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    186: {
        "name": "video_description",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Long descriptions will be split into multiple " "parts",
            },
            0: {
                "field_name": "message_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total number of description parts",
            },
            1: {
                "field_name": "text",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    187: {
        "name": "video_clip",
        "fields": {
            0: {
                "field_name": "clip_number",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "start_timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "start_timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "end_timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "end_timestamp_ms",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "clip_start",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Start of clip in video time",
            },
            7: {
                "field_name": "clip_end",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "ms",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "End of clip in video time",
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    225: {
        "name": "set",
        "fields": {
            254: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timestamp of the set",
            },
            0: {
                "field_name": "duration",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "repetitions",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "# of repitions of the movement",
            },
            4: {
                "field_name": "weight",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 16,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Amount of weight applied for the set",
            },
            5: {
                "field_name": "set_type",
                "field_type": "set_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "start_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Start time of the set",
            },
            7: {
                "field_name": "category",
                "field_type": "exercise_category",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "category_subtype",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Based on the associated category, see "
                "[category]_exercise_names",
            },
            9: {
                "field_name": "weight_display_unit",
                "field_type": "fit_base_unit",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "wkt_step_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    285: {
        "name": "jump",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "distance",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "height",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "rotations",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "hang_time",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "score",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "A score for a jump calculated based on hang time, "
                "rotations, and distance.",
            },
            5: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "speed",
                "field_type": "uint16",
                "array": False,
                "components": "enhanced_speed",
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": 16,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "enhanced_speed",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    317: {
        "name": "climb_pro",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "climb_pro_event",
                "field_type": "climb_pro_event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "climb_number",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "climb_category",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "current_dist",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    206: {
        "name": "field_description",
        "fields": {
            0: {
                "field_name": "developer_data_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "field_definition_number",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "fit_base_type_id",
                "field_type": "fit_base_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "field_name",
                "field_type": "string",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "array",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "components",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "scale",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "offset",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "units",
                "field_type": "string",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "bits",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "accumulate",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "fit_base_unit_id",
                "field_type": "fit_base_unit",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "native_mesg_num",
                "field_type": "mesg_num",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "native_field_num",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    207: {
        "name": "developer_data_id",
        "fields": {
            0: {
                "field_name": "developer_id",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "application_id",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "manufacturer_id",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "developer_data_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "application_version",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "ACTIVITY FILE MESSAGES",
    },
    31: {
        "name": "course",
        "fields": {
            4: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "capabilities",
                "field_type": "course_capabilities",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "COURSE FILE MESSAGES",
    },
    32: {
        "name": "course_point",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "type",
                "field_type": "course_point",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "favorite",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "COURSE FILE MESSAGES",
    },
    148: {
        "name": "segment_id",
        "fields": {
            0: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Friendly name assigned to segment",
            },
            1: {
                "field_name": "uuid",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "UUID of the segment",
            },
            2: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Sport associated with the segment",
            },
            3: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Segment enabled for evaluation",
            },
            4: {
                "field_name": "user_profile_primary_key",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Primary key of the user that created the segment",
            },
            5: {
                "field_name": "device_id",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "ID of the device that created the segment",
            },
            6: {
                "field_name": "default_race_leader",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Index for the Leader Board entry selected as the "
                "default race participant",
            },
            7: {
                "field_name": "delete_status",
                "field_type": "segment_delete_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates if any segments should be deleted",
            },
            8: {
                "field_name": "selection_type",
                "field_type": "segment_selection_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates how the segment was selected to be sent to "
                "the device",
            },
        },
        "group": "SEGMENT FILE MESSAGES",
    },
    149: {
        "name": "segment_leaderboard_entry",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Friendly name assigned to leader",
            },
            1: {
                "field_name": "type",
                "field_type": "segment_leaderboard_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Leader classification",
            },
            2: {
                "field_name": "group_primary_key",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Primary user ID of this leader",
            },
            3: {
                "field_name": "activity_id",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "ID of the activity associated with this leader time",
            },
            4: {
                "field_name": "segment_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Segment Time (includes pauses)",
            },
            5: {
                "field_name": "activity_id_string",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "String version of the activity_id. 21 characters "
                "long, express in decimal",
            },
        },
        "group": "SEGMENT FILE MESSAGES",
    },
    150: {
        "name": "segment_point",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumulated distance along the segment at the "
                "described point",
            },
            4: {
                "field_name": "altitude",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumulated altitude along the segment at the "
                "described point",
            },
            5: {
                "field_name": "leader_time",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumualted time each leader board member required "
                "to reach the described point. This value is zero for "
                "all leader board members at the starting point of "
                "the segment.",
            },
        },
        "group": "SEGMENT FILE MESSAGES",
    },
    142: {
        "name": "segment_lap",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Lap end time.",
            },
            0: {
                "field_name": "event",
                "field_type": "event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "event_type",
                "field_type": "event_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "start_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "start_position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "start_position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "end_position_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "end_position_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "total_elapsed_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time (includes pauses)",
            },
            8: {
                "field_name": "total_timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Timer Time (excludes pauses)",
            },
            9: {
                "field_name": "total_distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "total_cycles",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "total_strokes",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "strokes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "sport",
                "ref_field_value": "cycling",
                "comment": None,
            },
            11: {
                "field_name": "total_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "total_fat_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "If New Leaf",
            },
            13: {
                "field_name": "avg_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "max_speed",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "avg_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            16: {
                "field_name": "max_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "avg_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_cycles / total_timer_time if "
                "non_zero_avg_cadence otherwise total_cycles / "
                "total_elapsed_time",
            },
            18: {
                "field_name": "max_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "avg_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "total_power / total_timer_time if "
                "non_zero_avg_power otherwise total_power / "
                "total_elapsed_time",
            },
            20: {
                "field_name": "max_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "total_ascent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "total_descent",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            23: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            24: {
                "field_name": "event_group",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            25: {
                "field_name": "nec_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "North east corner latitude.",
            },
            26: {
                "field_name": "nec_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "North east corner longitude.",
            },
            27: {
                "field_name": "swc_lat",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "South west corner latitude.",
            },
            28: {
                "field_name": "swc_long",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "semicircles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "South west corner latitude.",
            },
            29: {
                "field_name": "name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            30: {
                "field_name": "normalized_power",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            31: {
                "field_name": "left_right_balance",
                "field_type": "left_right_balance_100",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            32: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            33: {
                "field_name": "total_work",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "J",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            34: {
                "field_name": "avg_altitude",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            35: {
                "field_name": "max_altitude",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            36: {
                "field_name": "gps_accuracy",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            37: {
                "field_name": "avg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            38: {
                "field_name": "avg_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            39: {
                "field_name": "avg_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            40: {
                "field_name": "max_pos_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            41: {
                "field_name": "max_neg_grade",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            42: {
                "field_name": "avg_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            43: {
                "field_name": "max_temperature",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            44: {
                "field_name": "total_moving_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            45: {
                "field_name": "avg_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            46: {
                "field_name": "avg_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            47: {
                "field_name": "max_pos_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            48: {
                "field_name": "max_neg_vertical_speed",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            49: {
                "field_name": "time_in_hr_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            50: {
                "field_name": "time_in_speed_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            51: {
                "field_name": "time_in_cadence_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            52: {
                "field_name": "time_in_power_zone",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            53: {
                "field_name": "repetition_num",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            54: {
                "field_name": "min_altitude",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 5,
                "offset": 500,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            55: {
                "field_name": "min_heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            56: {
                "field_name": "active_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            57: {
                "field_name": "wkt_step_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            58: {
                "field_name": "sport_event",
                "field_type": "sport_event",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            59: {
                "field_name": "avg_left_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            60: {
                "field_name": "avg_right_torque_effectiveness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            61: {
                "field_name": "avg_left_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            62: {
                "field_name": "avg_right_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            63: {
                "field_name": "avg_combined_pedal_smoothness",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            64: {
                "field_name": "status",
                "field_type": "segment_lap_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            65: {
                "field_name": "uuid",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            66: {
                "field_name": "avg_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the avg_cadence",
            },
            67: {
                "field_name": "max_fractional_cadence",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the max_cadence",
            },
            68: {
                "field_name": "total_fractional_cycles",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 128,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of the total_cycles",
            },
            69: {
                "field_name": "front_gear_shift_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            70: {
                "field_name": "rear_gear_shift_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            71: {
                "field_name": "time_standing",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Total time spent in the standing position",
            },
            72: {
                "field_name": "stand_count",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Number of transitions to the standing state",
            },
            73: {
                "field_name": "avg_left_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left platform center offset",
            },
            74: {
                "field_name": "avg_right_pco",
                "field_type": "sint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right platform center offset",
            },
            75: {
                "field_name": "avg_left_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase angles. Data value indexes "
                "defined by power_phase_type.",
            },
            76: {
                "field_name": "avg_left_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average left power phase peak angles. Data value "
                "indexes defined by power_phase_type.",
            },
            77: {
                "field_name": "avg_right_power_phase",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase angles. Data value "
                "indexes defined by power_phase_type.",
            },
            78: {
                "field_name": "avg_right_power_phase_peak",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": 0.7111111,
                "offset": None,
                "units": "degrees",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average right power phase peak angles. Data value "
                "indexes defined by power_phase_type.",
            },
            79: {
                "field_name": "avg_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            80: {
                "field_name": "max_power_position",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum power by position. Data value indexes "
                "defined by rider_position_type.",
            },
            81: {
                "field_name": "avg_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            82: {
                "field_name": "max_cadence_position",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "rpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum cadence by position. Data value indexes "
                "defined by rider_position_type.",
            },
            83: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Manufacturer that produced the segment",
            },
            84: {
                "field_name": "total_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            85: {
                "field_name": "total_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            86: {
                "field_name": "avg_grit",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kGrit",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            87: {
                "field_name": "avg_flow",
                "field_type": "float32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "Flow",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "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.",
            },
            89: {
                "field_name": "total_fractional_ascent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_ascent",
            },
            90: {
                "field_name": "total_fractional_descent",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "fractional part of total_descent",
            },
        },
        "group": "SEGMENT FILE MESSAGES",
    },
    151: {
        "name": "segment_file",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "file_uuid",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "UUID of the segment file",
            },
            3: {
                "field_name": "enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Enabled state of the segment file",
            },
            4: {
                "field_name": "user_profile_primary_key",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Primary key of the user that created the segment " "file",
            },
            7: {
                "field_name": "leader_type",
                "field_type": "segment_leaderboard_type",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Leader type of each leader in the segment file",
            },
            8: {
                "field_name": "leader_group_primary_key",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Group primary key of each leader in the segment " "file",
            },
            9: {
                "field_name": "leader_activity_id",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Activity ID of each leader in the segment file",
            },
            10: {
                "field_name": "leader_activity_id_string",
                "field_type": "string",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "String version of the activity ID of each leader in "
                "the segment file. 21 characters long for each ID, "
                "express in decimal",
            },
            11: {
                "field_name": "default_race_leader",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Index for the Leader Board entry selected as the "
                "default race participant",
            },
        },
        "group": "SEGMENT LIST FILE MESSAGES",
    },
    26: {
        "name": "workout",
        "fields": {
            4: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "capabilities",
                "field_type": "workout_capabilities",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "num_valid_steps",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "number of valid steps",
            },
            8: {
                "field_name": "wkt_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            14: {
                "field_name": "pool_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            15: {
                "field_name": "pool_length_unit",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "WORKOUT FILE MESSAGES",
    },
    158: {
        "name": "workout_session",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "sub_sport",
                "field_type": "sub_sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "num_valid_steps",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "first_step_index",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "pool_length",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "pool_length_unit",
                "field_type": "display_measure",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "WORKOUT FILE MESSAGES",
    },
    27: {
        "name": "workout_step",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "wkt_step_name",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "duration_type",
                "field_type": "wkt_step_duration",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "duration_value",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            None: {
                "field_name": "secondary_custom_target_power_high",
                "field_type": "workout_power",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "% or watts",
                "bits": None,
                "accumulate": None,
                "ref_field_name": "secondary_target_type",
                "ref_field_value": "power",
                "comment": None,
            },
            3: {
                "field_name": "target_type",
                "field_type": "wkt_step_target",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "target_value",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "custom_target_value_low",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "custom_target_value_high",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "intensity",
                "field_type": "intensity",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "notes",
                "field_type": "string",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "equipment",
                "field_type": "workout_equipment",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "exercise_category",
                "field_type": "exercise_category",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "exercise_name",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "exercise_weight",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            13: {
                "field_name": "weight_display_unit",
                "field_type": "fit_base_unit",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            19: {
                "field_name": "secondary_target_type",
                "field_type": "wkt_step_target",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            20: {
                "field_name": "secondary_target_value",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            21: {
                "field_name": "secondary_custom_target_value_low",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            22: {
                "field_name": "secondary_custom_target_value_high",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "WORKOUT FILE MESSAGES",
    },
    264: {
        "name": "exercise_title",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "exercise_category",
                "field_type": "exercise_category",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "exercise_name",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "wkt_step_name",
                "field_type": "string",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "WORKOUT FILE MESSAGES",
    },
    28: {
        "name": "schedule",
        "fields": {
            0: {
                "field_name": "manufacturer",
                "field_type": "manufacturer",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Corresponds to file_id of scheduled workout / " "course.",
            },
            1: {
                "field_name": "product",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Corresponds to file_id of scheduled workout / " "course.",
            },
            None: {
                "field_name": "garmin_product",
                "field_type": "garmin_product",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": [
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                    "manufacturer",
                ],
                "ref_field_value": ["garmin", "dynastream", "dynastream_oem", "tacx"],
                "comment": None,
            },
            2: {
                "field_name": "serial_number",
                "field_type": "uint32z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Corresponds to file_id of scheduled workout / " "course.",
            },
            3: {
                "field_name": "time_created",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Corresponds to file_id of scheduled workout / " "course.",
            },
            4: {
                "field_name": "completed",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "TRUE if this activity has been started",
            },
            5: {
                "field_name": "type",
                "field_type": "schedule",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "scheduled_time",
                "field_type": "local_date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "SCHEDULE FILE MESSAGES",
    },
    33: {
        "name": "totals",
        "fields": {
            254: {
                "field_name": "message_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "timer_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Excludes pauses",
            },
            1: {
                "field_name": "distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "calories",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "sport",
                "field_type": "sport",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "elapsed_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Includes pauses",
            },
            5: {
                "field_name": "sessions",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "active_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "sport_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "TOTALS FILE MESSAGES",
    },
    30: {
        "name": "weight_scale",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "weight",
                "field_type": "weight",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "percent_fat",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "percent_hydration",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "%",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "visceral_fat_mass",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "bone_mass",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "muscle_mass",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "kg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "basal_met",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 4,
                "offset": None,
                "units": "kcal/day",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "physique_rating",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "active_met",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 4,
                "offset": None,
                "units": "kcal/day",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "~4kJ per kcal, 0.25 allows max 16384 kcal",
            },
            10: {
                "field_name": "metabolic_age",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "years",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "visceral_fat_rating",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            12: {
                "field_name": "user_profile_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Associates this weight scale message to a user. This "
                "corresponds to the index of the user profile message "
                "in the weight scale file.",
            },
        },
        "group": "WEIGHT SCALE FILE MESSAGES",
    },
    51: {
        "name": "blood_pressure",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "systolic_pressure",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "diastolic_pressure",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "mean_arterial_pressure",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "map_3_sample_mean",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "map_morning_values",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "map_evening_values",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "mmHg",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "heart_rate_type",
                "field_type": "hr_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "status",
                "field_type": "bp_status",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "user_profile_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Associates this blood pressure message to a user. "
                "This corresponds to the index of the user profile "
                "message in the blood pressure file.",
            },
        },
        "group": "BLOOD PRESSURE FILE MESSAGES",
    },
    103: {
        "name": "monitoring_info",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "local_timestamp",
                "field_type": "local_date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Use to convert activity timestamps to local time if "
                "device does not support time zone and daylight "
                "savings time correction.",
            },
            1: {
                "field_name": "activity_type",
                "field_type": "activity_type",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "cycles_to_distance",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 5000,
                "offset": None,
                "units": "m/cycle",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indexed by activity_type",
            },
            4: {
                "field_name": "cycles_to_calories",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 5000,
                "offset": None,
                "units": "kcal/cycle",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indexed by activity_type",
            },
            5: {
                "field_name": "resting_metabolic_rate",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal / day",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "MONITORING FILE MESSAGES",
    },
    55: {
        "name": "monitoring",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Must align to logging interval, for example, time "
                "must be 00:00:00 for daily log.",
            },
            0: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Associates this data to device_info message. Not "
                "required for file with single device (sensor).",
            },
            1: {
                "field_name": "calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumulated total calories. Maintained by "
                "MonitoringReader for each activity_type. See SDK "
                "documentation",
            },
            2: {
                "field_name": "distance",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumulated distance. Maintained by MonitoringReader "
                "for each activity_type. See SDK documentation.",
            },
            3: {
                "field_name": "cycles",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "cycles",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Accumulated cycles. Maintained by MonitoringReader "
                "for each activity_type. See SDK documentation.",
            },
            None: {
                "field_name": "strokes",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 2,
                "offset": None,
                "units": "strokes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": ["activity_type", "activity_type"],
                "ref_field_value": ["cycling", "swimming"],
                "comment": None,
            },
            4: {
                "field_name": "active_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "activity_type",
                "field_type": "activity_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "activity_subtype",
                "field_type": "activity_subtype",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "activity_level",
                "field_type": "activity_level",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "distance_16",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "100 * m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "cycles_16",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "2 * cycles (steps)",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "active_time_16",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "local_timestamp",
                "field_type": "local_date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Must align to logging interval, for example, time "
                "must be 00:00:00 for daily log.",
            },
            12: {
                "field_name": "temperature",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Avg temperature during the logging interval ended at "
                "timestamp",
            },
            14: {
                "field_name": "temperature_min",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Min temperature during the logging interval ended at "
                "timestamp",
            },
            15: {
                "field_name": "temperature_max",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": 100,
                "offset": None,
                "units": "C",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Max temperature during the logging interval ended at "
                "timestamp",
            },
            16: {
                "field_name": "activity_time",
                "field_type": "uint16",
                "array": 8,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "minutes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indexed using minute_activity_level enum",
            },
            19: {
                "field_name": "active_calories",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "kcal",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            24: {
                "field_name": "current_activity_type_intensity",
                "field_type": "byte",
                "array": False,
                "components": ["activity_type", "intensity"],
                "scale": None,
                "offset": None,
                "units": None,
                "bits": "5,3",
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Indicates single type / intensity for duration since "
                "last monitoring message.",
            },
            25: {
                "field_name": "timestamp_min_8",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            26: {
                "field_name": "timestamp_16",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            27: {
                "field_name": "heart_rate",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            28: {
                "field_name": "intensity",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 10,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            29: {
                "field_name": "duration_min",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "min",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            30: {
                "field_name": "duration",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            31: {
                "field_name": "ascent",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            32: {
                "field_name": "descent",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            33: {
                "field_name": "moderate_activity_minutes",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "minutes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            34: {
                "field_name": "vigorous_activity_minutes",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "minutes",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "MONITORING FILE MESSAGES",
    },
    132: {
        "name": "hr",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "fractional_timestamp",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 32768,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "time256",
                "field_type": "uint8",
                "array": False,
                "components": "fractional_timestamp",
                "scale": 256,
                "offset": None,
                "units": "s",
                "bits": 8,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "filtered_bpm",
                "field_type": "uint8",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": "bpm",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "event_timestamp",
                "field_type": "uint32",
                "array": "N",
                "components": None,
                "scale": 1024,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "event_timestamp_12",
                "field_type": "byte",
                "array": "N",
                "components": [
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                    "event_timestamp",
                ],
                "scale": [1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024],
                "offset": None,
                "units": "s",
                "bits": "12,12,12,12,12,12,12,12,12,12",
                "accumulate": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "MONITORING FILE MESSAGES",
    },
    227: {
        "name": "stress_level",
        "fields": {
            0: {
                "field_name": "stress_level_value",
                "field_type": "sint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "stress_level_time",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time stress score was calculated",
            },
        },
        "group": "MONITORING FILE MESSAGES",
    },
    145: {
        "name": "memo_glob",
        "fields": {
            250: {
                "field_name": "part_index",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Sequence number of memo blocks",
            },
            0: {
                "field_name": "memo",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Deprecated. Use data field.",
            },
            1: {
                "field_name": "mesg_num",
                "field_type": "mesg_num",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Message Number of the parent message",
            },
            2: {
                "field_name": "parent_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Index of mesg that this glob is associated with.",
            },
            3: {
                "field_name": "field_num",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Field within the parent that this glob is associated "
                "with",
            },
            4: {
                "field_name": "data",
                "field_type": "uint8z",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Block of utf8 bytes. Note, mutltibyte characters may "
                "be split across adjoining memo_glob messages.",
            },
        },
        "group": "OTHER MESSAGES",
    },
    82: {
        "name": "ant_channel_id",
        "fields": {
            0: {
                "field_name": "channel_number",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "device_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "device_number",
                "field_type": "uint16z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "transmission_type",
                "field_type": "uint8z",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "device_index",
                "field_type": "device_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    80: {
        "name": "ant_rx",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "fractional_timestamp",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 32768,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "mesg_id",
                "field_type": "byte",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "mesg_data",
                "field_type": "byte",
                "array": "N",
                "components": [
                    "channel_number",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                ],
                "scale": None,
                "offset": None,
                "units": None,
                "bits": "8,8,8,8,8,8,8,8,8",
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "channel_number",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "data",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    81: {
        "name": "ant_tx",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "fractional_timestamp",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 32768,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "mesg_id",
                "field_type": "byte",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "mesg_data",
                "field_type": "byte",
                "array": "N",
                "components": [
                    "channel_number",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                    "data",
                ],
                "scale": None,
                "offset": None,
                "units": None,
                "bits": "8,8,8,8,8,8,8,8,8",
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "channel_number",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "data",
                "field_type": "byte",
                "array": "N",
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    200: {
        "name": "exd_screen_configuration",
        "fields": {
            0: {
                "field_name": "screen_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "field_count",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "number of fields in screen",
            },
            2: {
                "field_name": "layout",
                "field_type": "exd_layout",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "screen_enabled",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    201: {
        "name": "exd_data_field_configuration",
        "fields": {
            0: {
                "field_name": "screen_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "concept_field",
                "field_type": "byte",
                "array": False,
                "components": ["field_id", "concept_count"],
                "scale": None,
                "offset": None,
                "units": None,
                "bits": "4,4",
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "field_id",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "concept_count",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "display_type",
                "field_type": "exd_display_type",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "title",
                "field_type": "string",
                "array": 32,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    202: {
        "name": "exd_data_concept_configuration",
        "fields": {
            0: {
                "field_name": "screen_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "concept_field",
                "field_type": "byte",
                "array": False,
                "components": ["field_id", "concept_index"],
                "scale": None,
                "offset": None,
                "units": None,
                "bits": "4,4",
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "field_id",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            3: {
                "field_name": "concept_index",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            4: {
                "field_name": "data_page",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            5: {
                "field_name": "concept_key",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "scaling",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "data_units",
                "field_type": "exd_data_units",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "qualifier",
                "field_type": "exd_qualifiers",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "descriptor",
                "field_type": "exd_descriptors",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "is_signed",
                "field_type": "bool",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
        },
        "group": "OTHER MESSAGES",
    },
    268: {
        "name": "dive_summary",
        "fields": {
            253: {
                "field_name": "timestamp",
                "field_type": "date_time",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            0: {
                "field_name": "reference_mesg",
                "field_type": "mesg_num",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            1: {
                "field_name": "reference_index",
                "field_type": "message_index",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            2: {
                "field_name": "avg_depth",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "0 if above water",
            },
            3: {
                "field_name": "max_depth",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "0 if above water",
            },
            4: {
                "field_name": "surface_interval",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time since end of last dive",
            },
            5: {
                "field_name": "start_cns",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            6: {
                "field_name": "end_cns",
                "field_type": "uint8",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            7: {
                "field_name": "start_n2",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            8: {
                "field_name": "end_n2",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": 1,
                "offset": None,
                "units": "percent",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            9: {
                "field_name": "o2_toxicity",
                "field_type": "uint16",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": "OTUs",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            10: {
                "field_name": "dive_number",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": None,
                "offset": None,
                "units": None,
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            11: {
                "field_name": "bottom_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": None,
            },
            17: {
                "field_name": "avg_ascent_rate",
                "field_type": "sint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average ascent rate, not including descents or " "stops",
            },
            22: {
                "field_name": "avg_descent_rate",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Average descent rate, not including ascents or " "stops",
            },
            23: {
                "field_name": "max_ascent_rate",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum ascent rate",
            },
            24: {
                "field_name": "max_descent_rate",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "m/s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Maximum descent rate",
            },
            25: {
                "field_name": "hang_time",
                "field_type": "uint32",
                "array": False,
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time spent neither ascending nor descending",
            },
        },
        "group": "OTHER MESSAGES",
    },
    78: {
        "name": "hrv",
        "fields": {
            0: {
                "field_name": "time",
                "field_type": "uint16",
                "array": "N",
                "components": None,
                "scale": 1000,
                "offset": None,
                "units": "s",
                "bits": None,
                "accumulate": None,
                "ref_field_name": None,
                "ref_field_value": None,
                "comment": "Time between beats",
            }
        },
        "group": "OTHER MESSAGES",
    },
}
