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

Public Member Functions

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

Public Attributes

quint8 developerDataIndex
 The FieldDescriptionMessage FIT message's developerDataIndex field.
 
quint8 fieldDefinitionNumber
 The FieldDescriptionMessage FIT message's fieldDefinitionNumber field.
 
FitBaseType fitBaseTypeId
 The FieldDescriptionMessage FIT message's fitBaseTypeId field.
 
QString fieldName
 The FieldDescriptionMessage FIT message's fieldName field.
 
quint8 array
 The FieldDescriptionMessage FIT message's array field.
 
QString components
 The FieldDescriptionMessage FIT message's components field.
 
quint8 scale
 The FieldDescriptionMessage FIT message's scale field.
 
qint8 offset
 The FieldDescriptionMessage FIT message's offset field.
 
QString units
 The FieldDescriptionMessage FIT message's units field.
 
QString bits
 The FieldDescriptionMessage FIT message's bits field.
 
QString accumulate
 The FieldDescriptionMessage FIT message's accumulate field.
 
FitBaseUnit fitBaseUnitId
 The FieldDescriptionMessage FIT message's fitBaseUnitId field.
 
MesgNum nativeMesgNum
 The FieldDescriptionMessage FIT message's nativeMesgNum field.
 
quint8 nativeFieldNum
 The FieldDescriptionMessage FIT message's nativeFieldNum 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 FieldDescriptionMessagePrivate class provides private implementation for the FieldDescriptionMessage.

See also
FieldDescriptionMessage

Definition at line 38 of file fielddescriptionmessage_p.h.

Constructor & Destructor Documentation

◆ FieldDescriptionMessagePrivate()

FieldDescriptionMessagePrivate::FieldDescriptionMessagePrivate ( FieldDescriptionMessage *const  q)
explicit

Constructs a FieldDescriptionMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 383 of file fielddescriptionmessage.cpp.

