QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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: