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

Public Member Functions

 GpsMetadataMessagePrivate (GpsMetadataMessage *const q)
 
virtual ~GpsMetadataMessagePrivate ()
 
- 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 GpsMetadataMessage FIT message's timestamp field. More...
 
quint16 timestampMs
 The GpsMetadataMessage FIT message's timestampMs field. More...
 
qint32 positionLat
 The GpsMetadataMessage FIT message's positionLat field.
 
qint32 positionLong
 The GpsMetadataMessage FIT message's positionLong field.
 
quint32 enhancedAltitude
 The GpsMetadataMessage FIT message's enhancedAltitude field.
 
quint32 enhancedSpeed
 The GpsMetadataMessage FIT message's enhancedSpeed field.
 
quint16 heading
 The GpsMetadataMessage FIT message's heading field.
 
DateTime utcTimestamp
 The GpsMetadataMessage FIT message's utcTimestamp field. More...
 
qint16 velocity
 The GpsMetadataMessage FIT message's velocity 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 GpsMetadataMessagePrivate class provides private implementation for the GpsMetadataMessage.

See also
GpsMetadataMessage

Definition at line 38 of file gpsmetadatamessage_p.h.

Constructor & Destructor Documentation

◆ GpsMetadataMessagePrivate()

GpsMetadataMessagePrivate::GpsMetadataMessagePrivate ( GpsMetadataMessage *const  q)
explicit

Constructs a GpsMetadataMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 287 of file gpsmetadatamessage.cpp.

289  , timestamp(static_cast<DateTime>(-1))
290  , timestampMs(0xFFFF)
291  , positionLat(0x7FFFFFFF)
292  , positionLong(0x7FFFFFFF)
293  , enhancedAltitude(0xFFFFFFFF)
294  , enhancedSpeed(0xFFFFFFFF)
295  , heading(0xFFFF)
296  , utcTimestamp(static_cast<DateTime>(-1))
297  , velocity(0x7FFF)
298 {
299  globalMessageNumber = MesgNum::GpsMetadata;
300 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint32 enhancedAltitude
The GpsMetadataMessage FIT message's enhancedAltitude field.
quint16 timestampMs
The GpsMetadataMessage FIT message's timestampMs field.
quint16 heading
The GpsMetadataMessage FIT message's heading field.
quint32 enhancedSpeed
The GpsMetadataMessage FIT message's enhancedSpeed field.
DateTime timestamp
The GpsMetadataMessage FIT message's timestamp field.
qint32 positionLat
The GpsMetadataMessage FIT message's positionLat field.
qint16 velocity
The GpsMetadataMessage FIT message's velocity field.
DateTime utcTimestamp
The GpsMetadataMessage FIT message's utcTimestamp field.
qint32 positionLong
The GpsMetadataMessage FIT message's positionLong field.
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~GpsMetadataMessagePrivate()

GpsMetadataMessagePrivate::~GpsMetadataMessagePrivate ( )
virtual

Destroys the GpsMetadataMessagePrivate object.

Definition at line 307 of file gpsmetadatamessage.cpp.

308 {
309 
310 }

Member Function Documentation

◆ setField()

bool GpsMetadataMessagePrivate::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 312 of file gpsmetadatamessage.cpp.

314 {
315  switch (fieldId) {
316  case 253: // See Profile.xlsx::Messages:gps_metadata.timestamp
317  if (!verify(data, baseType, 4, FitBaseType::Uint32, "gps_metadata.timestamp")) return false;
318  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
319  break;
320  case 0: // See Profile.xlsx::Messages:gps_metadata.timestampMs
321  if (!verify(data, baseType, 2, FitBaseType::Uint16, "gps_metadata.timestampMs")) return false;
322  this->timestampMs = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
323  break;
324  case 1: // See Profile.xlsx::Messages:gps_metadata.positionLat
325  if (!verify(data, baseType, 4, FitBaseType::Sint32, "gps_metadata.positionLat")) return false;
326  this->positionLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
327  break;
328  case 2: // See Profile.xlsx::Messages:gps_metadata.positionLong
329  if (!verify(data, baseType, 4, FitBaseType::Sint32, "gps_metadata.positionLong")) return false;
330  this->positionLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
331  break;
332  case 3: // See Profile.xlsx::Messages:gps_metadata.enhancedAltitude
333  if (!verify(data, baseType, 4, FitBaseType::Uint32, "gps_metadata.enhancedAltitude")) return false;
334  this->enhancedAltitude = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
335  break;
336  case 4: // See Profile.xlsx::Messages:gps_metadata.enhancedSpeed
337  if (!verify(data, baseType, 4, FitBaseType::Uint32, "gps_metadata.enhancedSpeed")) return false;
338  this->enhancedSpeed = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
339  break;
340  case 5: // See Profile.xlsx::Messages:gps_metadata.heading
341  if (!verify(data, baseType, 2, FitBaseType::Uint16, "gps_metadata.heading")) return false;
342  this->heading = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
343  break;
344  case 6: // See Profile.xlsx::Messages:gps_metadata.utcTimestamp
345  if (!verify(data, baseType, 4, FitBaseType::Uint32, "gps_metadata.utcTimestamp")) return false;
346  this->utcTimestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
347  break;
348  case 7: // See Profile.xlsx::Messages:gps_metadata.velocity
349  if (!verify(data, baseType, 2, FitBaseType::Sint16, "gps_metadata.velocity")) return false;
350  this->velocity = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
351  break;
352  default:
353  qWarning() << "ignoring unknown gps_metadata message field number" << fieldId << bigEndian;
354  // Fall through to return true, as its still 'safe' to continue parsing data messages.
355  }
356  return true;
357 }
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

◆ timestamp

DateTime GpsMetadataMessagePrivate::timestamp

The GpsMetadataMessage FIT message's timestamp field.

Whole second part of the timestamp.

Definition at line 46 of file gpsmetadatamessage_p.h.

◆ timestampMs

quint16 GpsMetadataMessagePrivate::timestampMs

The GpsMetadataMessage FIT message's timestampMs field.

Millisecond part of the timestamp.

Definition at line 53 of file gpsmetadatamessage_p.h.

◆ utcTimestamp

DateTime GpsMetadataMessagePrivate::utcTimestamp

The GpsMetadataMessage FIT message's utcTimestamp field.

Used to correlate UTC to system time if the timestamp of the message is in system time. This UTC time is derived from the GPS data.

Definition at line 86 of file gpsmetadatamessage_p.h.

◆ velocity

qint16 GpsMetadataMessagePrivate::velocity

The GpsMetadataMessage FIT message's velocity field.

velocity[0] is lon velocity. Velocity[1] is lat velocity. Velocity[2] is altitude velocity.

Definition at line 93 of file gpsmetadatamessage_p.h.


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