Packages
fit_decoder
0.1.0
A high-performance Elixir library for decoding Garmin .fit files using a C++ NIF.
Current section
Files
Jump to
Current section
Files
c_src/fit_sdk/cpp/fit_dive_settings_mesg.hpp
/////////////////////////////////////////////////////////////////////////////////////////////
// Copyright 2025 Garmin International, Inc.
// Licensed under the Flexible and Interoperable Data Transfer (FIT) Protocol License; you
// may not use this file except in compliance with the Flexible and Interoperable Data
// Transfer (FIT) Protocol License.
/////////////////////////////////////////////////////////////////////////////////////////////
// ****WARNING**** This file is auto-generated! Do NOT edit this file.
// Profile Version = 21.171.0Release
// Tag = production/release/21.171.0-0-g57fed75
/////////////////////////////////////////////////////////////////////////////////////////////
#if !defined(FIT_DIVE_SETTINGS_MESG_HPP)
#define FIT_DIVE_SETTINGS_MESG_HPP
#include "fit_mesg.hpp"
namespace fit
{
class DiveSettingsMesg : public Mesg
{
public:
class FieldDefNum final
{
public:
static const FIT_UINT8 Timestamp = 253;
static const FIT_UINT8 MessageIndex = 254;
static const FIT_UINT8 Name = 0;
static const FIT_UINT8 Model = 1;
static const FIT_UINT8 GfLow = 2;
static const FIT_UINT8 GfHigh = 3;
static const FIT_UINT8 WaterType = 4;
static const FIT_UINT8 WaterDensity = 5;
static const FIT_UINT8 Po2Warn = 6;
static const FIT_UINT8 Po2Critical = 7;
static const FIT_UINT8 Po2Deco = 8;
static const FIT_UINT8 SafetyStopEnabled = 9;
static const FIT_UINT8 BottomDepth = 10;
static const FIT_UINT8 BottomTime = 11;
static const FIT_UINT8 ApneaCountdownEnabled = 12;
static const FIT_UINT8 ApneaCountdownTime = 13;
static const FIT_UINT8 BacklightMode = 14;
static const FIT_UINT8 BacklightBrightness = 15;
static const FIT_UINT8 BacklightTimeout = 16;
static const FIT_UINT8 RepeatDiveInterval = 17;
static const FIT_UINT8 SafetyStopTime = 18;
static const FIT_UINT8 HeartRateSourceType = 19;
static const FIT_UINT8 HeartRateSource = 20;
static const FIT_UINT8 TravelGas = 21;
static const FIT_UINT8 CcrLowSetpointSwitchMode = 22;
static const FIT_UINT8 CcrLowSetpoint = 23;
static const FIT_UINT8 CcrLowSetpointDepth = 24;
static const FIT_UINT8 CcrHighSetpointSwitchMode = 25;
static const FIT_UINT8 CcrHighSetpoint = 26;
static const FIT_UINT8 CcrHighSetpointDepth = 27;
static const FIT_UINT8 GasConsumptionDisplay = 29;
static const FIT_UINT8 UpKeyEnabled = 30;
static const FIT_UINT8 DiveSounds = 35;
static const FIT_UINT8 LastStopMultiple = 36;
static const FIT_UINT8 NoFlyTimeMode = 37;
static const FIT_UINT8 Invalid = FIT_FIELD_NUM_INVALID;
};
DiveSettingsMesg(void) : Mesg(Profile::MESG_DIVE_SETTINGS)
{
}
DiveSettingsMesg(const Mesg &mesg) : Mesg(mesg)
{
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of timestamp field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsTimestampValid() const
{
const Field* field = GetField(253);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns timestamp field
///////////////////////////////////////////////////////////////////////
FIT_DATE_TIME GetTimestamp(void) const
{
return GetFieldUINT32Value(253, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set timestamp field
///////////////////////////////////////////////////////////////////////
void SetTimestamp(FIT_DATE_TIME timestamp)
{
SetFieldUINT32Value(253, timestamp, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of message_index field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsMessageIndexValid() const
{
const Field* field = GetField(254);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns message_index field
///////////////////////////////////////////////////////////////////////
FIT_MESSAGE_INDEX GetMessageIndex(void) const
{
return GetFieldUINT16Value(254, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set message_index field
///////////////////////////////////////////////////////////////////////
void SetMessageIndex(FIT_MESSAGE_INDEX messageIndex)
{
SetFieldUINT16Value(254, messageIndex, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of name field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsNameValid() const
{
const Field* field = GetField(0);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns name field
///////////////////////////////////////////////////////////////////////
FIT_WSTRING GetName(void) const
{
return GetFieldSTRINGValue(0, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set name field
///////////////////////////////////////////////////////////////////////
void SetName(FIT_WSTRING name)
{
SetFieldSTRINGValue(0, name, 0);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of model field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsModelValid() const
{
const Field* field = GetField(1);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns model field
///////////////////////////////////////////////////////////////////////
FIT_TISSUE_MODEL_TYPE GetModel(void) const
{
return GetFieldENUMValue(1, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set model field
///////////////////////////////////////////////////////////////////////
void SetModel(FIT_TISSUE_MODEL_TYPE model)
{
SetFieldENUMValue(1, model, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of gf_low field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsGfLowValid() const
{
const Field* field = GetField(2);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns gf_low field
// Units: percent
///////////////////////////////////////////////////////////////////////
FIT_UINT8 GetGfLow(void) const
{
return GetFieldUINT8Value(2, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set gf_low field
// Units: percent
///////////////////////////////////////////////////////////////////////
void SetGfLow(FIT_UINT8 gfLow)
{
SetFieldUINT8Value(2, gfLow, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of gf_high field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsGfHighValid() const
{
const Field* field = GetField(3);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns gf_high field
// Units: percent
///////////////////////////////////////////////////////////////////////
FIT_UINT8 GetGfHigh(void) const
{
return GetFieldUINT8Value(3, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set gf_high field
// Units: percent
///////////////////////////////////////////////////////////////////////
void SetGfHigh(FIT_UINT8 gfHigh)
{
SetFieldUINT8Value(3, gfHigh, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of water_type field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsWaterTypeValid() const
{
const Field* field = GetField(4);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns water_type field
///////////////////////////////////////////////////////////////////////
FIT_WATER_TYPE GetWaterType(void) const
{
return GetFieldENUMValue(4, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set water_type field
///////////////////////////////////////////////////////////////////////
void SetWaterType(FIT_WATER_TYPE waterType)
{
SetFieldENUMValue(4, waterType, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of water_density field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsWaterDensityValid() const
{
const Field* field = GetField(5);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns water_density field
// Units: kg/m^3
// Comment: Fresh water is usually 1000; salt water is usually 1025
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetWaterDensity(void) const
{
return GetFieldFLOAT32Value(5, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set water_density field
// Units: kg/m^3
// Comment: Fresh water is usually 1000; salt water is usually 1025
///////////////////////////////////////////////////////////////////////
void SetWaterDensity(FIT_FLOAT32 waterDensity)
{
SetFieldFLOAT32Value(5, waterDensity, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of po2_warn field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsPo2WarnValid() const
{
const Field* field = GetField(6);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns po2_warn field
// Units: percent
// Comment: Typically 1.40
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetPo2Warn(void) const
{
return GetFieldFLOAT32Value(6, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set po2_warn field
// Units: percent
// Comment: Typically 1.40
///////////////////////////////////////////////////////////////////////
void SetPo2Warn(FIT_FLOAT32 po2Warn)
{
SetFieldFLOAT32Value(6, po2Warn, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of po2_critical field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsPo2CriticalValid() const
{
const Field* field = GetField(7);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns po2_critical field
// Units: percent
// Comment: Typically 1.60
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetPo2Critical(void) const
{
return GetFieldFLOAT32Value(7, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set po2_critical field
// Units: percent
// Comment: Typically 1.60
///////////////////////////////////////////////////////////////////////
void SetPo2Critical(FIT_FLOAT32 po2Critical)
{
SetFieldFLOAT32Value(7, po2Critical, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of po2_deco field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsPo2DecoValid() const
{
const Field* field = GetField(8);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns po2_deco field
// Units: percent
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetPo2Deco(void) const
{
return GetFieldFLOAT32Value(8, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set po2_deco field
// Units: percent
///////////////////////////////////////////////////////////////////////
void SetPo2Deco(FIT_FLOAT32 po2Deco)
{
SetFieldFLOAT32Value(8, po2Deco, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of safety_stop_enabled field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsSafetyStopEnabledValid() const
{
const Field* field = GetField(9);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns safety_stop_enabled field
///////////////////////////////////////////////////////////////////////
FIT_BOOL GetSafetyStopEnabled(void) const
{
return GetFieldENUMValue(9, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set safety_stop_enabled field
///////////////////////////////////////////////////////////////////////
void SetSafetyStopEnabled(FIT_BOOL safetyStopEnabled)
{
SetFieldENUMValue(9, safetyStopEnabled, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of bottom_depth field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsBottomDepthValid() const
{
const Field* field = GetField(10);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns bottom_depth field
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetBottomDepth(void) const
{
return GetFieldFLOAT32Value(10, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set bottom_depth field
///////////////////////////////////////////////////////////////////////
void SetBottomDepth(FIT_FLOAT32 bottomDepth)
{
SetFieldFLOAT32Value(10, bottomDepth, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of bottom_time field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsBottomTimeValid() const
{
const Field* field = GetField(11);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns bottom_time field
///////////////////////////////////////////////////////////////////////
FIT_UINT32 GetBottomTime(void) const
{
return GetFieldUINT32Value(11, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set bottom_time field
///////////////////////////////////////////////////////////////////////
void SetBottomTime(FIT_UINT32 bottomTime)
{
SetFieldUINT32Value(11, bottomTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of apnea_countdown_enabled field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsApneaCountdownEnabledValid() const
{
const Field* field = GetField(12);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns apnea_countdown_enabled field
///////////////////////////////////////////////////////////////////////
FIT_BOOL GetApneaCountdownEnabled(void) const
{
return GetFieldENUMValue(12, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set apnea_countdown_enabled field
///////////////////////////////////////////////////////////////////////
void SetApneaCountdownEnabled(FIT_BOOL apneaCountdownEnabled)
{
SetFieldENUMValue(12, apneaCountdownEnabled, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of apnea_countdown_time field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsApneaCountdownTimeValid() const
{
const Field* field = GetField(13);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns apnea_countdown_time field
///////////////////////////////////////////////////////////////////////
FIT_UINT32 GetApneaCountdownTime(void) const
{
return GetFieldUINT32Value(13, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set apnea_countdown_time field
///////////////////////////////////////////////////////////////////////
void SetApneaCountdownTime(FIT_UINT32 apneaCountdownTime)
{
SetFieldUINT32Value(13, apneaCountdownTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of backlight_mode field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsBacklightModeValid() const
{
const Field* field = GetField(14);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns backlight_mode field
///////////////////////////////////////////////////////////////////////
FIT_DIVE_BACKLIGHT_MODE GetBacklightMode(void) const
{
return GetFieldENUMValue(14, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set backlight_mode field
///////////////////////////////////////////////////////////////////////
void SetBacklightMode(FIT_DIVE_BACKLIGHT_MODE backlightMode)
{
SetFieldENUMValue(14, backlightMode, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of backlight_brightness field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsBacklightBrightnessValid() const
{
const Field* field = GetField(15);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns backlight_brightness field
///////////////////////////////////////////////////////////////////////
FIT_UINT8 GetBacklightBrightness(void) const
{
return GetFieldUINT8Value(15, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set backlight_brightness field
///////////////////////////////////////////////////////////////////////
void SetBacklightBrightness(FIT_UINT8 backlightBrightness)
{
SetFieldUINT8Value(15, backlightBrightness, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of backlight_timeout field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsBacklightTimeoutValid() const
{
const Field* field = GetField(16);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns backlight_timeout field
///////////////////////////////////////////////////////////////////////
FIT_BACKLIGHT_TIMEOUT GetBacklightTimeout(void) const
{
return GetFieldUINT8Value(16, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set backlight_timeout field
///////////////////////////////////////////////////////////////////////
void SetBacklightTimeout(FIT_BACKLIGHT_TIMEOUT backlightTimeout)
{
SetFieldUINT8Value(16, backlightTimeout, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of repeat_dive_interval field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsRepeatDiveIntervalValid() const
{
const Field* field = GetField(17);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns repeat_dive_interval field
// Units: s
// Comment: Time between surfacing and ending the activity
///////////////////////////////////////////////////////////////////////
FIT_UINT16 GetRepeatDiveInterval(void) const
{
return GetFieldUINT16Value(17, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set repeat_dive_interval field
// Units: s
// Comment: Time between surfacing and ending the activity
///////////////////////////////////////////////////////////////////////
void SetRepeatDiveInterval(FIT_UINT16 repeatDiveInterval)
{
SetFieldUINT16Value(17, repeatDiveInterval, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of safety_stop_time field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsSafetyStopTimeValid() const
{
const Field* field = GetField(18);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns safety_stop_time field
// Units: s
// Comment: Time at safety stop (if enabled)
///////////////////////////////////////////////////////////////////////
FIT_UINT16 GetSafetyStopTime(void) const
{
return GetFieldUINT16Value(18, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set safety_stop_time field
// Units: s
// Comment: Time at safety stop (if enabled)
///////////////////////////////////////////////////////////////////////
void SetSafetyStopTime(FIT_UINT16 safetyStopTime)
{
SetFieldUINT16Value(18, safetyStopTime, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of heart_rate_source_type field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsHeartRateSourceTypeValid() const
{
const Field* field = GetField(19);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns heart_rate_source_type field
///////////////////////////////////////////////////////////////////////
FIT_SOURCE_TYPE GetHeartRateSourceType(void) const
{
return GetFieldENUMValue(19, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set heart_rate_source_type field
///////////////////////////////////////////////////////////////////////
void SetHeartRateSourceType(FIT_SOURCE_TYPE heartRateSourceType)
{
SetFieldENUMValue(19, heartRateSourceType, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of heart_rate_source field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsHeartRateSourceValid() const
{
const Field* field = GetField(20);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns heart_rate_source field
///////////////////////////////////////////////////////////////////////
FIT_UINT8 GetHeartRateSource(void) const
{
return GetFieldUINT8Value(20, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set heart_rate_source field
///////////////////////////////////////////////////////////////////////
void SetHeartRateSource(FIT_UINT8 heartRateSource)
{
SetFieldUINT8Value(20, heartRateSource, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of heart_rate_antplus_device_type field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsHeartRateAntplusDeviceTypeValid() const
{
const Field* field = GetField(20);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
if( !CanSupportSubField( field, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_ANTPLUS_DEVICE_TYPE ) )
{
return FIT_FALSE;
}
return field->IsValueValid(0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_ANTPLUS_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Returns heart_rate_antplus_device_type field
///////////////////////////////////////////////////////////////////////
FIT_ANTPLUS_DEVICE_TYPE GetHeartRateAntplusDeviceType(void) const
{
return GetFieldUINT8Value(20, 0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_ANTPLUS_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Set heart_rate_antplus_device_type field
///////////////////////////////////////////////////////////////////////
void SetHeartRateAntplusDeviceType(FIT_ANTPLUS_DEVICE_TYPE heartRateAntplusDeviceType)
{
SetFieldUINT8Value(20, heartRateAntplusDeviceType, 0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_ANTPLUS_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of heart_rate_local_device_type field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsHeartRateLocalDeviceTypeValid() const
{
const Field* field = GetField(20);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
if( !CanSupportSubField( field, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_LOCAL_DEVICE_TYPE ) )
{
return FIT_FALSE;
}
return field->IsValueValid(0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_LOCAL_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Returns heart_rate_local_device_type field
///////////////////////////////////////////////////////////////////////
FIT_LOCAL_DEVICE_TYPE GetHeartRateLocalDeviceType(void) const
{
return GetFieldUINT8Value(20, 0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_LOCAL_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Set heart_rate_local_device_type field
///////////////////////////////////////////////////////////////////////
void SetHeartRateLocalDeviceType(FIT_LOCAL_DEVICE_TYPE heartRateLocalDeviceType)
{
SetFieldUINT8Value(20, heartRateLocalDeviceType, 0, (FIT_UINT16) Profile::DIVE_SETTINGS_MESG_HEART_RATE_SOURCE_FIELD_HEART_RATE_LOCAL_DEVICE_TYPE);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of travel_gas field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsTravelGasValid() const
{
const Field* field = GetField(21);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns travel_gas field
// Comment: Index of travel dive_gas message
///////////////////////////////////////////////////////////////////////
FIT_MESSAGE_INDEX GetTravelGas(void) const
{
return GetFieldUINT16Value(21, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set travel_gas field
// Comment: Index of travel dive_gas message
///////////////////////////////////////////////////////////////////////
void SetTravelGas(FIT_MESSAGE_INDEX travelGas)
{
SetFieldUINT16Value(21, travelGas, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_low_setpoint_switch_mode field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrLowSetpointSwitchModeValid() const
{
const Field* field = GetField(22);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_low_setpoint_switch_mode field
// Comment: If low PO2 should be switched to automatically
///////////////////////////////////////////////////////////////////////
FIT_CCR_SETPOINT_SWITCH_MODE GetCcrLowSetpointSwitchMode(void) const
{
return GetFieldENUMValue(22, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_low_setpoint_switch_mode field
// Comment: If low PO2 should be switched to automatically
///////////////////////////////////////////////////////////////////////
void SetCcrLowSetpointSwitchMode(FIT_CCR_SETPOINT_SWITCH_MODE ccrLowSetpointSwitchMode)
{
SetFieldENUMValue(22, ccrLowSetpointSwitchMode, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_low_setpoint field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrLowSetpointValid() const
{
const Field* field = GetField(23);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_low_setpoint field
// Units: percent
// Comment: Target PO2 when using low setpoint
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetCcrLowSetpoint(void) const
{
return GetFieldFLOAT32Value(23, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_low_setpoint field
// Units: percent
// Comment: Target PO2 when using low setpoint
///////////////////////////////////////////////////////////////////////
void SetCcrLowSetpoint(FIT_FLOAT32 ccrLowSetpoint)
{
SetFieldFLOAT32Value(23, ccrLowSetpoint, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_low_setpoint_depth field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrLowSetpointDepthValid() const
{
const Field* field = GetField(24);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_low_setpoint_depth field
// Units: m
// Comment: Depth to switch to low setpoint in automatic mode
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetCcrLowSetpointDepth(void) const
{
return GetFieldFLOAT32Value(24, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_low_setpoint_depth field
// Units: m
// Comment: Depth to switch to low setpoint in automatic mode
///////////////////////////////////////////////////////////////////////
void SetCcrLowSetpointDepth(FIT_FLOAT32 ccrLowSetpointDepth)
{
SetFieldFLOAT32Value(24, ccrLowSetpointDepth, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_high_setpoint_switch_mode field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrHighSetpointSwitchModeValid() const
{
const Field* field = GetField(25);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_high_setpoint_switch_mode field
// Comment: If high PO2 should be switched to automatically
///////////////////////////////////////////////////////////////////////
FIT_CCR_SETPOINT_SWITCH_MODE GetCcrHighSetpointSwitchMode(void) const
{
return GetFieldENUMValue(25, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_high_setpoint_switch_mode field
// Comment: If high PO2 should be switched to automatically
///////////////////////////////////////////////////////////////////////
void SetCcrHighSetpointSwitchMode(FIT_CCR_SETPOINT_SWITCH_MODE ccrHighSetpointSwitchMode)
{
SetFieldENUMValue(25, ccrHighSetpointSwitchMode, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_high_setpoint field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrHighSetpointValid() const
{
const Field* field = GetField(26);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_high_setpoint field
// Units: percent
// Comment: Target PO2 when using high setpoint
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetCcrHighSetpoint(void) const
{
return GetFieldFLOAT32Value(26, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_high_setpoint field
// Units: percent
// Comment: Target PO2 when using high setpoint
///////////////////////////////////////////////////////////////////////
void SetCcrHighSetpoint(FIT_FLOAT32 ccrHighSetpoint)
{
SetFieldFLOAT32Value(26, ccrHighSetpoint, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of ccr_high_setpoint_depth field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsCcrHighSetpointDepthValid() const
{
const Field* field = GetField(27);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns ccr_high_setpoint_depth field
// Units: m
// Comment: Depth to switch to high setpoint in automatic mode
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetCcrHighSetpointDepth(void) const
{
return GetFieldFLOAT32Value(27, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set ccr_high_setpoint_depth field
// Units: m
// Comment: Depth to switch to high setpoint in automatic mode
///////////////////////////////////////////////////////////////////////
void SetCcrHighSetpointDepth(FIT_FLOAT32 ccrHighSetpointDepth)
{
SetFieldFLOAT32Value(27, ccrHighSetpointDepth, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of gas_consumption_display field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsGasConsumptionDisplayValid() const
{
const Field* field = GetField(29);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns gas_consumption_display field
// Comment: Type of gas consumption rate to display. Some values are only valid if tank volume is known.
///////////////////////////////////////////////////////////////////////
FIT_GAS_CONSUMPTION_RATE_TYPE GetGasConsumptionDisplay(void) const
{
return GetFieldENUMValue(29, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set gas_consumption_display field
// Comment: Type of gas consumption rate to display. Some values are only valid if tank volume is known.
///////////////////////////////////////////////////////////////////////
void SetGasConsumptionDisplay(FIT_GAS_CONSUMPTION_RATE_TYPE gasConsumptionDisplay)
{
SetFieldENUMValue(29, gasConsumptionDisplay, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of up_key_enabled field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsUpKeyEnabledValid() const
{
const Field* field = GetField(30);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns up_key_enabled field
// Comment: Indicates whether the up key is enabled during dives
///////////////////////////////////////////////////////////////////////
FIT_BOOL GetUpKeyEnabled(void) const
{
return GetFieldENUMValue(30, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set up_key_enabled field
// Comment: Indicates whether the up key is enabled during dives
///////////////////////////////////////////////////////////////////////
void SetUpKeyEnabled(FIT_BOOL upKeyEnabled)
{
SetFieldENUMValue(30, upKeyEnabled, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of dive_sounds field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsDiveSoundsValid() const
{
const Field* field = GetField(35);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns dive_sounds field
// Comment: Sounds and vibration enabled or disabled in-dive
///////////////////////////////////////////////////////////////////////
FIT_TONE GetDiveSounds(void) const
{
return GetFieldENUMValue(35, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set dive_sounds field
// Comment: Sounds and vibration enabled or disabled in-dive
///////////////////////////////////////////////////////////////////////
void SetDiveSounds(FIT_TONE diveSounds)
{
SetFieldENUMValue(35, diveSounds, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of last_stop_multiple field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsLastStopMultipleValid() const
{
const Field* field = GetField(36);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns last_stop_multiple field
// Comment: Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft
///////////////////////////////////////////////////////////////////////
FIT_FLOAT32 GetLastStopMultiple(void) const
{
return GetFieldFLOAT32Value(36, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set last_stop_multiple field
// Comment: Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft
///////////////////////////////////////////////////////////////////////
void SetLastStopMultiple(FIT_FLOAT32 lastStopMultiple)
{
SetFieldFLOAT32Value(36, lastStopMultiple, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Checks the validity of no_fly_time_mode field
// Returns FIT_TRUE if field is valid
///////////////////////////////////////////////////////////////////////
FIT_BOOL IsNoFlyTimeModeValid() const
{
const Field* field = GetField(37);
if( FIT_NULL == field )
{
return FIT_FALSE;
}
return field->IsValueValid();
}
///////////////////////////////////////////////////////////////////////
// Returns no_fly_time_mode field
// Comment: Indicates which guidelines to use for no-fly surface interval.
///////////////////////////////////////////////////////////////////////
FIT_NO_FLY_TIME_MODE GetNoFlyTimeMode(void) const
{
return GetFieldENUMValue(37, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
///////////////////////////////////////////////////////////////////////
// Set no_fly_time_mode field
// Comment: Indicates which guidelines to use for no-fly surface interval.
///////////////////////////////////////////////////////////////////////
void SetNoFlyTimeMode(FIT_NO_FLY_TIME_MODE noFlyTimeMode)
{
SetFieldENUMValue(37, noFlyTimeMode, 0, FIT_SUBFIELD_INDEX_MAIN_FIELD);
}
};
} // namespace fit
#endif // !defined(FIT_DIVE_SETTINGS_MESG_HPP)