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

Public Member Functions

 SetMessagePrivate (SetMessage *const q)
 
virtual ~SetMessagePrivate ()
 
- 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 SetMessage FIT message's timestamp field. More...
 
quint32 duration
 The SetMessage FIT message's duration field.
 
quint16 repetitions
 The SetMessage FIT message's repetitions field. More...
 
quint16 weight
 The SetMessage FIT message's weight field. More...
 
SetType setType
 The SetMessage FIT message's setType field.
 
DateTime startTime
 The SetMessage FIT message's startTime field. More...
 
ExerciseCategory category
 The SetMessage FIT message's category field.
 
quint16 categorySubtype
 The SetMessage FIT message's categorySubtype field. More...
 
FitBaseUnit weightDisplayUnit
 The SetMessage FIT message's weightDisplayUnit field.
 
MessageIndex messageIndex
 The SetMessage FIT message's messageIndex field.
 
MessageIndex wktStepIndex
 The SetMessage FIT message's wktStepIndex 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 SetMessagePrivate class provides private implementation for the SetMessage.

See also
SetMessage

Definition at line 38 of file setmessage_p.h.

Constructor & Destructor Documentation

◆ SetMessagePrivate()

SetMessagePrivate::SetMessagePrivate ( SetMessage *const  q)
explicit

Constructs a SetMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 330 of file setmessage.cpp.

332  , timestamp(static_cast<DateTime>(-1))
333  , duration(0xFFFFFFFF)
334  , repetitions(0xFFFF)
335  , weight(0xFFFF)
336  , setType(static_cast<SetType>(-1))
337  , startTime(static_cast<DateTime>(-1))
338  , category(static_cast<ExerciseCategory>(-1))
339  , categorySubtype(0xFFFF)
340  , weightDisplayUnit(static_cast<FitBaseUnit>(-1))
341  , messageIndex(static_cast<MessageIndex>(-1))
342  , wktStepIndex(static_cast<MessageIndex>(-1))
343 {
344  globalMessageNumber = MesgNum::Set;
345 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint32 duration
The SetMessage FIT message's duration field.
Definition: setmessage_p.h:51
SetType setType
The SetMessage FIT message's setType field.
Definition: setmessage_p.h:70
quint16 weight
The SetMessage FIT message's weight field.
Definition: setmessage_p.h:65
MessageIndex wktStepIndex
The SetMessage FIT message's wktStepIndex field.
Definition: setmessage_p.h:104
quint16 repetitions
The SetMessage FIT message's repetitions field.
Definition: setmessage_p.h:58
quint16 categorySubtype
The SetMessage FIT message's categorySubtype field.
Definition: setmessage_p.h:89
DateTime timestamp
The SetMessage FIT message's timestamp field.
Definition: setmessage_p.h:46
FitBaseUnit weightDisplayUnit
The SetMessage FIT message's weightDisplayUnit field.
Definition: setmessage_p.h:94
ExerciseCategory category
The SetMessage FIT message's category field.
Definition: setmessage_p.h:82
DateTime startTime
The SetMessage FIT message's startTime field.
Definition: setmessage_p.h:77
MessageIndex messageIndex
The SetMessage FIT message's messageIndex field.
Definition: setmessage_p.h:99
SetType
Garmin FIT SetType type.
Definition: types.h:3496
ExerciseCategory
Garmin FIT ExerciseCategory type.
Definition: types.h:3510
FitBaseUnit
Garmin FIT FitBaseUnit type.
Definition: types.h:3481
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.

◆ ~SetMessagePrivate()

SetMessagePrivate::~SetMessagePrivate ( )
virtual

Destroys the SetMessagePrivate object.

Definition at line 352 of file setmessage.cpp.

353 {
354 
355 }

Member Function Documentation

◆ setField()

bool SetMessagePrivate::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 357 of file setmessage.cpp.

359 {
360  switch (fieldId) {
361  case 254: // See Profile.xlsx::Messages:set.timestamp
362  if (!verify(data, baseType, 4, FitBaseType::Uint32, "set.timestamp")) return false;
363  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
364  break;
365  case 0: // See Profile.xlsx::Messages:set.duration
366  if (!verify(data, baseType, 4, FitBaseType::Uint32, "set.duration")) return false;
367  this->duration = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
368  break;
369  case 3: // See Profile.xlsx::Messages:set.repetitions
370  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.repetitions")) return false;
371  this->repetitions = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
372  break;
373  case 4: // See Profile.xlsx::Messages:set.weight
374  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.weight")) return false;
375  this->weight = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
376  break;
377  case 5: // See Profile.xlsx::Messages:set.setType
378  if (!verify(data, baseType, 1, FitBaseType::Uint8, "set.setType")) return false;
379  this->setType = static_cast<SetType>(data.at(0));
380  break;
381  case 6: // See Profile.xlsx::Messages:set.startTime
382  if (!verify(data, baseType, 4, FitBaseType::Uint32, "set.startTime")) return false;
383  this->startTime = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
384  break;
385  case 7: // See Profile.xlsx::Messages:set.category
386  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.category")) return false;
387  this->category = static_cast<ExerciseCategory>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
388  break;
389  case 8: // See Profile.xlsx::Messages:set.categorySubtype
390  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.categorySubtype")) return false;
391  this->categorySubtype = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
392  break;
393  case 9: // See Profile.xlsx::Messages:set.weightDisplayUnit
394  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.weightDisplayUnit")) return false;
395  this->weightDisplayUnit = static_cast<FitBaseUnit>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
396  break;
397  case 10: // See Profile.xlsx::Messages:set.messageIndex
398  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.messageIndex")) return false;
399  this->messageIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
400  break;
401  case 11: // See Profile.xlsx::Messages:set.wktStepIndex
402  if (!verify(data, baseType, 2, FitBaseType::Uint16, "set.wktStepIndex")) return false;
403  this->wktStepIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
404  break;
405  default:
406  qWarning() << "ignoring unknown set message field number" << fieldId << bigEndian;
407  // Fall through to return true, as its still 'safe' to continue parsing data messages.
408  }
409  return true;
410 }
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

◆ categorySubtype

quint16 SetMessagePrivate::categorySubtype

The SetMessage FIT message's categorySubtype field.

Based on the associated category, see [category]_exercise_names

Definition at line 89 of file setmessage_p.h.

◆ repetitions

quint16 SetMessagePrivate::repetitions

The SetMessage FIT message's repetitions field.

of repitions of the movement

Definition at line 58 of file setmessage_p.h.

◆ startTime

DateTime SetMessagePrivate::startTime

The SetMessage FIT message's startTime field.

Start time of the set

Definition at line 77 of file setmessage_p.h.

◆ timestamp

DateTime SetMessagePrivate::timestamp

The SetMessage FIT message's timestamp field.

Timestamp of the set

Definition at line 46 of file setmessage_p.h.

◆ weight

quint16 SetMessagePrivate::weight

The SetMessage FIT message's weight field.

Amount of weight applied for the set

Definition at line 65 of file setmessage_p.h.


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