385  , developerDataIndex(0xFF)
386  , fieldDefinitionNumber(0xFF)
387  , fitBaseTypeId(static_cast<FitBaseType>(-1))
388  , array(0xFF)
389  , scale(0xFF)
390  , offset(0x7F)
391  , fitBaseUnitId(static_cast<FitBaseUnit>(-1))
392  , nativeMesgNum(static_cast<MesgNum>(-1))
393  , nativeFieldNum(0xFF)
394 {
395  globalMessageNumber = MesgNum::FieldDescription;
396 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint8 developerDataIndex
The FieldDescriptionMessage FIT message's developerDataIndex field.
quint8 nativeFieldNum
The FieldDescriptionMessage FIT message's nativeFieldNum field.
FitBaseUnit fitBaseUnitId
The FieldDescriptionMessage FIT message's fitBaseUnitId field.
FitBaseType fitBaseTypeId
The FieldDescriptionMessage FIT message's fitBaseTypeId field.
qint8 offset
The FieldDescriptionMessage FIT message's offset field.
quint8 fieldDefinitionNumber
The FieldDescriptionMessage FIT message's fieldDefinitionNumber field.
MesgNum nativeMesgNum
The FieldDescriptionMessage FIT message's nativeMesgNum field.
quint8 scale
The FieldDescriptionMessage FIT message's scale field.
quint8 array
The FieldDescriptionMessage FIT message's array field.
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
FitBaseUnit
Garmin FIT FitBaseUnit type.
Definition: types.h:3481
MesgNum
Garmin FIT MesgNum type.
Definition: types.h:91

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~FieldDescriptionMessagePrivate()

FieldDescriptionMessagePrivate::~FieldDescriptionMessagePrivate ( )
virtual

Destroys the FieldDescriptionMessagePrivate object.

Definition at line 403 of file fielddescriptionmessage.cpp.

404 {
405 
406 }

Member Function Documentation

◆ setField()

bool FieldDescriptionMessagePrivate::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 408 of file fielddescriptionmessage.cpp.

410 {
411  switch (fieldId) {
412  case 0: // See Profile.xlsx::Messages:field_description.developerDataIndex
413  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.developerDataIndex")) return false;
414  this->developerDataIndex = static_cast<quint8>(data.at(0));
415  break;
416  case 1: // See Profile.xlsx::Messages:field_description.fieldDefinitionNumber
417  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.fieldDefinitionNumber")) return false;
418  this->fieldDefinitionNumber = static_cast<quint8>(data.at(0));
419  break;
420  case 2: // See Profile.xlsx::Messages:field_description.fitBaseTypeId
421  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.fitBaseTypeId")) return false;
422  this->fitBaseTypeId = static_cast<FitBaseType>(data.at(0));
423  break;
424  case 3: // See Profile.xlsx::Messages:field_description.fieldName
425  if (!verify(data, baseType, 1, FitBaseType::String, "field_description.fieldName")) return false;
426  this->fieldName = QString::fromUtf8(data);
427  break;
428  case 4: // See Profile.xlsx::Messages:field_description.array
429  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.array")) return false;
430  this->array = static_cast<quint8>(data.at(0));
431  break;
432  case 5: // See Profile.xlsx::Messages:field_description.components
433  if (!verify(data, baseType, 1, FitBaseType::String, "field_description.components")) return false;
434  this->components = QString::fromUtf8(data);
435  break;
436  case 6: // See Profile.xlsx::Messages:field_description.scale
437  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.scale")) return false;
438  this->scale = static_cast<quint8>(data.at(0));
439  break;
440  case 7: // See Profile.xlsx::Messages:field_description.offset
441  if (!verify(data, baseType, 1, FitBaseType::Sint8, "field_description.offset")) return false;
442  this->offset = static_cast<qint8>(data.at(0));
443  break;
444  case 8: // See Profile.xlsx::Messages:field_description.units
445  if (!verify(data, baseType, 1, FitBaseType::String, "field_description.units")) return false;
446  this->units = QString::fromUtf8(data);
447  break;
448  case 9: // See Profile.xlsx::Messages:field_description.bits
449  if (!verify(data, baseType, 1, FitBaseType::String, "field_description.bits")) return false;
450  this->bits = QString::fromUtf8(data);
451  break;
452  case 10: // See Profile.xlsx::Messages:field_description.accumulate
453  if (!verify(data, baseType, 1, FitBaseType::String, "field_description.accumulate")) return false;
454  this->accumulate = QString::fromUtf8(data);
455  break;
456  case 13: // See Profile.xlsx::Messages:field_description.fitBaseUnitId
457  if (!verify(data, baseType, 2, FitBaseType::Uint16, "field_description.fitBaseUnitId")) return false;
458  this->fitBaseUnitId = static_cast<FitBaseUnit>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
459  break;
460  case 14: // See Profile.xlsx::Messages:field_description.nativeMesgNum
461  if (!verify(data, baseType, 2, FitBaseType::Uint16, "field_description.nativeMesgNum")) return false;
462  this->nativeMesgNum = static_cast<MesgNum>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
463  break;
464  case 15: // See Profile.xlsx::Messages:field_description.nativeFieldNum
465  if (!verify(data, baseType, 1, FitBaseType::Uint8, "field_description.nativeFieldNum")) return false;
466  this->nativeFieldNum = static_cast<quint8>(data.at(0));
467  break;
468  default:
469  qWarning() << "ignoring unknown field_description message field number" << fieldId << bigEndian;
470  // Fall through to return true, as its still 'safe' to continue parsing data messages.
471  }
472  return true;
473 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
QString accumulate
The FieldDescriptionMessage FIT message's accumulate field.
QString units
The FieldDescriptionMessage FIT message's units field.
QString fieldName
The FieldDescriptionMessage FIT message's fieldName field.
QString components
The FieldDescriptionMessage FIT message's components field.
QString bits
The FieldDescriptionMessage FIT message's bits field.

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

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