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

Public Member Functions

 AccelerometerDataMessagePrivate (AccelerometerDataMessage *const q)
 
virtual ~AccelerometerDataMessagePrivate ()
 
- 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 AccelerometerDataMessage FIT message's timestamp field. More...
 
quint16 timestampMs
 The AccelerometerDataMessage FIT message's timestampMs field. More...
 
quint16 sampleTimeOffset
 The AccelerometerDataMessage FIT message's sampleTimeOffset field. More...
 
quint16 accelX
 The AccelerometerDataMessage FIT message's accelX field. More...
 
quint16 accelY
 The AccelerometerDataMessage FIT message's accelY field. More...
 
quint16 accelZ
 The AccelerometerDataMessage FIT message's accelZ field. More...
 
float calibratedAccelX
 The AccelerometerDataMessage FIT message's calibratedAccelX field. More...
 
float calibratedAccelY
 The AccelerometerDataMessage FIT message's calibratedAccelY field. More...
 
float calibratedAccelZ
 The AccelerometerDataMessage FIT message's calibratedAccelZ field. More...
 
qint16 compressedCalibratedAccelX
 The AccelerometerDataMessage FIT message's compressedCalibratedAccelX field. More...
 
qint16 compressedCalibratedAccelY
 The AccelerometerDataMessage FIT message's compressedCalibratedAccelY field. More...
 
qint16 compressedCalibratedAccelZ
 The AccelerometerDataMessage FIT message's compressedCalibratedAccelZ 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 AccelerometerDataMessagePrivate class provides private implementation for the AccelerometerDataMessage.

See also
AccelerometerDataMessage

Definition at line 38 of file accelerometerdatamessage_p.h.

Constructor & Destructor Documentation

◆ AccelerometerDataMessagePrivate()

AccelerometerDataMessagePrivate::AccelerometerDataMessagePrivate ( AccelerometerDataMessage *const  q)
explicit

Constructs a AccelerometerDataMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 371 of file accelerometerdatamessage.cpp.

