QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
workoutmessage.cpp
Go to the documentation of this file.
1 /*
2  Copyright 2021 Paul Colby
3 
4  This file is part of QtFit.
5 
6  QtFit is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  QtFit is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with QtFit. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 /*!
21  * \file
22  * \note This file is automatcially generated. Any changes here are likely to be overwritten.
23  */
24 
25 /*!
26  * \file
27  * Defines the WorkoutMessage, and WorkoutMessagePrivate classes.
28  */
29 
30 #include "workoutmessage.h"
31 #include "workoutmessage_p.h"
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class WorkoutMessage
40  *
41  * The WorkoutMessage class represents a FIT WorkoutMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a WorkoutMessage object.
48  *
49  * Typically, instances of this class will be returned by FitStreamReader::readNext, but this
50  * constructor may be used, along with the relevant setter methods, to create a valid message.
51  */
53 {
54 
55 }
56 
57 /*!
58  * \internal
59  *
60  * Constructs a WorkoutMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the WorkoutMessage data message's \c sport field's current value.
71  *
72  * \return the \c sport field value.
73  */
75 {
76  Q_D(const WorkoutMessage);
77  return d->sport;
78 }
79 
80 /*!
81  * Returns the WorkoutMessage data message's \c capabilities field's current value.
82  *
83  * \return the \c capabilities field value.
84  */
86 {
87  Q_D(const WorkoutMessage);
88  return d->capabilities;
89 }
90 
91 /*!
92  * Returns the WorkoutMessage data message's \c numValidSteps field's current value.
93  *
94  * number of valid steps
95  *
96  * \return the \c numValidSteps field value.
97  */
99 {
100  Q_D(const WorkoutMessage);
101  return d->numValidSteps;
102 }
103 
104 /*!
105  * Returns the WorkoutMessage data message's \c wktName field's current value.
106  *
107  * \return the \c wktName field value.
108  */
109 QString WorkoutMessage::wktName() const
110 {
111  Q_D(const WorkoutMessage);
112  return d->wktName;
113 }
114 
115 /*!
116  * Returns the WorkoutMessage data message's \c subSport field's current value.
117  *
118  * \return the \c subSport field value.
119  */
121 {
122  Q_D(const WorkoutMessage);
123  return d->subSport;
124 }
125 
126 /*!
127  * Returns the WorkoutMessage data message's \c poolLength field's current value.
128  *
129  * \return the \c poolLength field value.
130  */
132 {
133  Q_D(const WorkoutMessage);
134  return d->poolLength;
135 }
136 
137 /*!
138  * Returns the WorkoutMessage data message's \c poolLengthUnit field's current value.
139  *
140  * \return the \c poolLengthUnit field value.
141  */
143 {
144  Q_D(const WorkoutMessage);
145  return d->poolLengthUnit;
146 }
147 
148 /*!
149  * Sets the \c sport field to \a sport.
150  *
151  * \param sport The field value to set.
152  */
154 {
155  Q_D(WorkoutMessage);
156  d->sport = sport;
157 }
158 /*!
159  * Sets the \c capabilities field to \a capabilities.
160  *
161  * \param capabilities The field value to set.
162  */
164 {
165  Q_D(WorkoutMessage);
166  d->capabilities = capabilities;
167 }
168 /*!
169  * Sets the \c numValidSteps field to \a numValidSteps.
170  *
171  * \param numValidSteps The field value to set.
172  */
173 void WorkoutMessage::setNumValidSteps(const quint16 numValidSteps)
174 {
175  Q_D(WorkoutMessage);
176  d->numValidSteps = numValidSteps;
177 }
178 /*!
179  * Sets the \c wktName field to \a wktName.
180  *
181  * \param wktName The field value to set.
182  */
183 void WorkoutMessage::setWktName(const QString wktName)
184 {
185  Q_D(WorkoutMessage);
186  d->wktName = wktName;
187 }
188 /*!
189  * Sets the \c subSport field to \a subSport.
190  *
191  * \param subSport The field value to set.
192  */
194 {
195  Q_D(WorkoutMessage);
196  d->subSport = subSport;
197 }
198 /*!
199  * Sets the \c poolLength field to \a poolLength.
200  *
201  * \param poolLength The field value to set.
202  */
203 void WorkoutMessage::setPoolLength(const quint16 poolLength)
204 {
205  Q_D(WorkoutMessage);
206  d->poolLength = poolLength;
207 }
208 /*!
209  * Sets the \c poolLengthUnit field to \a poolLengthUnit.
210  *
211  * \param poolLengthUnit The field value to set.
212  */
214 {
215  Q_D(WorkoutMessage);
216  d->poolLengthUnit = poolLengthUnit;
217 }
218 
219 /// \cond internal
220 
221 /*!
222  * \internal
223  *
224  * \class WorkoutMessagePrivate
225  *
226  * The WorkoutMessagePrivate class provides private implementation for the WorkoutMessage.
227  *
228  * \sa WorkoutMessage
229  */
230 
231 /*!
232  * \internal
233  *
234  * Constructs a WorkoutMessagePrivate object with public implementation \a q.
235  *
236  * \param q Pointer to public implementaton.
237  */
238 WorkoutMessagePrivate::WorkoutMessagePrivate(WorkoutMessage * const q)
240  , sport(static_cast<Sport>(-1))
241  , capabilities(static_cast<WorkoutCapabilities>(-1))
242  , numValidSteps(0xFFFF)
243  , subSport(static_cast<SubSport>(-1))
244  , poolLength(0xFFFF)
245  , poolLengthUnit(static_cast<DisplayMeasure>(-1))
246 {
247  globalMessageNumber = MesgNum::Workout;
248 }
249 
250 /*!
251  * \internal
252  *
253  * Destroys the WorkoutMessagePrivate object.
254  */
256 {
257 
258 }
259 
261  const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)
262 {
263  switch (fieldId) {
264  case 4: // See Profile.xlsx::Messages:workout.sport
265  if (!verify(data, baseType, 1, FitBaseType::Enum, "workout.sport")) return false;
266  this->sport = static_cast<Sport>(data.at(0));
267  break;
268  case 5: // See Profile.xlsx::Messages:workout.capabilities
269  if (!verify(data, baseType, 4, FitBaseType::Uint32z, "workout.capabilities")) return false;
270  this->capabilities = static_cast<WorkoutCapabilities>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
271  break;
272  case 6: // See Profile.xlsx::Messages:workout.numValidSteps
273  if (!verify(data, baseType, 2, FitBaseType::Uint16, "workout.numValidSteps")) return false;
274  this->numValidSteps = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
275  break;
276  case 8: // See Profile.xlsx::Messages:workout.wktName
277  if (!verify(data, baseType, 1, FitBaseType::String, "workout.wktName")) return false;
278  this->wktName = QString::fromUtf8(data);
279  break;
280  case 11: // See Profile.xlsx::Messages:workout.subSport
281  if (!verify(data, baseType, 1, FitBaseType::Enum, "workout.subSport")) return false;
282  this->subSport = static_cast<SubSport>(data.at(0));
283  break;
284  case 14: // See Profile.xlsx::Messages:workout.poolLength
285  if (!verify(data, baseType, 2, FitBaseType::Uint16, "workout.poolLength")) return false;
286  this->poolLength = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
287  break;
288  case 15: // See Profile.xlsx::Messages:workout.poolLengthUnit
289  if (!verify(data, baseType, 1, FitBaseType::Enum, "workout.poolLengthUnit")) return false;
290  this->poolLengthUnit = static_cast<DisplayMeasure>(data.at(0));
291  break;
292  default:
293  qWarning() << "ignoring unknown workout message field number" << fieldId << bigEndian;
294  // Fall through to return true, as its still 'safe' to continue parsing data messages.
295  }
296  return true;
297 }
298 
299 /// \endcond
300 
#define QTFIT_END_NAMESPACE
Macro for ending the QtFit library's top-most namespace (if one is defined).
Definition: QtFit_global.h:78
#define QTFIT_BEGIN_NAMESPACE
Macro for starting the QtFit library's top-most namespace (if one is defined).
Definition: QtFit_global.h:77
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
The AbstractDataMessage class is the polymorphic base class for all FIT Data Message classes.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
WorkoutCapabilities capabilities
The WorkoutMessage FIT message's capabilities field.
QString wktName
The WorkoutMessage FIT message's wktName field.
quint16 poolLength
The WorkoutMessage FIT message's poolLength field.
DisplayMeasure poolLengthUnit
The WorkoutMessage FIT message's poolLengthUnit field.
Sport sport
The WorkoutMessage FIT message's sport field.
SubSport subSport
The WorkoutMessage FIT message's subSport field.
quint16 numValidSteps
The WorkoutMessage FIT message's numValidSteps field.
The WorkoutMessage class represents a FIT WorkoutMessage data message.
quint16 numValidSteps() const
Returns the WorkoutMessage data message's numValidSteps field's current value.
WorkoutCapabilities capabilities() const
Returns the WorkoutMessage data message's capabilities field's current value.
WorkoutMessage()
Constructs a WorkoutMessage object.
QString wktName() const
Returns the WorkoutMessage data message's wktName field's current value.
SubSport subSport() const
Returns the WorkoutMessage data message's subSport field's current value.
quint16 poolLength() const
Returns the WorkoutMessage data message's poolLength field's current value.
void setCapabilities(const WorkoutCapabilities capabilities)
Sets the capabilities field to capabilities.
void setSport(const Sport sport)
Sets the sport field to sport.
void setPoolLengthUnit(const DisplayMeasure poolLengthUnit)
Sets the poolLengthUnit field to poolLengthUnit.
DisplayMeasure poolLengthUnit() const
Returns the WorkoutMessage data message's poolLengthUnit field's current value.
void setSubSport(const SubSport subSport)
Sets the subSport field to subSport.
Sport sport() const
Returns the WorkoutMessage data message's sport field's current value.
void setWktName(const QString wktName)
Sets the wktName field to wktName.
void setPoolLength(const quint16 poolLength)
Sets the poolLength field to poolLength.
void setNumValidSteps(const quint16 numValidSteps)
Sets the numValidSteps field to numValidSteps.
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
Sport
Garmin FIT Sport type.
Definition: types.h:685
DisplayMeasure
Garmin FIT DisplayMeasure type.
Definition: types.h:572
WorkoutCapabilities
Garmin FIT WorkoutCapabilities type.
Definition: types.h:2106
SubSport
Garmin FIT SubSport type.
Definition: types.h:881
Declares the WorkoutMessage class.
Declares the WorkoutMessagePrivate class.