QtFit  0.1
Internal library development documentation
AbstractDataMessage Class Reference

The AbstractDataMessage class is the polymorphic base class for all FIT Data Message classes. More...

Inheritance diagram for AbstractDataMessage:
[legend]
Collaboration diagram for AbstractDataMessage:
[legend]

Public Member Functions

 ~AbstractDataMessage ()
 Destroys the AbstractDataMessage object.
 
MesgNum globalMessageNumber () const
 Returns the data message's global message number. More...
 

Static Public Member Functions

static AbstractDataMessagefromData (const DataDefinition *const defn, const QByteArray &record)
 Constructs the relevant AbstractDataMessage-derived class to parse record according to defn. More...
 

Protected Member Functions

 AbstractDataMessage (AbstractDataMessagePrivate *const d)
 

Protected Attributes

AbstractDataMessagePrivate *const d_ptr
 Internal d-pointer.
 

Detailed Description

The AbstractDataMessage class is the polymorphic base class for all FIT Data Message classes.

Definition at line 36 of file abstractdatamessage.h.

Constructor & Destructor Documentation

◆ AbstractDataMessage()

AbstractDataMessage::AbstractDataMessage ( AbstractDataMessagePrivate *const  d)
explicitprotected

Constructs a AbstractDataMessage with private implementation d.

Parameters
dPointer to private implementation.

Definition at line 45 of file abstractdatamessage.cpp.

45  : d_ptr(d)
46 {
47 
48 }
AbstractDataMessagePrivate *const d_ptr
Internal d-pointer.

Member Function Documentation

◆ fromData()

QTFIT_BEGIN_NAMESPACE AbstractDataMessage * AbstractDataMessage::fromData ( const DataDefinition *const  defn,
const QByteArray &  record 
)
static

Constructs the relevant AbstractDataMessage-derived class to parse record according to defn.

Parameters
defnDefinition data describing the FIT record.
recordFIT data record to parse.
Returns
an instance of a AbstractDataMessage-derived class, or nullptr if record could not be parsed.

Definition at line 139 of file fitdatamessages.cpp.

140 {
141  Q_ASSERT(defn);
142  AbstractDataMessage * message = nullptr;
143  switch (defn->globalMessageNumber) {
144  case MesgNum::FileId : message = new FileIdMessage ; break;
145  case MesgNum::Capabilities : message = new CapabilitiesMessage ; break;
146  case MesgNum::DeviceSettings : message = new DeviceSettingsMessage ; break;
147  case MesgNum::UserProfile : message = new UserProfileMessage ; break;
148  case MesgNum::HrmProfile : message = new HrmProfileMessage ; break;
149  case MesgNum::SdmProfile : message = new SdmProfileMessage ; break;
150  case MesgNum::BikeProfile : message = new BikeProfileMessage ; break;
151  case MesgNum::ZonesTarget : message = new ZonesTargetMessage ; break;
152  case MesgNum::HrZone : message = new HrZoneMessage ; break;
153  case MesgNum::PowerZone : message = new PowerZoneMessage ; break;
154  case MesgNum::MetZone : message = new MetZoneMessage ; break;
155  case MesgNum::Sport : message = new SportMessage ; break;
156  case MesgNum::Goal : message = new GoalMessage ; break;
157  case MesgNum::Session : message = new SessionMessage ; break;
158  case MesgNum::Lap : message = new LapMessage ; break;
159  case MesgNum::Record : message = new RecordMessage ; break;
160  case MesgNum::Event : message = new EventMessage ; break;
161  case MesgNum::DeviceInfo : message = new DeviceInfoMessage ; break;
162  case MesgNum::Workout : message = new WorkoutMessage ; break;
163  case MesgNum::WorkoutStep : message = new WorkoutStepMessage ; break;
164  case MesgNum::Schedule : message = new ScheduleMessage ; break;
165  case MesgNum::WeightScale : message = new WeightScaleMessage ; break;
166  case MesgNum::Course : message = new CourseMessage ; break;
167  case MesgNum::CoursePoint : message = new CoursePointMessage ; break;
168  case MesgNum::Totals : message = new TotalsMessage ; break;
169  case MesgNum::Activity : message = new ActivityMessage ; break;
170  case MesgNum::Software : message = new SoftwareMessage ; break;
171  case MesgNum::FileCapabilities : message = new FileCapabilitiesMessage ; break;
172  case MesgNum::MesgCapabilities : message = new MesgCapabilitiesMessage ; break;
173  case MesgNum::FieldCapabilities : message = new FieldCapabilitiesMessage ; break;
174  case MesgNum::FileCreator : message = new FileCreatorMessage ; break;
175  case MesgNum::BloodPressure : message = new BloodPressureMessage ; break;
176  case MesgNum::SpeedZone : message = new SpeedZoneMessage ; break;
177  case MesgNum::Monitoring : message = new MonitoringMessage ; break;
178  case MesgNum::TrainingFile : message = new TrainingFileMessage ; break;
179  case MesgNum::Hrv : message = new HrvMessage ; break;
180  case MesgNum::AntRx : message = new AntRxMessage ; break;
181  case MesgNum::AntTx : message = new AntTxMessage ; break;
182  case MesgNum::AntChannelId : message = new AntChannelIdMessage ; break;
183  case MesgNum::Length : message = new LengthMessage ; break;
184  case MesgNum::MonitoringInfo : message = new MonitoringInfoMessage ; break;
185  case MesgNum::Pad : message = nullptr; break;
186  case MesgNum::SlaveDevice : message = new SlaveDeviceMessage ; break;
187  case MesgNum::Connectivity : message = new ConnectivityMessage ; break;
188  case MesgNum::WeatherConditions : message = new WeatherConditionsMessage ; break;
189  case MesgNum::WeatherAlert : message = new WeatherAlertMessage ; break;
190  case MesgNum::CadenceZone : message = new CadenceZoneMessage ; break;
191  case MesgNum::Hr : message = new HrMessage ; break;
192  case MesgNum::SegmentLap : message = new SegmentLapMessage ; break;
193  case MesgNum::MemoGlob : message = new MemoGlobMessage ; break;
194  case MesgNum::SegmentId : message = new SegmentIdMessage ; break;
195  case MesgNum::SegmentLeaderboardEntry : message = new SegmentLeaderboardEntryMessage; break;
196  case MesgNum::SegmentPoint : message = new SegmentPointMessage ; break;
197  case MesgNum::SegmentFile : message = new SegmentFileMessage ; break;
198  case MesgNum::WorkoutSession : message = new WorkoutSessionMessage ; break;
199  case MesgNum::WatchfaceSettings : message = new WatchfaceSettingsMessage ; break;
200  case MesgNum::GpsMetadata : message = new GpsMetadataMessage ; break;
201  case MesgNum::CameraEvent : message = new CameraEventMessage ; break;
202  case MesgNum::TimestampCorrelation : message = new TimestampCorrelationMessage; break;
203  case MesgNum::GyroscopeData : message = new GyroscopeDataMessage ; break;
204  case MesgNum::AccelerometerData : message = new AccelerometerDataMessage ; break;
205  case MesgNum::ThreeDSensorCalibration : message = new ThreeDSensorCalibrationMessage; break;
206  case MesgNum::VideoFrame : message = new VideoFrameMessage ; break;
207  case MesgNum::ObdiiData : message = new ObdiiDataMessage ; break;
208  case MesgNum::NmeaSentence : message = new NmeaSentenceMessage ; break;
209  case MesgNum::AviationAttitude : message = new AviationAttitudeMessage ; break;
210  case MesgNum::Video : message = new VideoMessage ; break;
211  case MesgNum::VideoTitle : message = new VideoTitleMessage ; break;
212  case MesgNum::VideoDescription : message = new VideoDescriptionMessage ; break;
213  case MesgNum::VideoClip : message = new VideoClipMessage ; break;
214  case MesgNum::OhrSettings : message = new OhrSettingsMessage ; break;
215  case MesgNum::ExdScreenConfiguration : message = new ExdScreenConfigurationMessage; break;
216  case MesgNum::ExdDataFieldConfiguration : message = new ExdDataFieldConfigurationMessage; break;
217  case MesgNum::ExdDataConceptConfiguration: message = new ExdDataConceptConfigurationMessage; break;
218  case MesgNum::FieldDescription : message = new FieldDescriptionMessage ; break;
219  case MesgNum::DeveloperDataId : message = new DeveloperDataIdMessage ; break;
220  case MesgNum::MagnetometerData : message = new MagnetometerDataMessage ; break;
221  case MesgNum::BarometerData : message = new BarometerDataMessage ; break;
222  case MesgNum::OneDSensorCalibration : message = new OneDSensorCalibrationMessage; break;
223  case MesgNum::Set : message = new SetMessage ; break;
224  case MesgNum::StressLevel : message = new StressLevelMessage ; break;
225  case MesgNum::DiveSettings : message = new DiveSettingsMessage ; break;
226  case MesgNum::DiveGas : message = new DiveGasMessage ; break;
227  case MesgNum::DiveAlarm : message = new DiveAlarmMessage ; break;
228  case MesgNum::ExerciseTitle : message = new ExerciseTitleMessage ; break;
229  case MesgNum::DiveSummary : message = new DiveSummaryMessage ; break;
230  case MesgNum::Jump : message = new JumpMessage ; break;
231  case MesgNum::ClimbPro : message = new ClimbProMessage ; break;
232  case MesgNum::MfgRangeMin : message = nullptr; break;
233  case MesgNum::MfgRangeMax : message = nullptr; break;
234  }
235  if (message) {
236  message->d_ptr->setFields(defn, record);
237  }
238  return message;
239 }
bool setFields(const DataDefinition *const defn, const QByteArray &record)
The AbstractDataMessage class is the polymorphic base class for all FIT Data Message classes.
The AccelerometerDataMessage class represents a FIT AccelerometerDataMessage data message.
The ActivityMessage class represents a FIT ActivityMessage data message.
The AntChannelIdMessage class represents a FIT AntChannelIdMessage data message.
The AntRxMessage class represents a FIT AntRxMessage data message.
Definition: antrxmessage.h:39
The AntTxMessage class represents a FIT AntTxMessage data message.
Definition: anttxmessage.h:39
The AviationAttitudeMessage class represents a FIT AviationAttitudeMessage data message.
The BarometerDataMessage class represents a FIT BarometerDataMessage data message.
The BikeProfileMessage class represents a FIT BikeProfileMessage data message.
The BloodPressureMessage class represents a FIT BloodPressureMessage data message.
The CadenceZoneMessage class represents a FIT CadenceZoneMessage data message.
The CameraEventMessage class represents a FIT CameraEventMessage data message.
The CapabilitiesMessage class represents a FIT CapabilitiesMessage data message.
The ClimbProMessage class represents a FIT ClimbProMessage data message.
The ConnectivityMessage class represents a FIT ConnectivityMessage data message.
The CourseMessage class represents a FIT CourseMessage data message.
Definition: coursemessage.h:39
The CoursePointMessage class represents a FIT CoursePointMessage data message.
The DeveloperDataIdMessage class represents a FIT DeveloperDataIdMessage data message.
The DeviceInfoMessage class represents a FIT DeviceInfoMessage data message.
The DeviceSettingsMessage class represents a FIT DeviceSettingsMessage data message.
The DiveAlarmMessage class represents a FIT DiveAlarmMessage data message.
The DiveGasMessage class represents a FIT DiveGasMessage data message.
The DiveSettingsMessage class represents a FIT DiveSettingsMessage data message.
The DiveSummaryMessage class represents a FIT DiveSummaryMessage data message.
The EventMessage class represents a FIT EventMessage data message.
Definition: eventmessage.h:39
The ExdDataConceptConfigurationMessage class represents a FIT ExdDataConceptConfigurationMessage data...
The ExdDataFieldConfigurationMessage class represents a FIT ExdDataFieldConfigurationMessage data mes...
The ExdScreenConfigurationMessage class represents a FIT ExdScreenConfigurationMessage data message.
The ExerciseTitleMessage class represents a FIT ExerciseTitleMessage data message.
The FieldCapabilitiesMessage class represents a FIT FieldCapabilitiesMessage data message.
The FieldDescriptionMessage class represents a FIT FieldDescriptionMessage data message.
The FileCapabilitiesMessage class represents a FIT FileCapabilitiesMessage data message.
The FileCreatorMessage class represents a FIT FileCreatorMessage data message.
The FileIdMessage class represents a FIT FileIdMessage data message.
Definition: fileidmessage.h:39
The GoalMessage class represents a FIT GoalMessage data message.
Definition: goalmessage.h:39
The GpsMetadataMessage class represents a FIT GpsMetadataMessage data message.
The GyroscopeDataMessage class represents a FIT GyroscopeDataMessage data message.
The HrMessage class represents a FIT HrMessage data message.
Definition: hrmessage.h:39
The HrZoneMessage class represents a FIT HrZoneMessage data message.
Definition: hrzonemessage.h:39
The HrmProfileMessage class represents a FIT HrmProfileMessage data message.
The HrvMessage class represents a FIT HrvMessage data message.
Definition: hrvmessage.h:39
The JumpMessage class represents a FIT JumpMessage data message.
Definition: jumpmessage.h:39
The LapMessage class represents a FIT LapMessage data message.
Definition: lapmessage.h:39
The LengthMessage class represents a FIT LengthMessage data message.
Definition: lengthmessage.h:39
The MagnetometerDataMessage class represents a FIT MagnetometerDataMessage data message.
The MemoGlobMessage class represents a FIT MemoGlobMessage data message.
The MesgCapabilitiesMessage class represents a FIT MesgCapabilitiesMessage data message.
The MetZoneMessage class represents a FIT MetZoneMessage data message.
The MonitoringInfoMessage class represents a FIT MonitoringInfoMessage data message.
The MonitoringMessage class represents a FIT MonitoringMessage data message.
The NmeaSentenceMessage class represents a FIT NmeaSentenceMessage data message.
The ObdiiDataMessage class represents a FIT ObdiiDataMessage data message.
The OhrSettingsMessage class represents a FIT OhrSettingsMessage data message.
The OneDSensorCalibrationMessage class represents a FIT OneDSensorCalibrationMessage data message.
The PowerZoneMessage class represents a FIT PowerZoneMessage data message.
The RecordMessage class represents a FIT RecordMessage data message.
Definition: recordmessage.h:39
The ScheduleMessage class represents a FIT ScheduleMessage data message.
The SdmProfileMessage class represents a FIT SdmProfileMessage data message.
The SegmentFileMessage class represents a FIT SegmentFileMessage data message.
The SegmentIdMessage class represents a FIT SegmentIdMessage data message.
The SegmentLapMessage class represents a FIT SegmentLapMessage data message.
The SegmentLeaderboardEntryMessage class represents a FIT SegmentLeaderboardEntryMessage data message...
The SegmentPointMessage class represents a FIT SegmentPointMessage data message.
The SessionMessage class represents a FIT SessionMessage data message.
The SetMessage class represents a FIT SetMessage data message.
Definition: setmessage.h:39
The SlaveDeviceMessage class represents a FIT SlaveDeviceMessage data message.
The SoftwareMessage class represents a FIT SoftwareMessage data message.
The SpeedZoneMessage class represents a FIT SpeedZoneMessage data message.
The SportMessage class represents a FIT SportMessage data message.
Definition: sportmessage.h:39
The StressLevelMessage class represents a FIT StressLevelMessage data message.
The ThreeDSensorCalibrationMessage class represents a FIT ThreeDSensorCalibrationMessage data message...
The TimestampCorrelationMessage class represents a FIT TimestampCorrelationMessage data message.
The TotalsMessage class represents a FIT TotalsMessage data message.
Definition: totalsmessage.h:39
The TrainingFileMessage class represents a FIT TrainingFileMessage data message.
The UserProfileMessage class represents a FIT UserProfileMessage data message.
The VideoClipMessage class represents a FIT VideoClipMessage data message.
The VideoDescriptionMessage class represents a FIT VideoDescriptionMessage data message.
The VideoFrameMessage class represents a FIT VideoFrameMessage data message.
The VideoMessage class represents a FIT VideoMessage data message.
Definition: videomessage.h:39
The VideoTitleMessage class represents a FIT VideoTitleMessage data message.
The WatchfaceSettingsMessage class represents a FIT WatchfaceSettingsMessage data message.
The WeatherAlertMessage class represents a FIT WeatherAlertMessage data message.
The WeatherConditionsMessage class represents a FIT WeatherConditionsMessage data message.
The WeightScaleMessage class represents a FIT WeightScaleMessage data message.
The WorkoutMessage class represents a FIT WorkoutMessage data message.
The WorkoutSessionMessage class represents a FIT WorkoutSessionMessage data message.
The WorkoutStepMessage class represents a FIT WorkoutStepMessage data message.
The ZonesTargetMessage class represents a FIT ZonesTargetMessage data message.
MesgNum globalMessageNumber
FIT Global Message Number the Data Message represents.
Definition: types_p.h:85
@ MfgRangeMin
0xFF00 - 0xFFFE reserved for manufacturer specific messages
@ MfgRangeMax
0xFF00 - 0xFFFE reserved for manufacturer specific messages

References DataDefinition::globalMessageNumber.

Referenced by FitStreamReaderPrivate::parseDataMessage().

Here is the caller graph for this function:

◆ globalMessageNumber()

MesgNum AbstractDataMessage::globalMessageNumber ( ) const

Returns the data message's global message number.

Returns
the global message number.

Definition at line 63 of file abstractdatamessage.cpp.

64 {
65  Q_D(const AbstractDataMessage);
66  return d->globalMessageNumber;
67 }

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