QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
filecreatormessage.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 FileCreatorMessage, and FileCreatorMessagePrivate classes.
28  */
29 
30 #include "filecreatormessage.h"
31 #include "filecreatormessage_p.h"
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class FileCreatorMessage
40  *
41  * The FileCreatorMessage class represents a FIT FileCreatorMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a FileCreatorMessage 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 FileCreatorMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the FileCreatorMessage data message's \c softwareVersion field's current value.
71  *
72  * \return the \c softwareVersion field value.
73  */
75 {
76  Q_D(const FileCreatorMessage);
77  return d->softwareVersion;
78 }
79 
80 /*!
81  * Returns the FileCreatorMessage data message's \c hardwareVersion field's current value.
82  *
83  * \return the \c hardwareVersion field value.
84  */
86 {
87  Q_D(const FileCreatorMessage);
88  return d->hardwareVersion;
89 }
90 
91 /*!
92  * Sets the \c softwareVersion field to \a softwareVersion.
93  *
94  * \param softwareVersion The field value to set.
95  */
96 void FileCreatorMessage::setSoftwareVersion(const quint16 softwareVersion)
97 {
98  Q_D(FileCreatorMessage);
99  d->softwareVersion = softwareVersion;
100 }
101 /*!
102  * Sets the \c hardwareVersion field to \a hardwareVersion.
103  *
104  * \param hardwareVersion The field value to set.
105  */
106 void FileCreatorMessage::setHardwareVersion(const quint8 hardwareVersion)
107 {
108  Q_D(FileCreatorMessage);
109  d->hardwareVersion = hardwareVersion;
110 }
111 
112 /// \cond internal
113 
114 /*!
115  * \internal
116  *
117  * \class FileCreatorMessagePrivate
118  *
119  * The FileCreatorMessagePrivate class provides private implementation for the FileCreatorMessage.
120  *
121  * \sa FileCreatorMessage
122  */
123 
124 /*!
125  * \internal
126  *
127  * Constructs a FileCreatorMessagePrivate object with public implementation \a q.
128  *
129  * \param q Pointer to public implementaton.
130  */
131 FileCreatorMessagePrivate::FileCreatorMessagePrivate(FileCreatorMessage * const q)
133  , softwareVersion(0xFFFF)
134  , hardwareVersion(0xFF)
135 {
136  globalMessageNumber = MesgNum::FileCreator;
137 }
138 
139 /*!
140  * \internal
141  *
142  * Destroys the FileCreatorMessagePrivate object.
143  */
145 {
146 
147 }
148 
150  const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)
151 {
152  switch (fieldId) {
153  case 0: // See Profile.xlsx::Messages:file_creator.softwareVersion
154  if (!verify(data, baseType, 2, FitBaseType::Uint16, "file_creator.softwareVersion")) return false;
155  this->softwareVersion = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
156  break;
157  case 1: // See Profile.xlsx::Messages:file_creator.hardwareVersion
158  if (!verify(data, baseType, 1, FitBaseType::Uint8, "file_creator.hardwareVersion")) return false;
159  this->hardwareVersion = static_cast<quint8>(data.at(0));
160  break;
161  default:
162  qWarning() << "ignoring unknown file_creator message field number" << fieldId << bigEndian;
163  // Fall through to return true, as its still 'safe' to continue parsing data messages.
164  }
165  return true;
166 }
167 
168 /// \endcond
169 
#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.
quint16 softwareVersion
The FileCreatorMessage FIT message's softwareVersion field.
quint8 hardwareVersion
The FileCreatorMessage FIT message's hardwareVersion field.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
The FileCreatorMessage class represents a FIT FileCreatorMessage data message.
quint16 softwareVersion() const
Returns the FileCreatorMessage data message's softwareVersion field's current value.
void setHardwareVersion(const quint8 hardwareVersion)
Sets the hardwareVersion field to hardwareVersion.
FileCreatorMessage()
Constructs a FileCreatorMessage object.
void setSoftwareVersion(const quint16 softwareVersion)
Sets the softwareVersion field to softwareVersion.
quint8 hardwareVersion() const
Returns the FileCreatorMessage data message's hardwareVersion field's current value.
Declares the FileCreatorMessage class.
Declares the FileCreatorMessagePrivate class.
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388