QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
mesgcapabilitiesmessage.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 MesgCapabilitiesMessage, and MesgCapabilitiesMessagePrivate classes.
28  */
29 
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class MesgCapabilitiesMessage
40  *
41  * The MesgCapabilitiesMessage class represents a FIT MesgCapabilitiesMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a MesgCapabilitiesMessage 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 MesgCapabilitiesMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the MesgCapabilitiesMessage data message's \c messageIndex field's current value.
71  *
72  * \return the \c messageIndex field value.
73  */
75 {
76  Q_D(const MesgCapabilitiesMessage);
77  return d->messageIndex;
78 }
79 
80 /*!
81  * Returns the MesgCapabilitiesMessage data message's \c file field's current value.
82  *
83  * \return the \c file field value.
84  */
86 {
87  Q_D(const MesgCapabilitiesMessage);
88  return d->file;
89 }
90 
91 /*!
92  * Returns the MesgCapabilitiesMessage data message's \c mesgNum field's current value.
93  *
94  * \return the \c mesgNum field value.
95  */
97 {
98  Q_D(const MesgCapabilitiesMessage);
99  return d->mesgNum;
100 }
101 
102 /*!
103  * Returns the MesgCapabilitiesMessage data message's \c countType field's current value.
104  *
105  * \return the \c countType field value.
106  */
108 {
109  Q_D(const MesgCapabilitiesMessage);
110  return d->countType;
111 }
112 
113 /*!
114  * Returns the MesgCapabilitiesMessage data message's \c count field's current value.
115  *
116  * \return the \c count field value.
117  */
119 {
120  Q_D(const MesgCapabilitiesMessage);
121  return d->count;
122 }
123 
124 /*!
125  * Sets the \c messageIndex field to \a messageIndex.
126  *
127  * \param messageIndex The field value to set.
128  */
130 {
132  d->messageIndex = messageIndex;
133 }
134 /*!
135  * Sets the \c file field to \a file.
136  *
137  * \param file The field value to set.
138  */
140 {
142  d->file = file;
143 }
144 /*!
145  * Sets the \c mesgNum field to \a mesgNum.
146  *
147  * \param mesgNum The field value to set.
148  */
150 {
152  d->mesgNum = mesgNum;
153 }
154 /*!
155  * Sets the \c countType field to \a countType.
156  *
157  * \param countType The field value to set.
158  */
160 {
162  d->countType = countType;
163 }
164 /*!
165  * Sets the \c count field to \a count.
166  *
167  * \param count The field value to set.
168  */
169 void MesgCapabilitiesMessage::setCount(const quint16 count)
170 {
172  d->count = count;
173 }
174 
175 /// \cond internal
176 
177 /*!
178  * \internal
179  *
180  * \class MesgCapabilitiesMessagePrivate
181  *
182  * The MesgCapabilitiesMessagePrivate class provides private implementation for the MesgCapabilitiesMessage.
183  *
184  * \sa MesgCapabilitiesMessage
185  */
186 
187 /*!
188  * \internal
189  *
190  * Constructs a MesgCapabilitiesMessagePrivate object with public implementation \a q.
191  *
192  * \param q Pointer to public implementaton.
193  */
194 MesgCapabilitiesMessagePrivate::MesgCapabilitiesMessagePrivate(MesgCapabilitiesMessage * const q)
196  , messageIndex(static_cast<MessageIndex>(-1))
197  , file(static_cast<File>(-1))
198  , mesgNum(static_cast<MesgNum>(-1))
199  , countType(static_cast<MesgCount>(-1))
200  , count(0xFFFF)
201 {
202  globalMessageNumber = MesgNum::MesgCapabilities;
203 }
204 
205 /*!
206  * \internal
207  *
208  * Destroys the MesgCapabilitiesMessagePrivate object.
209  */
211 {
212 
213 }
214 
216  const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)
217 {
218  switch (fieldId) {
219  case 254: // See Profile.xlsx::Messages:mesg_capabilities.messageIndex
220  if (!verify(data, baseType, 2, FitBaseType::Uint16, "mesg_capabilities.messageIndex")) return false;
221  this->messageIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
222  break;
223  case 0: // See Profile.xlsx::Messages:mesg_capabilities.file
224  if (!verify(data, baseType, 1, FitBaseType::Enum, "mesg_capabilities.file")) return false;
225  this->file = static_cast<File>(data.at(0));
226  break;
227  case 1: // See Profile.xlsx::Messages:mesg_capabilities.mesgNum
228  if (!verify(data, baseType, 2, FitBaseType::Uint16, "mesg_capabilities.mesgNum")) return false;
229  this->mesgNum = static_cast<MesgNum>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
230  break;
231  case 2: // See Profile.xlsx::Messages:mesg_capabilities.countType
232  if (!verify(data, baseType, 1, FitBaseType::Enum, "mesg_capabilities.countType")) return false;
233  this->countType = static_cast<MesgCount>(data.at(0));
234  break;
235  case 3: // See Profile.xlsx::Messages:mesg_capabilities.count
236  if (!verify(data, baseType, 2, FitBaseType::Uint16, "mesg_capabilities.count")) return false;
237  this->count = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
238  break;
239  default:
240  qWarning() << "ignoring unknown mesg_capabilities message field number" << fieldId << bigEndian;
241  // Fall through to return true, as its still 'safe' to continue parsing data messages.
242  }
243  return true;
244 }
245 
246 /// \endcond
247 
#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.
File file
The MesgCapabilitiesMessage FIT message's file field.
MesgCount countType
The MesgCapabilitiesMessage FIT message's countType field.
quint16 count
The MesgCapabilitiesMessage FIT message's count field.
MessageIndex messageIndex
The MesgCapabilitiesMessage FIT message's messageIndex field.
MesgNum mesgNum
The MesgCapabilitiesMessage FIT message's mesgNum field.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
The MesgCapabilitiesMessage class represents a FIT MesgCapabilitiesMessage data message.
quint16 count() const
Returns the MesgCapabilitiesMessage data message's count field's current value.
void setCountType(const MesgCount countType)
Sets the countType field to countType.
MessageIndex messageIndex() const
Returns the MesgCapabilitiesMessage data message's messageIndex field's current value.
MesgCapabilitiesMessage()
Constructs a MesgCapabilitiesMessage object.
void setMesgNum(const MesgNum mesgNum)
Sets the mesgNum field to mesgNum.
MesgCount countType() const
Returns the MesgCapabilitiesMessage data message's countType field's current value.
void setCount(const quint16 count)
Sets the count field to count.
void setFile(const File file)
Sets the file field to file.
File file() const
Returns the MesgCapabilitiesMessage data message's file field's current value.
void setMessageIndex(const MessageIndex messageIndex)
Sets the messageIndex field to messageIndex.
MesgNum mesgNum() const
Returns the MesgCapabilitiesMessage data message's mesgNum field's current value.
Declares the MesgCapabilitiesMessage class.
Declares the MesgCapabilitiesMessagePrivate class.
MesgCount
Garmin FIT MesgCount type.
Definition: types.h:222
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
MesgNum
Garmin FIT MesgNum type.
Definition: types.h:91
MessageIndex
Garmin FIT MessageIndex type.
Definition: types.h:263
File
Garmin FIT File type.
Definition: types.h:59