373  , timestamp(static_cast<DateTime>(-1))
374  , timestampMs(0xFFFF)
375  , sampleTimeOffset(0xFFFF)
376  , accelX(0xFFFF)
377  , accelY(0xFFFF)
378  , accelZ(0xFFFF)
379  , calibratedAccelX(static_cast<float>(-1))
380  , calibratedAccelY(static_cast<float>(-1))
381  , calibratedAccelZ(static_cast<float>(-1))
385 {
386  globalMessageNumber = MesgNum::AccelerometerData;
387 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint16 accelY
The AccelerometerDataMessage FIT message's accelY field.
float calibratedAccelX
The AccelerometerDataMessage FIT message's calibratedAccelX field.
qint16 compressedCalibratedAccelX
The AccelerometerDataMessage FIT message's compressedCalibratedAccelX field.
float calibratedAccelZ
The AccelerometerDataMessage FIT message's calibratedAccelZ field.
quint16 accelZ
The AccelerometerDataMessage FIT message's accelZ field.
DateTime timestamp
The AccelerometerDataMessage FIT message's timestamp field.
quint16 sampleTimeOffset
The AccelerometerDataMessage FIT message's sampleTimeOffset field.
qint16 compressedCalibratedAccelY
The AccelerometerDataMessage FIT message's compressedCalibratedAccelY field.
qint16 compressedCalibratedAccelZ
The AccelerometerDataMessage FIT message's compressedCalibratedAccelZ field.
quint16 timestampMs
The AccelerometerDataMessage FIT message's timestampMs field.
quint16 accelX
The AccelerometerDataMessage FIT message's accelX field.
float calibratedAccelY
The AccelerometerDataMessage FIT message's calibratedAccelY field.
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~AccelerometerDataMessagePrivate()

AccelerometerDataMessagePrivate::~AccelerometerDataMessagePrivate ( )
virtual

Destroys the AccelerometerDataMessagePrivate object.

Definition at line 394 of file accelerometerdatamessage.cpp.

395 {
396 
397 }

Member Function Documentation

◆ setField()

bool AccelerometerDataMessagePrivate::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 399 of file accelerometerdatamessage.cpp.

401 {
402  switch (fieldId) {
403  case 253: // See Profile.xlsx::Messages:accelerometer_data.timestamp
404  if (!verify(data, baseType, 4, FitBaseType::Uint32, "accelerometer_data.timestamp")) return false;
405  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
406  break;
407  case 0: // See Profile.xlsx::Messages:accelerometer_data.timestampMs
408  if (!verify(data, baseType, 2, FitBaseType::Uint16, "accelerometer_data.timestampMs")) return false;
409  this->timestampMs = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
410  break;
411  case 1: // See Profile.xlsx::Messages:accelerometer_data.sampleTimeOffset
412  if (!verify(data, baseType, 2, FitBaseType::Uint16, "accelerometer_data.sampleTimeOffset")) return false;
413  this->sampleTimeOffset = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
414  break;
415  case 2: // See Profile.xlsx::Messages:accelerometer_data.accelX
416  if (!verify(data, baseType, 2, FitBaseType::Uint16, "accelerometer_data.accelX")) return false;
417  this->accelX = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
418  break;
419  case 3: // See Profile.xlsx::Messages:accelerometer_data.accelY
420  if (!verify(data, baseType, 2, FitBaseType::Uint16, "accelerometer_data.accelY")) return false;
421  this->accelY = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
422  break;
423  case 4: // See Profile.xlsx::Messages:accelerometer_data.accelZ
424  if (!verify(data, baseType, 2, FitBaseType::Uint16, "accelerometer_data.accelZ")) return false;
425  this->accelZ = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
426  break;
427  case 5: // See Profile.xlsx::Messages:accelerometer_data.calibratedAccelX
428  if (!verify(data, baseType, 4, FitBaseType::Float32, "accelerometer_data.calibratedAccelX")) return false;
429  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
430  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
431  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
432  static_assert(sizeof(localEndian) == 4, "src not expected size");
433  static_assert(sizeof(this->calibratedAccelX) == 4, "src and dst not the same size");
434  memcpy(&this->calibratedAccelX, &localEndian, data.size());
435  }
436  #else
437  this->calibratedAccelX = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
438  #endif
439  break;
440  case 6: // See Profile.xlsx::Messages:accelerometer_data.calibratedAccelY
441  if (!verify(data, baseType, 4, FitBaseType::Float32, "accelerometer_data.calibratedAccelY")) return false;
442  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
443  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
444  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
445  static_assert(sizeof(localEndian) == 4, "src not expected size");
446  static_assert(sizeof(this->calibratedAccelY) == 4, "src and dst not the same size");
447  memcpy(&this->calibratedAccelY, &localEndian, data.size());
448  }
449  #else
450  this->calibratedAccelY = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
451  #endif
452  break;
453  case 7: // See Profile.xlsx::Messages:accelerometer_data.calibratedAccelZ
454  if (!verify(data, baseType, 4, FitBaseType::Float32, "accelerometer_data.calibratedAccelZ")) return false;
455  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
456  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
457  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
458  static_assert(sizeof(localEndian) == 4, "src not expected size");
459  static_assert(sizeof(this->calibratedAccelZ) == 4, "src and dst not the same size");
460  memcpy(&this->calibratedAccelZ, &localEndian, data.size());
461  }
462  #else
463  this->calibratedAccelZ = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
464  #endif
465  break;
466  case 8: // See Profile.xlsx::Messages:accelerometer_data.compressedCalibratedAccelX
467  if (!verify(data, baseType, 2, FitBaseType::Sint16, "accelerometer_data.compressedCalibratedAccelX")) return false;
468  this->compressedCalibratedAccelX = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
469  break;
470  case 9: // See Profile.xlsx::Messages:accelerometer_data.compressedCalibratedAccelY
471  if (!verify(data, baseType, 2, FitBaseType::Sint16, "accelerometer_data.compressedCalibratedAccelY")) return false;
472  this->compressedCalibratedAccelY = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
473  break;
474  case 10: // See Profile.xlsx::Messages:accelerometer_data.compressedCalibratedAccelZ
475  if (!verify(data, baseType, 2, FitBaseType::Sint16, "accelerometer_data.compressedCalibratedAccelZ")) return false;
476  this->compressedCalibratedAccelZ = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
477  break;
478  default:
479  qWarning() << "ignoring unknown accelerometer_data message field number" << fieldId << bigEndian;
480  // Fall through to return true, as its still 'safe' to continue parsing data messages.
481  }
482  return true;
483 }
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

