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

Public Member Functions

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

Public Attributes

DateTime timestamp
 The DiveSummaryMessage FIT message's timestamp field.
 
MesgNum referenceMesg
 The DiveSummaryMessage FIT message's referenceMesg field.
 
MessageIndex referenceIndex
 The DiveSummaryMessage FIT message's referenceIndex field.
 
quint32 avgDepth
 The DiveSummaryMessage FIT message's avgDepth field. More...
 
quint32 maxDepth
 The DiveSummaryMessage FIT message's maxDepth field. More...
 
quint32 surfaceInterval
 The DiveSummaryMessage FIT message's surfaceInterval field. More...
 
quint8 startCns
 The DiveSummaryMessage FIT message's startCns field.
 
quint8 endCns
 The DiveSummaryMessage FIT message's endCns field.
 
quint16 startN2
 The DiveSummaryMessage FIT message's startN2 field.
 
quint16 endN2
 The DiveSummaryMessage FIT message's endN2 field.
 
quint16 o2Toxicity
 The DiveSummaryMessage FIT message's o2Toxicity field.
 
quint32 diveNumber
 The DiveSummaryMessage FIT message's diveNumber field.
 
quint32 bottomTime
 The DiveSummaryMessage FIT message's bottomTime field.
 
qint32 avgAscentRate
 The DiveSummaryMessage FIT message's avgAscentRate field. More...
 
quint32 avgDescentRate
 The DiveSummaryMessage FIT message's avgDescentRate field. More...
 
quint32 maxAscentRate
 The DiveSummaryMessage FIT message's maxAscentRate field. More...
 
quint32 maxDescentRate
 The DiveSummaryMessage FIT message's maxDescentRate field. More...
 
quint32 hangTime
 The DiveSummaryMessage FIT message's hangTime field. More...
 
- 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 DiveSummaryMessagePrivate class provides private implementation for the DiveSummaryMessage.

See also
DiveSummaryMessage

Definition at line 38 of file divesummarymessage_p.h.

Constructor & Destructor Documentation

◆ DiveSummaryMessagePrivate()

DiveSummaryMessagePrivate::DiveSummaryMessagePrivate ( DiveSummaryMessage *const  q)
explicit

Constructs a DiveSummaryMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 483 of file divesummarymessage.cpp.

