QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
antchannelidmessage.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 AntChannelIdMessage, and AntChannelIdMessagePrivate classes.
28  */
29 
30 #include "antchannelidmessage.h"
31 #include "antchannelidmessage_p.h"
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class AntChannelIdMessage
40  *
41  * The AntChannelIdMessage class represents a FIT AntChannelIdMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a AntChannelIdMessage 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 AntChannelIdMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the AntChannelIdMessage data message's \c channelNumber field's current value.
71  *
72  * \return the \c channelNumber field value.
73  */
75 {
76  Q_D(const AntChannelIdMessage);
77  return d->channelNumber;
78 }
79 
80 /*!
81  * Returns the AntChannelIdMessage data message's \c deviceType field's current value.
82  *
83  * \return the \c deviceType field value.
84  */
86 {
87  Q_D(const AntChannelIdMessage);
88  return d->deviceType;
89 }
90 
91 /*!
92  * Returns the AntChannelIdMessage data message's \c deviceNumber field's current value.
93  *
94  * \return the \c deviceNumber field value.
95  */
97 {
98  Q_D(const AntChannelIdMessage);
99  return d->deviceNumber;
100 }
101 
102 /*!
103  * Returns the AntChannelIdMessage data message's \c transmissionType field's current value.
104  *
105  * \return the \c transmissionType field value.
106  */
108 {
109  Q_D(const AntChannelIdMessage);
110  return d->transmissionType;
111 }
112 
113 /*!
114  * Returns the AntChannelIdMessage data message's \c deviceIndex field's current value.
115  *
116  * \return the \c deviceIndex field value.
117  */
119 {
120  Q_D(const AntChannelIdMessage);
121  return d->deviceIndex;
122 }
123 
124 /*!
125  * Sets the \c channelNumber field to \a channelNumber.
126  *
127  * \param channelNumber The field value to set.
128  */
129 void AntChannelIdMessage::setChannelNumber(const quint8 channelNumber)
130 {
131  Q_D(AntChannelIdMessage);
132  d->channelNumber = channelNumber;
133 }
134 /*!
135  * Sets the \c deviceType field to \a deviceType.
136  *
137  * \param deviceType The field value to set.
138  */
140 {
141  Q_D(AntChannelIdMessage);
142  d->deviceType = deviceType;
143 }
144 /*!
145  * Sets the \c deviceNumber field to \a deviceNumber.
146  *
147  * \param deviceNumber The field value to set.
148  */
150 {
151  Q_D(AntChannelIdMessage);
152  d->deviceNumber = deviceNumber;
153 }
154 /*!
155  * Sets the \c transmissionType field to \a transmissionType.
156  *
157  * \param transmissionType The field value to set.
158  */
160 {
161  Q_D(AntChannelIdMessage);
162  d->transmissionType = transmissionType;
163 }
164 /*!
165  * Sets the \c deviceIndex field to \a deviceIndex.
166  *
167  * \param deviceIndex The field value to set.
168  */
170 {
171  Q_D(AntChannelIdMessage);
172  d->deviceIndex = deviceIndex;
173 }
174 
175 /// \cond internal
176 
177 /*!
178  * \internal
179  *
180  * \class AntChannelIdMessagePrivate
181  *
182  * The AntChannelIdMessagePrivate class provides private implementation for the AntChannelIdMessage.
183  *
184  * \sa AntChannelIdMessage
185  */
186 
187 /*!
188  * \internal
189  *
190  * Constructs a AntChannelIdMessagePrivate object with public implementation \a q.
191  *
192  * \param q Pointer to public implementaton.
193  */
194 AntChannelIdMessagePrivate::AntChannelIdMessagePrivate(AntChannelIdMessage * const q)
196  , channelNumber(0xFF)
197  , deviceType(static_cast<quint8z>(-1))
198  , deviceNumber(0)
199  , transmissionType(static_cast<quint8z>(-1))
200  , deviceIndex(static_cast<DeviceIndex>(-1))
201 {
202  globalMessageNumber = MesgNum::AntChannelId;
203 }
204 
205 /*!
206  * \internal
207  *
208  * Destroys the AntChannelIdMessagePrivate 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 0: // See Profile.xlsx::Messages:ant_channel_id.channelNumber
220  if (!verify(data, baseType, 1, FitBaseType::Uint8, "ant_channel_id.channelNumber")) return false;
221  this->channelNumber = static_cast<quint8>(data.at(0));
222  break;
223  case 1: // See Profile.xlsx::Messages:ant_channel_id.deviceType
224  if (!verify(data, baseType, 1, FitBaseType::Uint8z, "ant_channel_id.deviceType")) return false;
225  this->deviceType = static_cast<quint8z>(data.at(0));
226  break;
227  case 2: // See Profile.xlsx::Messages:ant_channel_id.deviceNumber
228  if (!verify(data, baseType, 2, FitBaseType::Uint16z, "ant_channel_id.deviceNumber")) return false;
229  this->deviceNumber = static_cast<quint16z>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
230  break;
231  case 3: // See Profile.xlsx::Messages:ant_channel_id.transmissionType
232  if (!verify(data, baseType, 1, FitBaseType::Uint8z, "ant_channel_id.transmissionType")) return false;
233  this->transmissionType = static_cast<quint8z>(data.at(0));
234  break;
235  case 4: // See Profile.xlsx::Messages:ant_channel_id.deviceIndex
236  if (!verify(data, baseType, 1, FitBaseType::Uint8, "ant_channel_id.deviceIndex")) return false;
237  this->deviceIndex = static_cast<DeviceIndex>(data.at(0));
238  break;
239  default:
240  qWarning() << "ignoring unknown ant_channel_id 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
Declares the AntChannelIdMessage class.
Declares the AntChannelIdMessagePrivate class.
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.
DeviceIndex deviceIndex
The AntChannelIdMessage FIT message's deviceIndex field.
quint16z deviceNumber
The AntChannelIdMessage FIT message's deviceNumber field.
quint8 channelNumber
The AntChannelIdMessage FIT message's channelNumber field.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
quint8z transmissionType
The AntChannelIdMessage FIT message's transmissionType field.
quint8z deviceType
The AntChannelIdMessage FIT message's deviceType field.
The AntChannelIdMessage class represents a FIT AntChannelIdMessage data message.
void setDeviceType(const quint8z deviceType)
Sets the deviceType field to deviceType.
quint8z deviceType() const
Returns the AntChannelIdMessage data message's deviceType field's current value.
quint8 channelNumber() const
Returns the AntChannelIdMessage data message's channelNumber field's current value.
void setChannelNumber(const quint8 channelNumber)
Sets the channelNumber field to channelNumber.
DeviceIndex deviceIndex() const
Returns the AntChannelIdMessage data message's deviceIndex field's current value.
void setDeviceNumber(const quint16z deviceNumber)
Sets the deviceNumber field to deviceNumber.
AntChannelIdMessage()
Constructs a AntChannelIdMessage object.
void setTransmissionType(const quint8z transmissionType)
Sets the transmissionType field to transmissionType.
quint16z deviceNumber() const
Returns the AntChannelIdMessage data message's deviceNumber field's current value.
quint8z transmissionType() const
Returns the AntChannelIdMessage data message's transmissionType field's current value.
void setDeviceIndex(const DeviceIndex deviceIndex)
Sets the deviceIndex field to deviceIndex.
DeviceIndex
Garmin FIT DeviceIndex type.
Definition: types.h:278
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
quint16 quint16z
16-bit unsigned integer, with 0-is-invalid semantics.
Definition: types.h:46
QTFIT_BEGIN_NAMESPACE typedef quint8 quint8z
8-bit unsigned integer, with 0-is-invalid semantics.
Definition: types.h:45