◆ accelX

quint16 AccelerometerDataMessagePrivate::accelX

The AccelerometerDataMessage FIT message's accelX field.

These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.

Definition at line 71 of file accelerometerdatamessage_p.h.

◆ accelY

quint16 AccelerometerDataMessagePrivate::accelY

The AccelerometerDataMessage FIT message's accelY field.

These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.

Definition at line 79 of file accelerometerdatamessage_p.h.

◆ accelZ

quint16 AccelerometerDataMessagePrivate::accelZ

The AccelerometerDataMessage FIT message's accelZ field.

These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read.

Definition at line 87 of file accelerometerdatamessage_p.h.

◆ calibratedAccelX

float AccelerometerDataMessagePrivate::calibratedAccelX

The AccelerometerDataMessage FIT message's calibratedAccelX field.

Calibrated accel reading

Definition at line 94 of file accelerometerdatamessage_p.h.

◆ calibratedAccelY

float AccelerometerDataMessagePrivate::calibratedAccelY

The AccelerometerDataMessage FIT message's calibratedAccelY field.

Calibrated accel reading

Definition at line 101 of file accelerometerdatamessage_p.h.

◆ calibratedAccelZ

float AccelerometerDataMessagePrivate::calibratedAccelZ

The AccelerometerDataMessage FIT message's calibratedAccelZ field.

Calibrated accel reading

Definition at line 108 of file accelerometerdatamessage_p.h.

◆ compressedCalibratedAccelX

qint16 AccelerometerDataMessagePrivate::compressedCalibratedAccelX

The AccelerometerDataMessage FIT message's compressedCalibratedAccelX field.

Calibrated accel reading

Definition at line 115 of file accelerometerdatamessage_p.h.

◆ compressedCalibratedAccelY

qint16 AccelerometerDataMessagePrivate::compressedCalibratedAccelY

The AccelerometerDataMessage FIT message's compressedCalibratedAccelY field.

Calibrated accel reading

Definition at line 122 of file accelerometerdatamessage_p.h.

◆ compressedCalibratedAccelZ

qint16 AccelerometerDataMessagePrivate::compressedCalibratedAccelZ

The AccelerometerDataMessage FIT message's compressedCalibratedAccelZ field.

Calibrated accel reading

Definition at line 129 of file accelerometerdatamessage_p.h.

◆ sampleTimeOffset

quint16 AccelerometerDataMessagePrivate::sampleTimeOffset

The AccelerometerDataMessage FIT message's sampleTimeOffset field.

Each time in the array describes the time at which the accelerometer sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in accel_x and accel_y and accel_z

Definition at line 63 of file accelerometerdatamessage_p.h.

◆ timestamp

DateTime AccelerometerDataMessagePrivate::timestamp

The AccelerometerDataMessage FIT message's timestamp field.

Whole second part of the timestamp

Definition at line 46 of file accelerometerdatamessage_p.h.

◆ timestampMs

quint16 AccelerometerDataMessagePrivate::timestampMs

The AccelerometerDataMessage FIT message's timestampMs field.

Millisecond part of the timestamp.

Definition at line 53 of file accelerometerdatamessage_p.h.


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