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

Public Member Functions

 LengthMessagePrivate (LengthMessage *const q)
 
virtual ~LengthMessagePrivate ()
 
- 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 LengthMessage FIT message's messageIndex field.
 
DateTime timestamp
 The LengthMessage FIT message's timestamp field.
 
Event event
 The LengthMessage FIT message's event field.
 
EventType eventType
 The LengthMessage FIT message's eventType field.
 
DateTime startTime
 The LengthMessage FIT message's startTime field.
 
quint32 totalElapsedTime
 The LengthMessage FIT message's totalElapsedTime field.
 
quint32 totalTimerTime
 The LengthMessage FIT message's totalTimerTime field.
 
quint16 totalStrokes
 The LengthMessage FIT message's totalStrokes field.
 
quint16 avgSpeed
 The LengthMessage FIT message's avgSpeed field.
 
SwimStroke swimStroke
 The LengthMessage FIT message's swimStroke field.
 
quint8 avgSwimmingCadence
 The LengthMessage FIT message's avgSwimmingCadence field.
 
quint8 eventGroup
 The LengthMessage FIT message's eventGroup field.
 
quint16 totalCalories
 The LengthMessage FIT message's totalCalories field.
 
LengthType lengthType
 The LengthMessage FIT message's lengthType field.
 
quint16 playerScore
 The LengthMessage FIT message's playerScore field.
 
quint16 opponentScore
 The LengthMessage FIT message's opponentScore field.
 
quint16 strokeCount
 The LengthMessage FIT message's strokeCount field. More...
 
quint16 zoneCount
 The LengthMessage FIT message's zoneCount 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 LengthMessagePrivate class provides private implementation for the LengthMessage.

See also
LengthMessage

Definition at line 38 of file lengthmessage_p.h.

Constructor & Destructor Documentation

◆ LengthMessagePrivate()

LengthMessagePrivate::LengthMessagePrivate ( LengthMessage *const  q)
explicit

Constructs a LengthMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 471 of file lengthmessage.cpp.

