QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
DiveGasMessagePrivate Class Reference
Inheritance diagram for DiveGasMessagePrivate:
[legend]
Collaboration diagram for DiveGasMessagePrivate:
[legend]

Public Member Functions

 DiveGasMessagePrivate (DiveGasMessage *const q)
 
virtual ~DiveGasMessagePrivate ()
 
- Public Member Functions inherited from AbstractDataMessagePrivate
 AbstractDataMessagePrivate (AbstractDataMessage *const q)
 
virtual ~AbstractDataMessagePrivate ()
 
bool setFields (const DataDefinition *const defn, const QByteArray &record)
 

Public Attributes

MessageIndex messageIndex
 The DiveGasMessage FIT message's messageIndex field.
 
quint8 heliumContent
 The DiveGasMessage FIT message's heliumContent field.
 
quint8 oxygenContent
 The DiveGasMessage FIT message's oxygenContent field.
 
DiveGasStatus status
 The DiveGasMessage FIT message's status field.
 
- Public Attributes inherited from AbstractDataMessagePrivate
MesgNum globalMessageNumber
 FIT Globla Message Number for this FIT Data Message.
 

Protected Member Functions

bool setField (const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
 
- Protected Member Functions inherited from AbstractDataMessagePrivate
bool verify (const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
 

Additional Inherited Members

- Protected Attributes inherited from AbstractDataMessagePrivate
AbstractDataMessage *const q_ptr
 Internal q-pointer.
 

Detailed Description

The DiveGasMessagePrivate class provides private implementation for the DiveGasMessage.

See also
DiveGasMessage

Definition at line 38 of file divegasmessage_p.h.

Constructor & Destructor Documentation

◆ DiveGasMessagePrivate()

DiveGasMessagePrivate::DiveGasMessagePrivate ( DiveGasMessage *const  q)
explicit

Constructs a DiveGasMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 173 of file divegasmessage.cpp.

175  , messageIndex(static_cast<MessageIndex>(-1))
176  , heliumContent(0xFF)
177  , oxygenContent(0xFF)
178  , status(static_cast<DiveGasStatus>(-1))
179 {
180  globalMessageNumber = MesgNum::DiveGas;
181 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint8 oxygenContent
The DiveGasMessage FIT message's oxygenContent field.
DiveGasStatus status
The DiveGasMessage FIT message's status field.
MessageIndex messageIndex
The DiveGasMessage FIT message's messageIndex field.
quint8 heliumContent
The DiveGasMessage FIT message's heliumContent field.
DiveGasStatus
Garmin FIT DiveGasStatus type.
Definition: types.h:5220
MessageIndex
Garmin FIT MessageIndex type.
Definition: types.h:263

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~DiveGasMessagePrivate()

DiveGasMessagePrivate::~DiveGasMessagePrivate ( )
virtual

Destroys the DiveGasMessagePrivate object.

Definition at line 188 of file divegasmessage.cpp.

189 {
190 
191 }

Member Function Documentation

◆ setField()

bool DiveGasMessagePrivate::setField ( const int  fieldId,
const QByteArray &  data,
const FitBaseType  baseType,
const bool  bigEndian 
)
overrideprotectedvirtual

Sets the value of the fieldId field.

Derived classes must implement this method to extract the baseType value from data, and assign the extracted value the fieldId field.

Parameters
fieldIdThe field number within the given FIT data message.
dataThe raw data to extract the field value from.
baseTypeThe FIT base type for the field.
bigEndianWhether or not multibyte values in record are big-endian.
Returns
true if the field was set, or safely ignored; false otherwise.

Implements AbstractDataMessagePrivate.

Definition at line 193 of file divegasmessage.cpp.

195 {
196  switch (fieldId) {
197  case 254: // See Profile.xlsx::Messages:dive_gas.messageIndex
198  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_gas.messageIndex")) return false;
199  this->messageIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
200  break;
201  case 0: // See Profile.xlsx::Messages:dive_gas.heliumContent
202  if (!verify(data, baseType, 1, FitBaseType::Uint8, "dive_gas.heliumContent")) return false;
203  this->heliumContent = static_cast<quint8>(data.at(0));
204  break;
205  case 1: // See Profile.xlsx::Messages:dive_gas.oxygenContent
206  if (!verify(data, baseType, 1, FitBaseType::Uint8, "dive_gas.oxygenContent")) return false;
207  this->oxygenContent = static_cast<quint8>(data.at(0));
208  break;
209  case 2: // See Profile.xlsx::Messages:dive_gas.status
210  if (!verify(data, baseType, 1, FitBaseType::Enum, "dive_gas.status")) return false;
211  this->status = static_cast<DiveGasStatus>(data.at(0));
212  break;
213  default:
214  qWarning() << "ignoring unknown dive_gas message field number" << fieldId << bigEndian;
215  // Fall through to return true, as its still 'safe' to continue parsing data messages.
216  }
217  return true;
218 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

The documentation for this class was generated from the following files: