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

Public Member Functions

 MonitoringMessagePrivate (MonitoringMessage *const q)
 
virtual ~MonitoringMessagePrivate ()
 
- 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 MonitoringMessage FIT message's timestamp field. More...
 
DeviceIndex deviceIndex
 The MonitoringMessage FIT message's deviceIndex field. More...
 
quint16 calories
 The MonitoringMessage FIT message's calories field. More...
 
quint32 distance
 The MonitoringMessage FIT message's distance field. More...
 
quint32 cycles
 The MonitoringMessage FIT message's cycles field. More...
 
quint32 activeTime
 The MonitoringMessage FIT message's activeTime field.
 
ActivityType activityType
 The MonitoringMessage FIT message's activityType field.
 
ActivitySubtype activitySubtype
 The MonitoringMessage FIT message's activitySubtype field.
 
ActivityLevel activityLevel
 The MonitoringMessage FIT message's activityLevel field.
 
quint16 distance16
 The MonitoringMessage FIT message's distance16 field.
 
quint16 cycles16
 The MonitoringMessage FIT message's cycles16 field.
 
quint16 activeTime16
 The MonitoringMessage FIT message's activeTime16 field.
 
LocalDateTime localTimestamp
 The MonitoringMessage FIT message's localTimestamp field. More...
 
qint16 temperature
 The MonitoringMessage FIT message's temperature field. More...
 
qint16 temperatureMin
 The MonitoringMessage FIT message's temperatureMin field. More...
 
qint16 temperatureMax
 The MonitoringMessage FIT message's temperatureMax field. More...
 
quint16 activityTime
 The MonitoringMessage FIT message's activityTime field. More...
 
quint16 activeCalories
 The MonitoringMessage FIT message's activeCalories field.
 
quint8 currentActivityTypeIntensity
 The MonitoringMessage FIT message's currentActivityTypeIntensity field. More...
 
quint8 timestampMin8
 The MonitoringMessage FIT message's timestampMin8 field.
 
quint16 timestamp16
 The MonitoringMessage FIT message's timestamp16 field.
 
quint8 heartRate
 The MonitoringMessage FIT message's heartRate field.
 
quint8 intensity
 The MonitoringMessage FIT message's intensity field.
 
quint16 durationMin
 The MonitoringMessage FIT message's durationMin field.
 
quint32 duration
 The MonitoringMessage FIT message's duration field.
 
quint32 ascent
 The MonitoringMessage FIT message's ascent field.
 
quint32 descent
 The MonitoringMessage FIT message's descent field.
 
quint16 moderateActivityMinutes
 The MonitoringMessage FIT message's moderateActivityMinutes field.
 
quint16 vigorousActivityMinutes
 The MonitoringMessage FIT message's vigorousActivityMinutes 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 MonitoringMessagePrivate class provides private implementation for the MonitoringMessage.

See also
MonitoringMessage

Definition at line 38 of file monitoringmessage_p.h.

Constructor & Destructor Documentation

◆ MonitoringMessagePrivate()

MonitoringMessagePrivate::MonitoringMessagePrivate ( MonitoringMessage *const  q)
explicit

Constructs a MonitoringMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 724 of file monitoringmessage.cpp.

