Geo-FIT

 view release on metacpan or  search on metacpan

lib/Geo/FIT.pm  view on Meta::CPAN

        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        1 => +{'name' => 'high_bpm', 'unit' => 'bpm'},
        2 => +{'name' => 'calories', 'scale' => 10, 'unit' => 'kcal/min'},
        3 => +{'name' => 'fat_calories', 'scale' => 10, 'unit' => 'kcal/min'},
    },

    'dive_settings' => +{
        253 => +{'name' => 'timestamp',     'type_name' => 'date_time'},
        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        0 =>  +{'name' => 'name'},
        1 =>  +{'name' => 'model', 'type_name' => 'tissue_model_type'},
        2 =>  +{'name' => 'gf_low',  'unit' => '%'},
        3 =>  +{'name' => 'gf_high', 'unit' => '%'},
        4 =>  +{'name' => 'water_type', 'type_name' => 'water_type'},
        5 =>  +{'name' => 'water_density', 'unit' => 'kg/m^3'},
        6 =>  +{'name' => 'po2_warn',  'scale' => 100, 'unit' => '%'},
        7 =>  +{'name' => 'po2_critical', 'scale' => 100, 'unit' => '%'},
        8 =>  +{'name' => 'po2_deco', 'scale' => 100, 'unit' => '%'},
        9 =>  +{'name' => 'safety_stop_enabled', 'type_name' => 'bool'},
        10 => +{'name' => 'bottom_depth'},
        11 => +{'name' => 'bottom_time'},
        12 => +{'name' => 'apnea_countdown_enabled', 'type_name' => 'bool'},
        13 => +{'name' => 'apnea_countdown_time'},
        14 => +{'name' => 'backlight_mode', 'type_name' => 'dive_backlight_mode'},
        15 => +{'name' => 'backlight_brightness'},
        16 => +{'name' => 'backlight_timeout', 'type_name' => 'backlight_timeout'},
        17 => +{'name' => 'repeat_dive_interval', 'unit' => 's'},
        18 => +{'name' => 'safety_stop_time', 'unit' => 's'},
        19 => +{'name' => 'heart_rate_source_type', 'type_name' => 'source_type'},
        20 => +{
            'name' => 'heart_rate_source',
            'switch' => +{
                '_by' => 'heart_rate_source_type',
                'antplus' => +{'name' => 'heart_rate_antplus_device_type', 'type_name' => 'antplus_device_type'},
                'local' => +{'name' => 'heart_rate_local_device_type', 'type_name' => 'local_device_type'},
            },
        },
        21 => +{ 'name' => 'travel_gas', 'type_name' => 'message_index' },                          # Index of travel dive_gas message
        22 => +{ 'name' => 'ccr_low_setpoint_switch_mode', 'type_name' => 'ccr_setpoint_switch_mode' }, # If low PO2 should be switched to automatically
        23 => +{ 'name' => 'ccr_low_setpoint', 'scale' => 100 },                                    # Target PO2 when using low setpoint
        24 => +{ 'name' => 'ccr_low_setpoint_depth', 'unit' => 'm', 'scale' => 1000 },              # Depth to switch to low setpoint in automatic mode
        25 => +{ 'name' => 'ccr_high_setpoint_switch_mode', 'type' => 'ccr_setpoint_switch_mode' }, # If high PO2 should be switched to automatically
        26 => +{ 'name' => 'ccr_high_setpoint', 'unit' => '%', 'scale' => 100 },                    # Target PO2 when using high setpoint
        27 => +{ 'name' => 'ccr_high_setpoint_depth', 'unit' => 'm', 'scale' => 1000 },             # Depth to switch to high setpoint in automatic mode
        29 => +{ 'name' => 'gas_consumption_display', 'type_name' => 'gas_consumption_rate_type' }, # Type of gas consumption rate to display. Some values are only valid if tank volume is known.
        30 => +{ 'name' => 'up_key_enabled', 'type_name' => 'bool' },                               # Indicates whether the up key is enabled during dives
        35 => +{ 'name' => 'dive_sounds', 'type_name' => 'tone' },                                  # Sounds and vibration enabled or disabled in-dive
        36 => +{ 'name' => 'last_stop_multiple', 'scale' => 10 },                                   # Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft
        37 => +{ 'name' => 'no_fly_time_mode', 'type_name' => 'no_fly_time_mode' },                 # Indicates which guidelines to use for no-fly surface interval.
    },

    'dive_alarm' => +{
        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        0 => +{'name' => 'depth', 'scale' => 1000, 'unit' => 'm'},
        1 => +{'name' => 'time', 'unit' => 's'},
        2 => +{'name' => 'enabled', 'type_name' => 'bool'},
        3 => +{'name' => 'alarm_type', 'type_name' => 'dive_alarm_type'},
        4 => +{'name' => 'sound', 'type_name' => 'tone'},
        5 => +{'name' => 'dive_types', 'type_name' => 'sub_sport'},
        6  => +{ 'name' => 'id' },                                          # Alarm ID
        7  => +{ 'name' => 'popup_enabled',      'type_name' => 'bool' },   # Show a visible pop-up for this alarm
        8  => +{ 'name' => 'trigger_on_descent', 'type_name' => 'bool' },   # Trigger the alarm on descent
        9  => +{ 'name' => 'trigger_on_ascent',  'type_name' => 'bool' },   # Trigger the alarm on ascent
        10 => +{ 'name' => 'repeating',          'type_name' => 'bool' },   # Repeat alarm each time threshold is crossed?
        11 => +{ 'name' => 'speed',              'scale' => 1000 },         # Ascent/descent rate (mps) setting for speed type alarms
    },

    'dive_apnea_alarm' => +{
        254 => +{'name' => 'message_index',      'type_name' => 'message_index'},
        0  => +{ 'name' => 'depth',              'unit' => 'm', 'scale' => 1000 },   # Depth setting (m) for depth type alarms
        1  => +{ 'name' => 'time',               'unit' => 's' },                    # Time setting (s) for time type alarms
        2  => +{ 'name' => 'enabled',            'type_name' => 'bool' },            # Enablement flag
        3  => +{ 'name' => 'alarm_type',         'type_name' => 'dive_alarm_type' }, # Alarm type setting
        4  => +{ 'name' => 'sound',              'type_name' => 'tone' },            # Tone and Vibe setting for the alarm.
        5  => +{ 'name' => 'dive_types',         'type_name' => 'sub_sport' },       # Dive types the alarm will trigger on
        6  => +{ 'name' => 'id' },                                                   # Alarm ID
        7  => +{ 'name' => 'popup_enabled',      'type_name' => 'bool' },            # Show a visible pop-up for this alarm
        8  => +{ 'name' => 'trigger_on_descent', 'type_name' => 'bool' },            # Trigger the alarm on descent
        9  => +{ 'name' => 'trigger_on_ascent',  'type_name' => 'bool' },            # Trigger the alarm on ascent
        10 => +{ 'name' => 'repeating',          'type_name' => 'bool' },            # Repeat alarm each time threshold is crossed?
        11 => +{ 'name' => 'speed',              'unit' => 'mps', 'scale' => 1000 }, # Ascent/descent rate (mps) setting for speed type alarms
    },

    'dive_gas' => +{
        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        0 => +{'name' => 'helium_content', 'unit' => '%'},
        1 => +{'name' => 'oxygen_content', 'unit' => '%'},
        2 => +{'name' => 'status', 'type_name' => 'dive_gas_status'},
        3 => +{'name' => 'mode',   'type_name' => 'dive_gas_mode'},
    },

    'goal' => +{                        # begins === Goals file messages === section
        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        0 => +{'name' => 'sport', 'type_name' => 'sport'},
        1 => +{'name' => 'sub_sport', 'type_name' => 'sub_sport'},
        2 => +{'name' => 'start_date', 'type_name' => 'date_time'},
        3 => +{'name' => 'end_date', 'type_name' => 'date_time'},
        4 => +{'name' => 'type', 'type_name' => 'goal'},
        5 => +{'name' => 'value'},
        6 => +{'name' => 'repeat', 'type_name' => 'bool'},
        7 => +{'name' => 'target_value'},
        8 => +{'name' => 'recurrence', 'type_name' => 'goal_recurrence'},
        9 => +{'name' => 'recurrence_value'},
        10 => +{'name' => 'enabled', 'type_name' => 'bool'},
        11 => +{'name' => 'source', 'type_name' => 'goal_source'},
    },

    'activity' => +{                    # begins === Activity file messages === section
        253 => +{'name' => 'timestamp', 'type_name' => 'date_time'},
        0 => +{'name' => 'total_timer_time', 'scale' => 1000, 'unit' => 's'},
        1 => +{'name' => 'num_sessions'},
        2 => +{'name' => 'type', 'type_name' => 'activity'},
        3 => +{'name' => 'event', 'type_name' => 'event'},
        4 => +{'name' => 'event_type', 'type_name' => 'event_type'},
        5 => +{'name' => 'local_timestamp', 'type_name' => 'local_date_time'},
        6 => +{'name' => 'event_group'},
    },

    'session' => +{
        254 => +{'name' => 'message_index', 'type_name' => 'message_index'},
        253 => +{'name' => 'timestamp', 'type_name' => 'date_time'},
        0 => +{'name' => 'event', 'type_name' => 'event'},
        1 => +{'name' => 'event_type', 'type_name' => 'event_type'},
        2 => +{'name' => 'start_time', 'type_name' => 'date_time'},
        3 => +{'name' => 'start_position_lat', 'unit' => 'semicircles'},
        4 => +{'name' => 'start_position_long', 'unit' => 'semicircles'},
        5 => +{'name' => 'sport', 'type_name' => 'sport'},
        6 => +{'name' => 'sub_sport', 'type_name' => 'sub_sport'},
        7 => +{'name' => 'total_elapsed_time', 'scale' => 1000, 'unit' => 's'},
        8 => +{'name' => 'total_timer_time', 'scale' => 1000, 'unit' => 's'},
        9 => +{'name' => 'total_distance', 'scale' => 100, 'unit' => 'm'},

        10 => +{
            'name' => 'total_cycles', 'unit' => 'cycles',

            'switch' => +{
                '_by' => 'sport',



( run in 0.630 second using v1.01-cache-2.11-cpan-364913b4093 )