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

Public Member Functions

 MonitoringInfoMessagePrivate (MonitoringInfoMessage *const q)
 
virtual ~MonitoringInfoMessagePrivate ()
 
- 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 MonitoringInfoMessage FIT message's timestamp field.
 
LocalDateTime localTimestamp
 The MonitoringInfoMessage FIT message's localTimestamp field. More...
 
ActivityType activityType
 The MonitoringInfoMessage FIT message's activityType field.
 
quint16 cyclesToDistance
 The MonitoringInfoMessage FIT message's cyclesToDistance field. More...
 
quint16 cyclesToCalories
 The MonitoringInfoMessage FIT message's cyclesToCalories field. More...
 
quint16 restingMetabolicRate
 The MonitoringInfoMessage FIT message's restingMetabolicRate 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 MonitoringInfoMessagePrivate class provides private implementation for the MonitoringInfoMessage.

See also
MonitoringInfoMessage

Definition at line 38 of file monitoringinfomessage_p.h.

Constructor & Destructor Documentation

◆ MonitoringInfoMessagePrivate()

MonitoringInfoMessagePrivate::MonitoringInfoMessagePrivate ( MonitoringInfoMessage *const  q)
explicit

Constructs a MonitoringInfoMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 222 of file monitoringinfomessage.cpp.

224  , timestamp(static_cast<DateTime>(-1))
225  , localTimestamp(static_cast<LocalDateTime>(-1))
226  , activityType(static_cast<ActivityType>(-1))
227  , cyclesToDistance(0xFFFF)
228  , cyclesToCalories(0xFFFF)
229  , restingMetabolicRate(0xFFFF)
230 {
231  globalMessageNumber = MesgNum::MonitoringInfo;
232 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint16 cyclesToCalories
The MonitoringInfoMessage FIT message's cyclesToCalories field.
quint16 restingMetabolicRate
The MonitoringInfoMessage FIT message's restingMetabolicRate field.
DateTime timestamp
The MonitoringInfoMessage FIT message's timestamp field.
quint16 cyclesToDistance
The MonitoringInfoMessage FIT message's cyclesToDistance field.
LocalDateTime localTimestamp
The MonitoringInfoMessage FIT message's localTimestamp field.
ActivityType activityType
The MonitoringInfoMessage FIT message's activityType field.
LocalDateTime
Seconds since 00:00 Dec 31 1989 in local time zone.
Definition: types.h:250
ActivityType
Garmin FIT ActivityType type.
Definition: types.h:2281
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~MonitoringInfoMessagePrivate()

MonitoringInfoMessagePrivate::~MonitoringInfoMessagePrivate ( )
virtual

Destroys the MonitoringInfoMessagePrivate object.

Definition at line 239 of file monitoringinfomessage.cpp.

240 {
241 
242 }

Member Function Documentation

◆ setField()

bool MonitoringInfoMessagePrivate::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 244 of file monitoringinfomessage.cpp.

246 {
247  switch (fieldId) {
248  case 253: // See Profile.xlsx::Messages:monitoring_info.timestamp
249  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring_info.timestamp")) return false;
250  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
251  break;
252  case 0: // See Profile.xlsx::Messages:monitoring_info.localTimestamp
253  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring_info.localTimestamp")) return false;
254  this->localTimestamp = static_cast<LocalDateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
255  break;
256  case 1: // See Profile.xlsx::Messages:monitoring_info.activityType
257  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring_info.activityType")) return false;
258  this->activityType = static_cast<ActivityType>(data.at(0));
259  break;
260  case 3: // See Profile.xlsx::Messages:monitoring_info.cyclesToDistance
261  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring_info.cyclesToDistance")) return false;
262  this->cyclesToDistance = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
263  break;
264  case 4: // See Profile.xlsx::Messages:monitoring_info.cyclesToCalories
265  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring_info.cyclesToCalories")) return false;
266  this->cyclesToCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
267  break;
268  case 5: // See Profile.xlsx::Messages:monitoring_info.restingMetabolicRate
269  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring_info.restingMetabolicRate")) return false;
270  this->restingMetabolicRate = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
271  break;
272  default:
273  qWarning() << "ignoring unknown monitoring_info message field number" << fieldId << bigEndian;
274  // Fall through to return true, as its still 'safe' to continue parsing data messages.
275  }
276  return true;
277 }
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

◆ cyclesToCalories

quint16 MonitoringInfoMessagePrivate::cyclesToCalories

The MonitoringInfoMessage FIT message's cyclesToCalories field.

Indexed by activity_type

Definition at line 71 of file monitoringinfomessage_p.h.

◆ cyclesToDistance

quint16 MonitoringInfoMessagePrivate::cyclesToDistance

The MonitoringInfoMessage FIT message's cyclesToDistance field.

Indexed by activity_type

Definition at line 64 of file monitoringinfomessage_p.h.

◆ localTimestamp

LocalDateTime MonitoringInfoMessagePrivate::localTimestamp

The MonitoringInfoMessage FIT message's localTimestamp field.

Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction.

Definition at line 52 of file monitoringinfomessage_p.h.


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