726  , timestamp(static_cast<DateTime>(-1))
727  , deviceIndex(static_cast<DeviceIndex>(-1))
728  , calories(0xFFFF)
729  , distance(0xFFFFFFFF)
730  , cycles(0xFFFFFFFF)
731  , activeTime(0xFFFFFFFF)
732  , activityType(static_cast<ActivityType>(-1))
733  , activitySubtype(static_cast<ActivitySubtype>(-1))
734  , activityLevel(static_cast<ActivityLevel>(-1))
735  , distance16(0xFFFF)
736  , cycles16(0xFFFF)
737  , activeTime16(0xFFFF)
738  , localTimestamp(static_cast<LocalDateTime>(-1))
739  , temperature(0x7FFF)
740  , temperatureMin(0x7FFF)
741  , temperatureMax(0x7FFF)
742  , activityTime(0xFFFF)
743  , activeCalories(0xFFFF)
745  , timestampMin8(0xFF)
746  , timestamp16(0xFFFF)
747  , heartRate(0xFF)
748  , intensity(0xFF)
749  , durationMin(0xFFFF)
750  , duration(0xFFFFFFFF)
751  , ascent(0xFFFFFFFF)
752  , descent(0xFFFFFFFF)
753  , moderateActivityMinutes(0xFFFF)
754  , vigorousActivityMinutes(0xFFFF)
755 {
756  globalMessageNumber = MesgNum::Monitoring;
757 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint16 distance16
The MonitoringMessage FIT message's distance16 field.
quint8 heartRate
The MonitoringMessage FIT message's heartRate field.
quint16 activeCalories
The MonitoringMessage FIT message's activeCalories field.
DeviceIndex deviceIndex
The MonitoringMessage FIT message's deviceIndex field.
quint8 timestampMin8
The MonitoringMessage FIT message's timestampMin8 field.
quint16 durationMin
The MonitoringMessage FIT message's durationMin field.
quint32 activeTime
The MonitoringMessage FIT message's activeTime field.
quint32 descent
The MonitoringMessage FIT message's descent field.
quint16 activeTime16
The MonitoringMessage FIT message's activeTime16 field.
quint16 vigorousActivityMinutes
The MonitoringMessage FIT message's vigorousActivityMinutes field.
quint32 ascent
The MonitoringMessage FIT message's ascent field.
quint32 cycles
The MonitoringMessage FIT message's cycles field.
qint16 temperatureMax
The MonitoringMessage FIT message's temperatureMax field.
ActivitySubtype activitySubtype
The MonitoringMessage FIT message's activitySubtype field.
quint8 currentActivityTypeIntensity
The MonitoringMessage FIT message's currentActivityTypeIntensity field.
ActivityType activityType
The MonitoringMessage FIT message's activityType field.
quint8 intensity
The MonitoringMessage FIT message's intensity field.
quint16 activityTime
The MonitoringMessage FIT message's activityTime field.
LocalDateTime localTimestamp
The MonitoringMessage FIT message's localTimestamp field.
quint16 moderateActivityMinutes
The MonitoringMessage FIT message's moderateActivityMinutes field.
qint16 temperature
The MonitoringMessage FIT message's temperature field.
quint16 timestamp16
The MonitoringMessage FIT message's timestamp16 field.
qint16 temperatureMin
The MonitoringMessage FIT message's temperatureMin field.
quint16 calories
The MonitoringMessage FIT message's calories field.
ActivityLevel activityLevel
The MonitoringMessage FIT message's activityLevel field.
quint32 distance
The MonitoringMessage FIT message's distance field.
quint32 duration
The MonitoringMessage FIT message's duration field.
quint16 cycles16
The MonitoringMessage FIT message's cycles16 field.
DateTime timestamp
The MonitoringMessage FIT message's timestamp 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
DeviceIndex
Garmin FIT DeviceIndex type.
Definition: types.h:278
ActivityLevel
Garmin FIT ActivityLevel type.
Definition: types.h:2334
ActivitySubtype
Garmin FIT ActivitySubtype type.
Definition: types.h:2302
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~MonitoringMessagePrivate()

MonitoringMessagePrivate::~MonitoringMessagePrivate ( )
virtual

Destroys the MonitoringMessagePrivate object.

Definition at line 764 of file monitoringmessage.cpp.

765 {
766 
767 }

Member Function Documentation

◆ setField()

bool MonitoringMessagePrivate::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 769 of file monitoringmessage.cpp.

771 {
772  switch (fieldId) {
773  case 253: // See Profile.xlsx::Messages:monitoring.timestamp
774  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.timestamp")) return false;
775  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
776  break;
777  case 0: // See Profile.xlsx::Messages:monitoring.deviceIndex
778  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.deviceIndex")) return false;
779  this->deviceIndex = static_cast<DeviceIndex>(data.at(0));
780  break;
781  case 1: // See Profile.xlsx::Messages:monitoring.calories
782  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.calories")) return false;
783  this->calories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
784  break;
785  case 2: // See Profile.xlsx::Messages:monitoring.distance
786  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.distance")) return false;
787  this->distance = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
788  break;
789  case 3: // See Profile.xlsx::Messages:monitoring.cycles
790  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.cycles")) return false;
791  this->cycles = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
792  break;
793  case 4: // See Profile.xlsx::Messages:monitoring.activeTime
794  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.activeTime")) return false;
795  this->activeTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
796  break;
797  case 5: // See Profile.xlsx::Messages:monitoring.activityType
798  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activityType")) return false;
799  this->activityType = static_cast<ActivityType>(data.at(0));
800  break;
801  case 6: // See Profile.xlsx::Messages:monitoring.activitySubtype
802  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activitySubtype")) return false;
803  this->activitySubtype = static_cast<ActivitySubtype>(data.at(0));
804  break;
805  case 7: // See Profile.xlsx::Messages:monitoring.activityLevel
806  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activityLevel")) return false;
807  this->activityLevel = static_cast<ActivityLevel>(data.at(0));
808  break;
809  case 8: // See Profile.xlsx::Messages:monitoring.distance16
810  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.distance16")) return false;
811  this->distance16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
812  break;
813  case 9: // See Profile.xlsx::Messages:monitoring.cycles16
814  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.cycles16")) return false;
815  this->cycles16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
816  break;
817  case 10: // See Profile.xlsx::Messages:monitoring.activeTime16
818  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activeTime16")) return false;
819  this->activeTime16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
820  break;
821  case 11: // See Profile.xlsx::Messages:monitoring.localTimestamp
822  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.localTimestamp")) return false;
823  this->localTimestamp = static_cast<LocalDateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
824  break;
825  case 12: // See Profile.xlsx::Messages:monitoring.temperature
826  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperature")) return false;
827  this->temperature = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
828  break;
829  case 14: // See Profile.xlsx::Messages:monitoring.temperatureMin
830  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperatureMin")) return false;
831  this->temperatureMin = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
832  break;
833  case 15: // See Profile.xlsx::Messages:monitoring.temperatureMax
834  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperatureMax")) return false;
835  this->temperatureMax = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
836  break;
837  case 16: // See Profile.xlsx::Messages:monitoring.activityTime
838  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activityTime")) return false;
839  this->activityTime = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
840  break;
841  case 19: // See Profile.xlsx::Messages:monitoring.activeCalories
842  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activeCalories")) return false;
843  this->activeCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
844  break;
845  case 24: // See Profile.xlsx::Messages:monitoring.currentActivityTypeIntensity
846  if (!verify(data, baseType, 1, FitBaseType::Byte, "monitoring.currentActivityTypeIntensity")) return false;
847  this->currentActivityTypeIntensity = static_cast<quint8>(data.at(0));
848  break;
849  case 25: // See Profile.xlsx::Messages:monitoring.timestampMin8
850  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.timestampMin8")) return false;
851  this->timestampMin8 = static_cast<quint8>(data.at(0));
852  break;
853  case 26: // See Profile.xlsx::Messages:monitoring.timestamp16
854  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.timestamp16")) return false;
855  this->timestamp16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
856  break;
857  case 27: // See Profile.xlsx::Messages:monitoring.heartRate
858  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.heartRate")) return false;
859  this->heartRate = static_cast<quint8>(data.at(0));
860  break;
861  case 28: // See Profile.xlsx::Messages:monitoring.intensity
862  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.intensity")) return false;
863  this->intensity = static_cast<quint8>(data.at(0));
864  break;
865  case 29: // See Profile.xlsx::Messages:monitoring.durationMin
866  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.durationMin")) return false;
867  this->durationMin = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
868  break;
869  case 30: // See Profile.xlsx::Messages:monitoring.duration
870  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.duration")) return false;
871  this->duration = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
872  break;
873  case 31: // See Profile.xlsx::Messages:monitoring.ascent
874  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.ascent")) return false;
875  this->ascent = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
876  break;
877  case 32: // See Profile.xlsx::Messages:monitoring.descent
878  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.descent")) return false;
879  this->descent = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
880  break;
881  case 33: // See Profile.xlsx::Messages:monitoring.moderateActivityMinutes
882  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.moderateActivityMinutes")) return false;
883  this->moderateActivityMinutes = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
884  break;
885  case 34: // See Profile.xlsx::Messages:monitoring.vigorousActivityMinutes
886  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.vigorousActivityMinutes")) return false;
887  this->vigorousActivityMinutes = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
888  break;
889  default:
890  qWarning() << "ignoring unknown monitoring message field number" << fieldId << bigEndian;
891  // Fall through to return true, as its still 'safe' to continue parsing data messages.
892  }
893  return true;
894 }
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

◆ activityTime

quint16 MonitoringMessagePrivate::activityTime

The MonitoringMessage FIT message's activityTime field.

Indexed using minute_activity_level enum

Definition at line 148 of file monitoringmessage_p.h.

◆ calories

quint16 MonitoringMessagePrivate::calories

The MonitoringMessage FIT message's calories field.

Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation

Definition at line 62 of file monitoringmessage_p.h.

◆ currentActivityTypeIntensity

quint8 MonitoringMessagePrivate::currentActivityTypeIntensity

The MonitoringMessage FIT message's currentActivityTypeIntensity field.

Indicates single type / intensity for duration since last monitoring message.

Definition at line 160 of file monitoringmessage_p.h.

◆ cycles

quint32 MonitoringMessagePrivate::cycles

The MonitoringMessage FIT message's cycles field.

Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.

Definition at line 78 of file monitoringmessage_p.h.

◆ deviceIndex

DeviceIndex MonitoringMessagePrivate::deviceIndex

The MonitoringMessage FIT message's deviceIndex field.

Associates this data to device_info message. Not required for file with single device (sensor).

Definition at line 54 of file monitoringmessage_p.h.

◆ distance

quint32 MonitoringMessagePrivate::distance

The MonitoringMessage FIT message's distance field.

Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.

Definition at line 70 of file monitoringmessage_p.h.

◆ localTimestamp

LocalDateTime MonitoringMessagePrivate::localTimestamp

The MonitoringMessage FIT message's localTimestamp field.

Must align to logging interval, for example, time must be 00:00:00 for daily log.

Definition at line 120 of file monitoringmessage_p.h.

◆ temperature

qint16 MonitoringMessagePrivate::temperature

The MonitoringMessage FIT message's temperature field.

Avg temperature during the logging interval ended at timestamp

Definition at line 127 of file monitoringmessage_p.h.

◆ temperatureMax

qint16 MonitoringMessagePrivate::temperatureMax

The MonitoringMessage FIT message's temperatureMax field.

Max temperature during the logging interval ended at timestamp

Definition at line 141 of file monitoringmessage_p.h.

◆ temperatureMin

qint16 MonitoringMessagePrivate::temperatureMin

The MonitoringMessage FIT message's temperatureMin field.

Min temperature during the logging interval ended at timestamp

Definition at line 134 of file monitoringmessage_p.h.

◆ timestamp

DateTime MonitoringMessagePrivate::timestamp

The MonitoringMessage FIT message's timestamp field.

Must align to logging interval, for example, time must be 00:00:00 for daily log.

Definition at line 46 of file monitoringmessage_p.h.


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