QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
monitoringmessage.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 MonitoringMessage, and MonitoringMessagePrivate classes.
28  */
29 
30 #include "monitoringmessage.h"
31 #include "monitoringmessage_p.h"
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class MonitoringMessage
40  *
41  * The MonitoringMessage class represents a FIT MonitoringMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a MonitoringMessage 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 MonitoringMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the MonitoringMessage data message's \c timestamp field's current value.
71  *
72  * Must align to logging interval, for example, time must be 00:00:00 for daily log.
73  *
74  * \return the \c timestamp field value.
75  */
77 {
78  Q_D(const MonitoringMessage);
79  return d->timestamp;
80 }
81 
82 /*!
83  * Returns the MonitoringMessage data message's \c deviceIndex field's current value.
84  *
85  * Associates this data to device_info message. Not required for file with single device
86  * (sensor).
87  *
88  * \return the \c deviceIndex field value.
89  */
91 {
92  Q_D(const MonitoringMessage);
93  return d->deviceIndex;
94 }
95 
96 /*!
97  * Returns the MonitoringMessage data message's \c calories field's current value.
98  *
99  * Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK
100  * documentation
101  *
102  * \return the \c calories field value.
103  */
105 {
106  Q_D(const MonitoringMessage);
107  return d->calories;
108 }
109 
110 /*!
111  * Returns the MonitoringMessage data message's \c distance field's current value.
112  *
113  * Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK
114  * documentation.
115  *
116  * \return the \c distance field value.
117  */
119 {
120  Q_D(const MonitoringMessage);
121  return d->distance;
122 }
123 
124 /*!
125  * Returns the MonitoringMessage data message's \c cycles field's current value.
126  *
127  * Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK
128  * documentation.
129  *
130  * \return the \c cycles field value.
131  */
133 {
134  Q_D(const MonitoringMessage);
135  return d->cycles;
136 }
137 
138 /*!
139  * Returns the MonitoringMessage data message's \c activeTime field's current value.
140  *
141  * \return the \c activeTime field value.
142  */
144 {
145  Q_D(const MonitoringMessage);
146  return d->activeTime;
147 }
148 
149 /*!
150  * Returns the MonitoringMessage data message's \c activityType field's current value.
151  *
152  * \return the \c activityType field value.
153  */
155 {
156  Q_D(const MonitoringMessage);
157  return d->activityType;
158 }
159 
160 /*!
161  * Returns the MonitoringMessage data message's \c activitySubtype field's current value.
162  *
163  * \return the \c activitySubtype field value.
164  */
166 {
167  Q_D(const MonitoringMessage);
168  return d->activitySubtype;
169 }
170 
171 /*!
172  * Returns the MonitoringMessage data message's \c activityLevel field's current value.
173  *
174  * \return the \c activityLevel field value.
175  */
177 {
178  Q_D(const MonitoringMessage);
179  return d->activityLevel;
180 }
181 
182 /*!
183  * Returns the MonitoringMessage data message's \c distance16 field's current value.
184  *
185  * \return the \c distance16 field value.
186  */
188 {
189  Q_D(const MonitoringMessage);
190  return d->distance16;
191 }
192 
193 /*!
194  * Returns the MonitoringMessage data message's \c cycles16 field's current value.
195  *
196  * \return the \c cycles16 field value.
197  */
199 {
200  Q_D(const MonitoringMessage);
201  return d->cycles16;
202 }
203 
204 /*!
205  * Returns the MonitoringMessage data message's \c activeTime16 field's current value.
206  *
207  * \return the \c activeTime16 field value.
208  */
210 {
211  Q_D(const MonitoringMessage);
212  return d->activeTime16;
213 }
214 
215 /*!
216  * Returns the MonitoringMessage data message's \c localTimestamp field's current value.
217  *
218  * Must align to logging interval, for example, time must be 00:00:00 for daily log.
219  *
220  * \return the \c localTimestamp field value.
221  */
223 {
224  Q_D(const MonitoringMessage);
225  return d->localTimestamp;
226 }
227 
228 /*!
229  * Returns the MonitoringMessage data message's \c temperature field's current value.
230  *
231  * Avg temperature during the logging interval ended at timestamp
232  *
233  * \return the \c temperature field value.
234  */
236 {
237  Q_D(const MonitoringMessage);
238  return d->temperature;
239 }
240 
241 /*!
242  * Returns the MonitoringMessage data message's \c temperatureMin field's current value.
243  *
244  * Min temperature during the logging interval ended at timestamp
245  *
246  * \return the \c temperatureMin field value.
247  */
249 {
250  Q_D(const MonitoringMessage);
251  return d->temperatureMin;
252 }
253 
254 /*!
255  * Returns the MonitoringMessage data message's \c temperatureMax field's current value.
256  *
257  * Max temperature during the logging interval ended at timestamp
258  *
259  * \return the \c temperatureMax field value.
260  */
262 {
263  Q_D(const MonitoringMessage);
264  return d->temperatureMax;
265 }
266 
267 /*!
268  * Returns the MonitoringMessage data message's \c activityTime field's current value.
269  *
270  * Indexed using minute_activity_level enum
271  *
272  * \return the \c activityTime field value.
273  */
275 {
276  Q_D(const MonitoringMessage);
277  return d->activityTime;
278 }
279 
280 /*!
281  * Returns the MonitoringMessage data message's \c activeCalories field's current value.
282  *
283  * \return the \c activeCalories field value.
284  */
286 {
287  Q_D(const MonitoringMessage);
288  return d->activeCalories;
289 }
290 
291 /*!
292  * Returns the MonitoringMessage data message's \c currentActivityTypeIntensity field's current value.
293  *
294  * Indicates single type / intensity for duration since last monitoring message.
295  *
296  * \return the \c currentActivityTypeIntensity field value.
297  */
299 {
300  Q_D(const MonitoringMessage);
301  return d->currentActivityTypeIntensity;
302 }
303 
304 /*!
305  * Returns the MonitoringMessage data message's \c timestampMin8 field's current value.
306  *
307  * \return the \c timestampMin8 field value.
308  */
310 {
311  Q_D(const MonitoringMessage);
312  return d->timestampMin8;
313 }
314 
315 /*!
316  * Returns the MonitoringMessage data message's \c timestamp16 field's current value.
317  *
318  * \return the \c timestamp16 field value.
319  */
321 {
322  Q_D(const MonitoringMessage);
323  return d->timestamp16;
324 }
325 
326 /*!
327  * Returns the MonitoringMessage data message's \c heartRate field's current value.
328  *
329  * \return the \c heartRate field value.
330  */
332 {
333  Q_D(const MonitoringMessage);
334  return d->heartRate;
335 }
336 
337 /*!
338  * Returns the MonitoringMessage data message's \c intensity field's current value.
339  *
340  * \return the \c intensity field value.
341  */
343 {
344  Q_D(const MonitoringMessage);
345  return d->intensity;
346 }
347 
348 /*!
349  * Returns the MonitoringMessage data message's \c durationMin field's current value.
350  *
351  * \return the \c durationMin field value.
352  */
354 {
355  Q_D(const MonitoringMessage);
356  return d->durationMin;
357 }
358 
359 /*!
360  * Returns the MonitoringMessage data message's \c duration field's current value.
361  *
362  * \return the \c duration field value.
363  */
365 {
366  Q_D(const MonitoringMessage);
367  return d->duration;
368 }
369 
370 /*!
371  * Returns the MonitoringMessage data message's \c ascent field's current value.
372  *
373  * \return the \c ascent field value.
374  */
376 {
377  Q_D(const MonitoringMessage);
378  return d->ascent;
379 }
380 
381 /*!
382  * Returns the MonitoringMessage data message's \c descent field's current value.
383  *
384  * \return the \c descent field value.
385  */
387 {
388  Q_D(const MonitoringMessage);
389  return d->descent;
390 }
391 
392 /*!
393  * Returns the MonitoringMessage data message's \c moderateActivityMinutes field's current value.
394  *
395  * \return the \c moderateActivityMinutes field value.
396  */
398 {
399  Q_D(const MonitoringMessage);
400  return d->moderateActivityMinutes;
401 }
402 
403 /*!
404  * Returns the MonitoringMessage data message's \c vigorousActivityMinutes field's current value.
405  *
406  * \return the \c vigorousActivityMinutes field value.
407  */
409 {
410  Q_D(const MonitoringMessage);
411  return d->vigorousActivityMinutes;
412 }
413 
414 /*!
415  * Sets the \c timestamp field to \a timestamp.
416  *
417  * \param timestamp The field value to set.
418  */
420 {
421  Q_D(MonitoringMessage);
422  d->timestamp = timestamp;
423 }
424 /*!
425  * Sets the \c deviceIndex field to \a deviceIndex.
426  *
427  * \param deviceIndex The field value to set.
428  */
430 {
431  Q_D(MonitoringMessage);
432  d->deviceIndex = deviceIndex;
433 }
434 /*!
435  * Sets the \c calories field to \a calories.
436  *
437  * \param calories The field value to set.
438  */
439 void MonitoringMessage::setCalories(const quint16 calories)
440 {
441  Q_D(MonitoringMessage);
442  d->calories = calories;
443 }
444 /*!
445  * Sets the \c distance field to \a distance.
446  *
447  * \param distance The field value to set.
448  */
449 void MonitoringMessage::setDistance(const quint32 distance)
450 {
451  Q_D(MonitoringMessage);
452  d->distance = distance;
453 }
454 /*!
455  * Sets the \c cycles field to \a cycles.
456  *
457  * \param cycles The field value to set.
458  */
459 void MonitoringMessage::setCycles(const quint32 cycles)
460 {
461  Q_D(MonitoringMessage);
462  d->cycles = cycles;
463 }
464 /*!
465  * Sets the \c activeTime field to \a activeTime.
466  *
467  * \param activeTime The field value to set.
468  */
469 void MonitoringMessage::setActiveTime(const quint32 activeTime)
470 {
471  Q_D(MonitoringMessage);
472  d->activeTime = activeTime;
473 }
474 /*!
475  * Sets the \c activityType field to \a activityType.
476  *
477  * \param activityType The field value to set.
478  */
480 {
481  Q_D(MonitoringMessage);
482  d->activityType = activityType;
483 }
484 /*!
485  * Sets the \c activitySubtype field to \a activitySubtype.
486  *
487  * \param activitySubtype The field value to set.
488  */
490 {
491  Q_D(MonitoringMessage);
492  d->activitySubtype = activitySubtype;
493 }
494 /*!
495  * Sets the \c activityLevel field to \a activityLevel.
496  *
497  * \param activityLevel The field value to set.
498  */
500 {
501  Q_D(MonitoringMessage);
502  d->activityLevel = activityLevel;
503 }
504 /*!
505  * Sets the \c distance16 field to \a distance16.
506  *
507  * \param distance16 The field value to set.
508  */
509 void MonitoringMessage::setDistance16(const quint16 distance16)
510 {
511  Q_D(MonitoringMessage);
512  d->distance16 = distance16;
513 }
514 /*!
515  * Sets the \c cycles16 field to \a cycles16.
516  *
517  * \param cycles16 The field value to set.
518  */
519 void MonitoringMessage::setCycles16(const quint16 cycles16)
520 {
521  Q_D(MonitoringMessage);
522  d->cycles16 = cycles16;
523 }
524 /*!
525  * Sets the \c activeTime16 field to \a activeTime16.
526  *
527  * \param activeTime16 The field value to set.
528  */
529 void MonitoringMessage::setActiveTime16(const quint16 activeTime16)
530 {
531  Q_D(MonitoringMessage);
532  d->activeTime16 = activeTime16;
533 }
534 /*!
535  * Sets the \c localTimestamp field to \a localTimestamp.
536  *
537  * \param localTimestamp The field value to set.
538  */
540 {
541  Q_D(MonitoringMessage);
542  d->localTimestamp = localTimestamp;
543 }
544 /*!
545  * Sets the \c temperature field to \a temperature.
546  *
547  * \param temperature The field value to set.
548  */
549 void MonitoringMessage::setTemperature(const qint16 temperature)
550 {
551  Q_D(MonitoringMessage);
552  d->temperature = temperature;
553 }
554 /*!
555  * Sets the \c temperatureMin field to \a temperatureMin.
556  *
557  * \param temperatureMin The field value to set.
558  */
559 void MonitoringMessage::setTemperatureMin(const qint16 temperatureMin)
560 {
561  Q_D(MonitoringMessage);
562  d->temperatureMin = temperatureMin;
563 }
564 /*!
565  * Sets the \c temperatureMax field to \a temperatureMax.
566  *
567  * \param temperatureMax The field value to set.
568  */
569 void MonitoringMessage::setTemperatureMax(const qint16 temperatureMax)
570 {
571  Q_D(MonitoringMessage);
572  d->temperatureMax = temperatureMax;
573 }
574 /*!
575  * Sets the \c activityTime field to \a activityTime.
576  *
577  * \param activityTime The field value to set.
578  */
579 void MonitoringMessage::setActivityTime(const quint16 activityTime)
580 {
581  Q_D(MonitoringMessage);
582  d->activityTime = activityTime;
583 }
584 /*!
585  * Sets the \c activeCalories field to \a activeCalories.
586  *
587  * \param activeCalories The field value to set.
588  */
589 void MonitoringMessage::setActiveCalories(const quint16 activeCalories)
590 {
591  Q_D(MonitoringMessage);
592  d->activeCalories = activeCalories;
593 }
594 /*!
595  * Sets the \c currentActivityTypeIntensity field to \a currentActivityTypeIntensity.
596  *
597  * \param currentActivityTypeIntensity The field value to set.
598  */
599 void MonitoringMessage::setCurrentActivityTypeIntensity(const quint8 currentActivityTypeIntensity)
600 {
601  Q_D(MonitoringMessage);
602  d->currentActivityTypeIntensity = currentActivityTypeIntensity;
603 }
604 /*!
605  * Sets the \c timestampMin8 field to \a timestampMin8.
606  *
607  * \param timestampMin8 The field value to set.
608  */
609 void MonitoringMessage::setTimestampMin8(const quint8 timestampMin8)
610 {
611  Q_D(MonitoringMessage);
612  d->timestampMin8 = timestampMin8;
613 }
614 /*!
615  * Sets the \c timestamp16 field to \a timestamp16.
616  *
617  * \param timestamp16 The field value to set.
618  */
619 void MonitoringMessage::setTimestamp16(const quint16 timestamp16)
620 {
621  Q_D(MonitoringMessage);
622  d->timestamp16 = timestamp16;
623 }
624 /*!
625  * Sets the \c heartRate field to \a heartRate.
626  *
627  * \param heartRate The field value to set.
628  */
629 void MonitoringMessage::setHeartRate(const quint8 heartRate)
630 {
631  Q_D(MonitoringMessage);
632  d->heartRate = heartRate;
633 }
634 /*!
635  * Sets the \c intensity field to \a intensity.
636  *
637  * \param intensity The field value to set.
638  */
639 void MonitoringMessage::setIntensity(const quint8 intensity)
640 {
641  Q_D(MonitoringMessage);
642  d->intensity = intensity;
643 }
644 /*!
645  * Sets the \c durationMin field to \a durationMin.
646  *
647  * \param durationMin The field value to set.
648  */
649 void MonitoringMessage::setDurationMin(const quint16 durationMin)
650 {
651  Q_D(MonitoringMessage);
652  d->durationMin = durationMin;
653 }
654 /*!
655  * Sets the \c duration field to \a duration.
656  *
657  * \param duration The field value to set.
658  */
659 void MonitoringMessage::setDuration(const quint32 duration)
660 {
661  Q_D(MonitoringMessage);
662  d->duration = duration;
663 }
664 /*!
665  * Sets the \c ascent field to \a ascent.
666  *
667  * \param ascent The field value to set.
668  */
669 void MonitoringMessage::setAscent(const quint32 ascent)
670 {
671  Q_D(MonitoringMessage);
672  d->ascent = ascent;
673 }
674 /*!
675  * Sets the \c descent field to \a descent.
676  *
677  * \param descent The field value to set.
678  */
679 void MonitoringMessage::setDescent(const quint32 descent)
680 {
681  Q_D(MonitoringMessage);
682  d->descent = descent;
683 }
684 /*!
685  * Sets the \c moderateActivityMinutes field to \a moderateActivityMinutes.
686  *
687  * \param moderateActivityMinutes The field value to set.
688  */
689 void MonitoringMessage::setModerateActivityMinutes(const quint16 moderateActivityMinutes)
690 {
691  Q_D(MonitoringMessage);
692  d->moderateActivityMinutes = moderateActivityMinutes;
693 }
694 /*!
695  * Sets the \c vigorousActivityMinutes field to \a vigorousActivityMinutes.
696  *
697  * \param vigorousActivityMinutes The field value to set.
698  */
699 void MonitoringMessage::setVigorousActivityMinutes(const quint16 vigorousActivityMinutes)
700 {
701  Q_D(MonitoringMessage);
702  d->vigorousActivityMinutes = vigorousActivityMinutes;
703 }
704 
705 /// \cond internal
706 
707 /*!
708  * \internal
709  *
710  * \class MonitoringMessagePrivate
711  *
712  * The MonitoringMessagePrivate class provides private implementation for the MonitoringMessage.
713  *
714  * \sa MonitoringMessage
715  */
716 
717 /*!
718  * \internal
719  *
720  * Constructs a MonitoringMessagePrivate object with public implementation \a q.
721  *
722  * \param q Pointer to public implementaton.
723  */
724 MonitoringMessagePrivate::MonitoringMessagePrivate(MonitoringMessage * const q)
726  , timestamp(static_cast<DateTime>(-1))
727  , deviceIndex(static_cast<DeviceIndex>(-1))
728  , calories(0xFFFF)
729  , distance(0xFFFFFFFF)
730  , cycles(0xFFFFFFFF)
731  , activeTime(0xFFFFFFFF)
732  , activityType(static_cast<ActivityType>(-1))
733  , activitySubtype(static_cast<ActivitySubtype>(-1))
734  , activityLevel(static_cast<ActivityLevel>(-1))
735  , distance16(0xFFFF)
736  , cycles16(0xFFFF)
737  , activeTime16(0xFFFF)
738  , localTimestamp(static_cast<LocalDateTime>(-1))
739  , temperature(0x7FFF)
740  , temperatureMin(0x7FFF)
741  , temperatureMax(0x7FFF)
742  , activityTime(0xFFFF)
743  , activeCalories(0xFFFF)
744  , currentActivityTypeIntensity(0xFF)
745  , timestampMin8(0xFF)
746  , timestamp16(0xFFFF)
747  , heartRate(0xFF)
748  , intensity(0xFF)
749  , durationMin(0xFFFF)
750  , duration(0xFFFFFFFF)
751  , ascent(0xFFFFFFFF)
752  , descent(0xFFFFFFFF)
753  , moderateActivityMinutes(0xFFFF)
754  , vigorousActivityMinutes(0xFFFF)
755 {
756  globalMessageNumber = MesgNum::Monitoring;
757 }
758 
759 /*!
760  * \internal
761  *
762  * Destroys the MonitoringMessagePrivate object.
763  */
765 {
766 
767 }
768 
770  const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)
771 {
772  switch (fieldId) {
773  case 253: // See Profile.xlsx::Messages:monitoring.timestamp
774  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.timestamp")) return false;
775  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
776  break;
777  case 0: // See Profile.xlsx::Messages:monitoring.deviceIndex
778  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.deviceIndex")) return false;
779  this->deviceIndex = static_cast<DeviceIndex>(data.at(0));
780  break;
781  case 1: // See Profile.xlsx::Messages:monitoring.calories
782  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.calories")) return false;
783  this->calories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
784  break;
785  case 2: // See Profile.xlsx::Messages:monitoring.distance
786  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.distance")) return false;
787  this->distance = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
788  break;
789  case 3: // See Profile.xlsx::Messages:monitoring.cycles
790  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.cycles")) return false;
791  this->cycles = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
792  break;
793  case 4: // See Profile.xlsx::Messages:monitoring.activeTime
794  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.activeTime")) return false;
795  this->activeTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
796  break;
797  case 5: // See Profile.xlsx::Messages:monitoring.activityType
798  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activityType")) return false;
799  this->activityType = static_cast<ActivityType>(data.at(0));
800  break;
801  case 6: // See Profile.xlsx::Messages:monitoring.activitySubtype
802  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activitySubtype")) return false;
803  this->activitySubtype = static_cast<ActivitySubtype>(data.at(0));
804  break;
805  case 7: // See Profile.xlsx::Messages:monitoring.activityLevel
806  if (!verify(data, baseType, 1, FitBaseType::Enum, "monitoring.activityLevel")) return false;
807  this->activityLevel = static_cast<ActivityLevel>(data.at(0));
808  break;
809  case 8: // See Profile.xlsx::Messages:monitoring.distance16
810  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.distance16")) return false;
811  this->distance16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
812  break;
813  case 9: // See Profile.xlsx::Messages:monitoring.cycles16
814  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.cycles16")) return false;
815  this->cycles16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
816  break;
817  case 10: // See Profile.xlsx::Messages:monitoring.activeTime16
818  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activeTime16")) return false;
819  this->activeTime16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
820  break;
821  case 11: // See Profile.xlsx::Messages:monitoring.localTimestamp
822  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.localTimestamp")) return false;
823  this->localTimestamp = static_cast<LocalDateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
824  break;
825  case 12: // See Profile.xlsx::Messages:monitoring.temperature
826  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperature")) return false;
827  this->temperature = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
828  break;
829  case 14: // See Profile.xlsx::Messages:monitoring.temperatureMin
830  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperatureMin")) return false;
831  this->temperatureMin = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
832  break;
833  case 15: // See Profile.xlsx::Messages:monitoring.temperatureMax
834  if (!verify(data, baseType, 2, FitBaseType::Sint16, "monitoring.temperatureMax")) return false;
835  this->temperatureMax = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
836  break;
837  case 16: // See Profile.xlsx::Messages:monitoring.activityTime
838  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activityTime")) return false;
839  this->activityTime = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
840  break;
841  case 19: // See Profile.xlsx::Messages:monitoring.activeCalories
842  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.activeCalories")) return false;
843  this->activeCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
844  break;
845  case 24: // See Profile.xlsx::Messages:monitoring.currentActivityTypeIntensity
846  if (!verify(data, baseType, 1, FitBaseType::Byte, "monitoring.currentActivityTypeIntensity")) return false;
847  this->currentActivityTypeIntensity = static_cast<quint8>(data.at(0));
848  break;
849  case 25: // See Profile.xlsx::Messages:monitoring.timestampMin8
850  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.timestampMin8")) return false;
851  this->timestampMin8 = static_cast<quint8>(data.at(0));
852  break;
853  case 26: // See Profile.xlsx::Messages:monitoring.timestamp16
854  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.timestamp16")) return false;
855  this->timestamp16 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
856  break;
857  case 27: // See Profile.xlsx::Messages:monitoring.heartRate
858  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.heartRate")) return false;
859  this->heartRate = static_cast<quint8>(data.at(0));
860  break;
861  case 28: // See Profile.xlsx::Messages:monitoring.intensity
862  if (!verify(data, baseType, 1, FitBaseType::Uint8, "monitoring.intensity")) return false;
863  this->intensity = static_cast<quint8>(data.at(0));
864  break;
865  case 29: // See Profile.xlsx::Messages:monitoring.durationMin
866  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.durationMin")) return false;
867  this->durationMin = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
868  break;
869  case 30: // See Profile.xlsx::Messages:monitoring.duration
870  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.duration")) return false;
871  this->duration = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
872  break;
873  case 31: // See Profile.xlsx::Messages:monitoring.ascent
874  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.ascent")) return false;
875  this->ascent = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
876  break;
877  case 32: // See Profile.xlsx::Messages:monitoring.descent
878  if (!verify(data, baseType, 4, FitBaseType::Uint32, "monitoring.descent")) return false;
879  this->descent = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
880  break;
881  case 33: // See Profile.xlsx::Messages:monitoring.moderateActivityMinutes
882  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.moderateActivityMinutes")) return false;
883  this->moderateActivityMinutes = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
884  break;
885  case 34: // See Profile.xlsx::Messages:monitoring.vigorousActivityMinutes
886  if (!verify(data, baseType, 2, FitBaseType::Uint16, "monitoring.vigorousActivityMinutes")) return false;
887  this->vigorousActivityMinutes = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
888  break;
889  default:
890  qWarning() << "ignoring unknown monitoring message field number" << fieldId << bigEndian;
891  // Fall through to return true, as its still 'safe' to continue parsing data messages.
892  }
893  return true;
894 }
895 
896 /// \endcond
897 
#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 distance16
The MonitoringMessage FIT message's distance16 field.
quint8 heartRate
The MonitoringMessage FIT message's heartRate field.
quint16 activeCalories
The MonitoringMessage FIT message's activeCalories field.
DeviceIndex deviceIndex
The MonitoringMessage FIT message's deviceIndex field.
quint8 timestampMin8
The MonitoringMessage FIT message's timestampMin8 field.
quint16 durationMin
The MonitoringMessage FIT message's durationMin field.
quint32 activeTime
The MonitoringMessage FIT message's activeTime field.
quint32 descent
The MonitoringMessage FIT message's descent field.
quint16 activeTime16
The MonitoringMessage FIT message's activeTime16 field.
quint16 vigorousActivityMinutes
The MonitoringMessage FIT message's vigorousActivityMinutes field.
quint32 ascent
The MonitoringMessage FIT message's ascent field.
quint32 cycles
The MonitoringMessage FIT message's cycles field.
qint16 temperatureMax
The MonitoringMessage FIT message's temperatureMax field.
ActivitySubtype activitySubtype
The MonitoringMessage FIT message's activitySubtype field.
quint8 currentActivityTypeIntensity
The MonitoringMessage FIT message's currentActivityTypeIntensity field.
ActivityType activityType
The MonitoringMessage FIT message's activityType field.
quint8 intensity
The MonitoringMessage FIT message's intensity field.
quint16 activityTime
The MonitoringMessage FIT message's activityTime field.
LocalDateTime localTimestamp
The MonitoringMessage FIT message's localTimestamp field.
quint16 moderateActivityMinutes
The MonitoringMessage FIT message's moderateActivityMinutes field.
qint16 temperature
The MonitoringMessage FIT message's temperature field.
quint16 timestamp16
The MonitoringMessage FIT message's timestamp16 field.
qint16 temperatureMin
The MonitoringMessage FIT message's temperatureMin field.
quint16 calories
The MonitoringMessage FIT message's calories field.
ActivityLevel activityLevel
The MonitoringMessage FIT message's activityLevel field.
quint32 distance
The MonitoringMessage FIT message's distance field.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
quint32 duration
The MonitoringMessage FIT message's duration field.
quint16 cycles16
The MonitoringMessage FIT message's cycles16 field.
DateTime timestamp
The MonitoringMessage FIT message's timestamp field.
The MonitoringMessage class represents a FIT MonitoringMessage data message.
quint8 timestampMin8() const
Returns the MonitoringMessage data message's timestampMin8 field's current value.
quint16 durationMin() const
Returns the MonitoringMessage data message's durationMin field's current value.
DateTime timestamp() const
Returns the MonitoringMessage data message's timestamp field's current value.
quint32 cycles() const
Returns the MonitoringMessage data message's cycles field's current value.
void setCalories(const quint16 calories)
Sets the calories field to calories.
void setActivityType(const ActivityType activityType)
Sets the activityType field to activityType.
quint16 moderateActivityMinutes() const
Returns the MonitoringMessage data message's moderateActivityMinutes field's current value.
quint16 activityTime() const
Returns the MonitoringMessage data message's activityTime field's current value.
quint16 calories() const
Returns the MonitoringMessage data message's calories field's current value.
quint8 heartRate() const
Returns the MonitoringMessage data message's heartRate field's current value.
quint8 currentActivityTypeIntensity() const
Returns the MonitoringMessage data message's currentActivityTypeIntensity field's current value.
quint16 activeCalories() const
Returns the MonitoringMessage data message's activeCalories field's current value.
qint16 temperatureMin() const
Returns the MonitoringMessage data message's temperatureMin field's current value.
void setHeartRate(const quint8 heartRate)
Sets the heartRate field to heartRate.
void setTimestamp16(const quint16 timestamp16)
Sets the timestamp16 field to timestamp16.
quint16 activeTime16() const
Returns the MonitoringMessage data message's activeTime16 field's current value.
void setIntensity(const quint8 intensity)
Sets the intensity field to intensity.
void setCycles16(const quint16 cycles16)
Sets the cycles16 field to cycles16.
qint16 temperatureMax() const
Returns the MonitoringMessage data message's temperatureMax field's current value.
void setActivityLevel(const ActivityLevel activityLevel)
Sets the activityLevel field to activityLevel.
void setDuration(const quint32 duration)
Sets the duration field to duration.
void setActiveTime16(const quint16 activeTime16)
Sets the activeTime16 field to activeTime16.
void setTemperatureMax(const qint16 temperatureMax)
Sets the temperatureMax field to temperatureMax.
void setActivitySubtype(const ActivitySubtype activitySubtype)
Sets the activitySubtype field to activitySubtype.
void setDeviceIndex(const DeviceIndex deviceIndex)
Sets the deviceIndex field to deviceIndex.
void setTemperatureMin(const qint16 temperatureMin)
Sets the temperatureMin field to temperatureMin.
quint8 intensity() const
Returns the MonitoringMessage data message's intensity field's current value.
quint16 distance16() const
Returns the MonitoringMessage data message's distance16 field's current value.
void setActivityTime(const quint16 activityTime)
Sets the activityTime field to activityTime.
quint32 duration() const
Returns the MonitoringMessage data message's duration field's current value.
void setModerateActivityMinutes(const quint16 moderateActivityMinutes)
Sets the moderateActivityMinutes field to moderateActivityMinutes.
void setCurrentActivityTypeIntensity(const quint8 currentActivityTypeIntensity)
Sets the currentActivityTypeIntensity field to currentActivityTypeIntensity.
void setVigorousActivityMinutes(const quint16 vigorousActivityMinutes)
Sets the vigorousActivityMinutes field to vigorousActivityMinutes.
qint16 temperature() const
Returns the MonitoringMessage data message's temperature field's current value.
quint32 distance() const
Returns the MonitoringMessage data message's distance field's current value.
void setDurationMin(const quint16 durationMin)
Sets the durationMin field to durationMin.
quint32 ascent() const
Returns the MonitoringMessage data message's ascent field's current value.
void setActiveCalories(const quint16 activeCalories)
Sets the activeCalories field to activeCalories.
ActivityLevel activityLevel() const
Returns the MonitoringMessage data message's activityLevel field's current value.
void setDistance16(const quint16 distance16)
Sets the distance16 field to distance16.
quint16 cycles16() const
Returns the MonitoringMessage data message's cycles16 field's current value.
void setTemperature(const qint16 temperature)
Sets the temperature field to temperature.
void setAscent(const quint32 ascent)
Sets the ascent field to ascent.
LocalDateTime localTimestamp() const
Returns the MonitoringMessage data message's localTimestamp field's current value.
void setCycles(const quint32 cycles)
Sets the cycles field to cycles.
quint32 activeTime() const
Returns the MonitoringMessage data message's activeTime field's current value.
void setTimestamp(const DateTime timestamp)
Sets the timestamp field to timestamp.
void setDescent(const quint32 descent)
Sets the descent field to descent.
void setTimestampMin8(const quint8 timestampMin8)
Sets the timestampMin8 field to timestampMin8.
MonitoringMessage()
Constructs a MonitoringMessage object.
DeviceIndex deviceIndex() const
Returns the MonitoringMessage data message's deviceIndex field's current value.
void setDistance(const quint32 distance)
Sets the distance field to distance.
ActivityType activityType() const
Returns the MonitoringMessage data message's activityType field's current value.
ActivitySubtype activitySubtype() const
Returns the MonitoringMessage data message's activitySubtype field's current value.
void setLocalTimestamp(const LocalDateTime localTimestamp)
Sets the localTimestamp field to localTimestamp.
quint16 vigorousActivityMinutes() const
Returns the MonitoringMessage data message's vigorousActivityMinutes field's current value.
quint16 timestamp16() const
Returns the MonitoringMessage data message's timestamp16 field's current value.
quint32 descent() const
Returns the MonitoringMessage data message's descent field's current value.
void setActiveTime(const quint32 activeTime)
Sets the activeTime field to activeTime.
Declares the MonitoringMessage class.
Declares the MonitoringMessagePrivate class.
LocalDateTime
Seconds since 00:00 Dec 31 1989 in local time zone.
Definition: types.h:250
ActivityType
Garmin FIT ActivityType type.
Definition: types.h:2281
DeviceIndex
Garmin FIT DeviceIndex type.
Definition: types.h:278
FitBaseType
Garmin FIT FitBaseType type.
Definition: types.h:3388
ActivityLevel
Garmin FIT ActivityLevel type.
Definition: types.h:2334
ActivitySubtype
Garmin FIT ActivitySubtype type.
Definition: types.h:2302
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237