485  , timestamp(static_cast<DateTime>(-1))
486  , referenceMesg(static_cast<MesgNum>(-1))
487  , referenceIndex(static_cast<MessageIndex>(-1))
488  , avgDepth(0xFFFFFFFF)
489  , maxDepth(0xFFFFFFFF)
490  , surfaceInterval(0xFFFFFFFF)
491  , startCns(0xFF)
492  , endCns(0xFF)
493  , startN2(0xFFFF)
494  , endN2(0xFFFF)
495  , o2Toxicity(0xFFFF)
496  , diveNumber(0xFFFFFFFF)
497  , bottomTime(0xFFFFFFFF)
498  , avgAscentRate(0x7FFFFFFF)
499  , avgDescentRate(0xFFFFFFFF)
500  , maxAscentRate(0xFFFFFFFF)
501  , maxDescentRate(0xFFFFFFFF)
502  , hangTime(0xFFFFFFFF)
503 {
504  globalMessageNumber = MesgNum::DiveSummary;
505 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint32 bottomTime
The DiveSummaryMessage FIT message's bottomTime field.
quint32 surfaceInterval
The DiveSummaryMessage FIT message's surfaceInterval field.
quint32 maxAscentRate
The DiveSummaryMessage FIT message's maxAscentRate field.
quint16 endN2
The DiveSummaryMessage FIT message's endN2 field.
quint32 diveNumber
The DiveSummaryMessage FIT message's diveNumber field.
quint32 avgDepth
The DiveSummaryMessage FIT message's avgDepth field.
MessageIndex referenceIndex
The DiveSummaryMessage FIT message's referenceIndex field.
MesgNum referenceMesg
The DiveSummaryMessage FIT message's referenceMesg field.
quint32 hangTime
The DiveSummaryMessage FIT message's hangTime field.
quint8 startCns
The DiveSummaryMessage FIT message's startCns field.
quint32 maxDepth
The DiveSummaryMessage FIT message's maxDepth field.
quint32 maxDescentRate
The DiveSummaryMessage FIT message's maxDescentRate field.
quint16 o2Toxicity
The DiveSummaryMessage FIT message's o2Toxicity field.
DateTime timestamp
The DiveSummaryMessage FIT message's timestamp field.
quint16 startN2
The DiveSummaryMessage FIT message's startN2 field.
quint32 avgDescentRate
The DiveSummaryMessage FIT message's avgDescentRate field.
quint8 endCns
The DiveSummaryMessage FIT message's endCns field.
qint32 avgAscentRate
The DiveSummaryMessage FIT message's avgAscentRate field.
MesgNum
Garmin FIT MesgNum type.
Definition: types.h:91
MessageIndex
Garmin FIT MessageIndex type.
Definition: types.h:263
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~DiveSummaryMessagePrivate()

DiveSummaryMessagePrivate::~DiveSummaryMessagePrivate ( )
virtual

Destroys the DiveSummaryMessagePrivate object.

Definition at line 512 of file divesummarymessage.cpp.

513 {
514 
515 }

Member Function Documentation

◆ setField()

bool DiveSummaryMessagePrivate::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 517 of file divesummarymessage.cpp.

519 {
520  switch (fieldId) {
521  case 253: // See Profile.xlsx::Messages:dive_summary.timestamp
522  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.timestamp")) return false;
523  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
524  break;
525  case 0: // See Profile.xlsx::Messages:dive_summary.referenceMesg
526  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_summary.referenceMesg")) return false;
527  this->referenceMesg = static_cast<MesgNum>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
528  break;
529  case 1: // See Profile.xlsx::Messages:dive_summary.referenceIndex
530  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_summary.referenceIndex")) return false;
531  this->referenceIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
532  break;
533  case 2: // See Profile.xlsx::Messages:dive_summary.avgDepth
534  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.avgDepth")) return false;
535  this->avgDepth = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
536  break;
537  case 3: // See Profile.xlsx::Messages:dive_summary.maxDepth
538  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.maxDepth")) return false;
539  this->maxDepth = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
540  break;
541  case 4: // See Profile.xlsx::Messages:dive_summary.surfaceInterval
542  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.surfaceInterval")) return false;
543  this->surfaceInterval = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
544  break;
545  case 5: // See Profile.xlsx::Messages:dive_summary.startCns
546  if (!verify(data, baseType, 1, FitBaseType::Uint8, "dive_summary.startCns")) return false;
547  this->startCns = static_cast<quint8>(data.at(0));
548  break;
549  case 6: // See Profile.xlsx::Messages:dive_summary.endCns
550  if (!verify(data, baseType, 1, FitBaseType::Uint8, "dive_summary.endCns")) return false;
551  this->endCns = static_cast<quint8>(data.at(0));
552  break;
553  case 7: // See Profile.xlsx::Messages:dive_summary.startN2
554  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_summary.startN2")) return false;
555  this->startN2 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
556  break;
557  case 8: // See Profile.xlsx::Messages:dive_summary.endN2
558  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_summary.endN2")) return false;
559  this->endN2 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
560  break;
561  case 9: // See Profile.xlsx::Messages:dive_summary.o2Toxicity
562  if (!verify(data, baseType, 2, FitBaseType::Uint16, "dive_summary.o2Toxicity")) return false;
563  this->o2Toxicity = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
564  break;
565  case 10: // See Profile.xlsx::Messages:dive_summary.diveNumber
566  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.diveNumber")) return false;
567  this->diveNumber = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
568  break;
569  case 11: // See Profile.xlsx::Messages:dive_summary.bottomTime
570  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.bottomTime")) return false;
571  this->bottomTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
572  break;
573  case 17: // See Profile.xlsx::Messages:dive_summary.avgAscentRate
574  if (!verify(data, baseType, 4, FitBaseType::Sint32, "dive_summary.avgAscentRate")) return false;
575  this->avgAscentRate = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
576  break;
577  case 22: // See Profile.xlsx::Messages:dive_summary.avgDescentRate
578  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.avgDescentRate")) return false;
579  this->avgDescentRate = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
580  break;
581  case 23: // See Profile.xlsx::Messages:dive_summary.maxAscentRate
582  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.maxAscentRate")) return false;
583  this->maxAscentRate = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
584  break;
585  case 24: // See Profile.xlsx::Messages:dive_summary.maxDescentRate
586  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.maxDescentRate")) return false;
587  this->maxDescentRate = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
588  break;
589  case 25: // See Profile.xlsx::Messages:dive_summary.hangTime
590  if (!verify(data, baseType, 4, FitBaseType::Uint32, "dive_summary.hangTime")) return false;
591  this->hangTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
592  break;
593  default:
594  qWarning() << "ignoring unknown dive_summary message field number" << fieldId << bigEndian;
595  // Fall through to return true, as its still 'safe' to continue parsing data messages.
596  }
597  return true;
598 }
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:

Member Data Documentation

◆ avgAscentRate

qint32 DiveSummaryMessagePrivate::avgAscentRate

The DiveSummaryMessage FIT message's avgAscentRate field.

Average ascent rate, not including descents or stops

Definition at line 117 of file divesummarymessage_p.h.

◆ avgDepth

quint32 DiveSummaryMessagePrivate::avgDepth

The DiveSummaryMessage FIT message's avgDepth field.

0 if above water

Definition at line 61 of file divesummarymessage_p.h.

◆ avgDescentRate

quint32 DiveSummaryMessagePrivate::avgDescentRate

The DiveSummaryMessage FIT message's avgDescentRate field.

Average descent rate, not including ascents or stops

Definition at line 124 of file divesummarymessage_p.h.

◆ hangTime

quint32 DiveSummaryMessagePrivate::hangTime

The DiveSummaryMessage FIT message's hangTime field.

Time spent neither ascending nor descending

Definition at line 145 of file divesummarymessage_p.h.

◆ maxAscentRate

quint32 DiveSummaryMessagePrivate::maxAscentRate

The DiveSummaryMessage FIT message's maxAscentRate field.

Maximum ascent rate

Definition at line 131 of file divesummarymessage_p.h.

◆ maxDepth

quint32 DiveSummaryMessagePrivate::maxDepth

The DiveSummaryMessage FIT message's maxDepth field.

0 if above water

Definition at line 68 of file divesummarymessage_p.h.

◆ maxDescentRate

quint32 DiveSummaryMessagePrivate::maxDescentRate

The DiveSummaryMessage FIT message's maxDescentRate field.

Maximum descent rate

Definition at line 138 of file divesummarymessage_p.h.

◆ surfaceInterval

quint32 DiveSummaryMessagePrivate::surfaceInterval

The DiveSummaryMessage FIT message's surfaceInterval field.

Time since end of last dive

Definition at line 75 of file divesummarymessage_p.h.


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