473  , messageIndex(static_cast<MessageIndex>(-1))
474  , timestamp(static_cast<DateTime>(-1))
475  , event(static_cast<Event>(-1))
476  , eventType(static_cast<EventType>(-1))
477  , startTime(static_cast<DateTime>(-1))
478  , totalElapsedTime(0xFFFFFFFF)
479  , totalTimerTime(0xFFFFFFFF)
480  , totalStrokes(0xFFFF)
481  , avgSpeed(0xFFFF)
482  , swimStroke(static_cast<SwimStroke>(-1))
483  , avgSwimmingCadence(0xFF)
484  , eventGroup(0xFF)
485  , totalCalories(0xFFFF)
486  , lengthType(static_cast<LengthType>(-1))
487  , playerScore(0xFFFF)
488  , opponentScore(0xFFFF)
489  , strokeCount(0xFFFF)
490  , zoneCount(0xFFFF)
491 {
492  globalMessageNumber = MesgNum::Length;
493 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint16 totalStrokes
The LengthMessage FIT message's totalStrokes field.
EventType eventType
The LengthMessage FIT message's eventType field.
quint8 avgSwimmingCadence
The LengthMessage FIT message's avgSwimmingCadence field.
quint16 totalCalories
The LengthMessage FIT message's totalCalories field.
quint16 opponentScore
The LengthMessage FIT message's opponentScore field.
SwimStroke swimStroke
The LengthMessage FIT message's swimStroke field.
quint16 avgSpeed
The LengthMessage FIT message's avgSpeed field.
DateTime timestamp
The LengthMessage FIT message's timestamp field.
LengthType lengthType
The LengthMessage FIT message's lengthType field.
DateTime startTime
The LengthMessage FIT message's startTime field.
quint16 playerScore
The LengthMessage FIT message's playerScore field.
quint16 zoneCount
The LengthMessage FIT message's zoneCount field.
quint32 totalElapsedTime
The LengthMessage FIT message's totalElapsedTime field.
quint16 strokeCount
The LengthMessage FIT message's strokeCount field.
Event event
The LengthMessage FIT message's event field.
quint8 eventGroup
The LengthMessage FIT message's eventGroup field.
MessageIndex messageIndex
The LengthMessage FIT message's messageIndex field.
quint32 totalTimerTime
The LengthMessage FIT message's totalTimerTime field.
SwimStroke
Garmin FIT SwimStroke type.
Definition: types.h:2262
EventType
Garmin FIT EventType type.
Definition: types.h:1182
Event
Garmin FIT Event type.
Definition: types.h:1133
MessageIndex
Garmin FIT MessageIndex type.
Definition: types.h:263
LengthType
Garmin FIT LengthType type.
Definition: types.h:2391
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~LengthMessagePrivate()

LengthMessagePrivate::~LengthMessagePrivate ( )
virtual

Destroys the LengthMessagePrivate object.

Definition at line 500 of file lengthmessage.cpp.

501 {
502 
503 }

Member Function Documentation

◆ setField()

bool LengthMessagePrivate::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 505 of file lengthmessage.cpp.

507 {
508  switch (fieldId) {
509  case 254: // See Profile.xlsx::Messages:length.messageIndex
510  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.messageIndex")) return false;
511  this->messageIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
512  break;
513  case 253: // See Profile.xlsx::Messages:length.timestamp
514  if (!verify(data, baseType, 4, FitBaseType::Uint32, "length.timestamp")) return false;
515  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
516  break;
517  case 0: // See Profile.xlsx::Messages:length.event
518  if (!verify(data, baseType, 1, FitBaseType::Enum, "length.event")) return false;
519  this->event = static_cast<Event>(data.at(0));
520  break;
521  case 1: // See Profile.xlsx::Messages:length.eventType
522  if (!verify(data, baseType, 1, FitBaseType::Enum, "length.eventType")) return false;
523  this->eventType = static_cast<EventType>(data.at(0));
524  break;
525  case 2: // See Profile.xlsx::Messages:length.startTime
526  if (!verify(data, baseType, 4, FitBaseType::Uint32, "length.startTime")) return false;
527  this->startTime = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
528  break;
529  case 3: // See Profile.xlsx::Messages:length.totalElapsedTime
530  if (!verify(data, baseType, 4, FitBaseType::Uint32, "length.totalElapsedTime")) return false;
531  this->totalElapsedTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
532  break;
533  case 4: // See Profile.xlsx::Messages:length.totalTimerTime
534  if (!verify(data, baseType, 4, FitBaseType::Uint32, "length.totalTimerTime")) return false;
535  this->totalTimerTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
536  break;
537  case 5: // See Profile.xlsx::Messages:length.totalStrokes
538  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.totalStrokes")) return false;
539  this->totalStrokes = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
540  break;
541  case 6: // See Profile.xlsx::Messages:length.avgSpeed
542  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.avgSpeed")) return false;
543  this->avgSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
544  break;
545  case 7: // See Profile.xlsx::Messages:length.swimStroke
546  if (!verify(data, baseType, 1, FitBaseType::Enum, "length.swimStroke")) return false;
547  this->swimStroke = static_cast<SwimStroke>(data.at(0));
548  break;
549  case 9: // See Profile.xlsx::Messages:length.avgSwimmingCadence
550  if (!verify(data, baseType, 1, FitBaseType::Uint8, "length.avgSwimmingCadence")) return false;
551  this->avgSwimmingCadence = static_cast<quint8>(data.at(0));
552  break;
553  case 10: // See Profile.xlsx::Messages:length.eventGroup
554  if (!verify(data, baseType, 1, FitBaseType::Uint8, "length.eventGroup")) return false;
555  this->eventGroup = static_cast<quint8>(data.at(0));
556  break;
557  case 11: // See Profile.xlsx::Messages:length.totalCalories
558  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.totalCalories")) return false;
559  this->totalCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
560  break;
561  case 12: // See Profile.xlsx::Messages:length.lengthType
562  if (!verify(data, baseType, 1, FitBaseType::Enum, "length.lengthType")) return false;
563  this->lengthType = static_cast<LengthType>(data.at(0));
564  break;
565  case 18: // See Profile.xlsx::Messages:length.playerScore
566  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.playerScore")) return false;
567  this->playerScore = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
568  break;
569  case 19: // See Profile.xlsx::Messages:length.opponentScore
570  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.opponentScore")) return false;
571  this->opponentScore = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
572  break;
573  case 20: // See Profile.xlsx::Messages:length.strokeCount
574  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.strokeCount")) return false;
575  this->strokeCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
576  break;
577  case 21: // See Profile.xlsx::Messages:length.zoneCount
578  if (!verify(data, baseType, 2, FitBaseType::Uint16, "length.zoneCount")) return false;
579  this->zoneCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
580  break;
581  default:
582  qWarning() << "ignoring unknown length message field number" << fieldId << bigEndian;
583  // Fall through to return true, as its still 'safe' to continue parsing data messages.
584  }
585  return true;
586 }
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

◆ strokeCount

quint16 LengthMessagePrivate::strokeCount

The LengthMessage FIT message's strokeCount field.

stroke_type enum used as the index

Definition at line 126 of file lengthmessage_p.h.

◆ zoneCount

quint16 LengthMessagePrivate::zoneCount

The LengthMessage FIT message's zoneCount field.

zone number used as the index

Definition at line 133 of file lengthmessage_p.h.


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