QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
recordmessage.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 RecordMessage, and RecordMessagePrivate classes.
28  */
29 
30 #include "recordmessage.h"
31 #include "recordmessage_p.h"
32 
33 #include <QDebug>
34 #include <QtEndian>
35 
37 
38 /*!
39  * \class RecordMessage
40  *
41  * The RecordMessage class represents a FIT RecordMessage data message.
42  *
43  * \sa DataMessage
44  */
45 
46 /*!
47  * Constructs a RecordMessage 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 RecordMessage object with private implementation \a d.
61  *
62  * \param d Pointer to private implementation.
63  */
65 {
66 
67 }
68 
69 /*!
70  * Returns the RecordMessage data message's \c timestamp field's current value.
71  *
72  * \return the \c timestamp field value.
73  */
75 {
76  Q_D(const RecordMessage);
77  return d->timestamp;
78 }
79 
80 /*!
81  * Returns the RecordMessage data message's \c positionLat field's current value.
82  *
83  * \return the \c positionLat field value.
84  */
86 {
87  Q_D(const RecordMessage);
88  return d->positionLat;
89 }
90 
91 /*!
92  * Returns the RecordMessage data message's \c positionLong field's current value.
93  *
94  * \return the \c positionLong field value.
95  */
97 {
98  Q_D(const RecordMessage);
99  return d->positionLong;
100 }
101 
102 /*!
103  * Returns the RecordMessage data message's \c altitude field's current value.
104  *
105  * \return the \c altitude field value.
106  */
107 quint16 RecordMessage::altitude() const
108 {
109  Q_D(const RecordMessage);
110  return d->altitude;
111 }
112 
113 /*!
114  * Returns the RecordMessage data message's \c heartRate field's current value.
115  *
116  * \return the \c heartRate field value.
117  */
119 {
120  Q_D(const RecordMessage);
121  return d->heartRate;
122 }
123 
124 /*!
125  * Returns the RecordMessage data message's \c cadence field's current value.
126  *
127  * \return the \c cadence field value.
128  */
130 {
131  Q_D(const RecordMessage);
132  return d->cadence;
133 }
134 
135 /*!
136  * Returns the RecordMessage data message's \c distance field's current value.
137  *
138  * \return the \c distance field value.
139  */
140 quint32 RecordMessage::distance() const
141 {
142  Q_D(const RecordMessage);
143  return d->distance;
144 }
145 
146 /*!
147  * Returns the RecordMessage data message's \c speed field's current value.
148  *
149  * \return the \c speed field value.
150  */
151 quint16 RecordMessage::speed() const
152 {
153  Q_D(const RecordMessage);
154  return d->speed;
155 }
156 
157 /*!
158  * Returns the RecordMessage data message's \c power field's current value.
159  *
160  * \return the \c power field value.
161  */
162 quint16 RecordMessage::power() const
163 {
164  Q_D(const RecordMessage);
165  return d->power;
166 }
167 
168 /*!
169  * Returns the RecordMessage data message's \c compressedSpeedDistance field's current value.
170  *
171  * \return the \c compressedSpeedDistance field value.
172  */
174 {
175  Q_D(const RecordMessage);
176  return d->compressedSpeedDistance;
177 }
178 
179 /*!
180  * Returns the RecordMessage data message's \c grade field's current value.
181  *
182  * \return the \c grade field value.
183  */
184 qint16 RecordMessage::grade() const
185 {
186  Q_D(const RecordMessage);
187  return d->grade;
188 }
189 
190 /*!
191  * Returns the RecordMessage data message's \c resistance field's current value.
192  *
193  * Relative. 0 is none 254 is Max.
194  *
195  * \return the \c resistance field value.
196  */
198 {
199  Q_D(const RecordMessage);
200  return d->resistance;
201 }
202 
203 /*!
204  * Returns the RecordMessage data message's \c timeFromCourse field's current value.
205  *
206  * \return the \c timeFromCourse field value.
207  */
209 {
210  Q_D(const RecordMessage);
211  return d->timeFromCourse;
212 }
213 
214 /*!
215  * Returns the RecordMessage data message's \c cycleLength field's current value.
216  *
217  * \return the \c cycleLength field value.
218  */
220 {
221  Q_D(const RecordMessage);
222  return d->cycleLength;
223 }
224 
225 /*!
226  * Returns the RecordMessage data message's \c temperature field's current value.
227  *
228  * \return the \c temperature field value.
229  */
231 {
232  Q_D(const RecordMessage);
233  return d->temperature;
234 }
235 
236 /*!
237  * Returns the RecordMessage data message's \c speed1s field's current value.
238  *
239  * Speed at 1s intervals. Timestamp field indicates time of last array element.
240  *
241  * \return the \c speed1s field value.
242  */
244 {
245  Q_D(const RecordMessage);
246  return d->speed1s;
247 }
248 
249 /*!
250  * Returns the RecordMessage data message's \c cycles field's current value.
251  *
252  * \return the \c cycles field value.
253  */
254 quint8 RecordMessage::cycles() const
255 {
256  Q_D(const RecordMessage);
257  return d->cycles;
258 }
259 
260 /*!
261  * Returns the RecordMessage data message's \c totalCycles field's current value.
262  *
263  * \return the \c totalCycles field value.
264  */
266 {
267  Q_D(const RecordMessage);
268  return d->totalCycles;
269 }
270 
271 /*!
272  * Returns the RecordMessage data message's \c compressedAccumulatedPower field's current value.
273  *
274  * \return the \c compressedAccumulatedPower field value.
275  */
277 {
278  Q_D(const RecordMessage);
279  return d->compressedAccumulatedPower;
280 }
281 
282 /*!
283  * Returns the RecordMessage data message's \c accumulatedPower field's current value.
284  *
285  * \return the \c accumulatedPower field value.
286  */
288 {
289  Q_D(const RecordMessage);
290  return d->accumulatedPower;
291 }
292 
293 /*!
294  * Returns the RecordMessage data message's \c leftRightBalance field's current value.
295  *
296  * \return the \c leftRightBalance field value.
297  */
299 {
300  Q_D(const RecordMessage);
301  return d->leftRightBalance;
302 }
303 
304 /*!
305  * Returns the RecordMessage data message's \c gpsAccuracy field's current value.
306  *
307  * \return the \c gpsAccuracy field value.
308  */
310 {
311  Q_D(const RecordMessage);
312  return d->gpsAccuracy;
313 }
314 
315 /*!
316  * Returns the RecordMessage data message's \c verticalSpeed field's current value.
317  *
318  * \return the \c verticalSpeed field value.
319  */
321 {
322  Q_D(const RecordMessage);
323  return d->verticalSpeed;
324 }
325 
326 /*!
327  * Returns the RecordMessage data message's \c calories field's current value.
328  *
329  * \return the \c calories field value.
330  */
331 quint16 RecordMessage::calories() const
332 {
333  Q_D(const RecordMessage);
334  return d->calories;
335 }
336 
337 /*!
338  * Returns the RecordMessage data message's \c verticalOscillation field's current value.
339  *
340  * \return the \c verticalOscillation field value.
341  */
343 {
344  Q_D(const RecordMessage);
345  return d->verticalOscillation;
346 }
347 
348 /*!
349  * Returns the RecordMessage data message's \c stanceTimePercent field's current value.
350  *
351  * \return the \c stanceTimePercent field value.
352  */
354 {
355  Q_D(const RecordMessage);
356  return d->stanceTimePercent;
357 }
358 
359 /*!
360  * Returns the RecordMessage data message's \c stanceTime field's current value.
361  *
362  * \return the \c stanceTime field value.
363  */
365 {
366  Q_D(const RecordMessage);
367  return d->stanceTime;
368 }
369 
370 /*!
371  * Returns the RecordMessage data message's \c activityType field's current value.
372  *
373  * \return the \c activityType field value.
374  */
376 {
377  Q_D(const RecordMessage);
378  return d->activityType;
379 }
380 
381 /*!
382  * Returns the RecordMessage data message's \c leftTorqueEffectiveness field's current value.
383  *
384  * \return the \c leftTorqueEffectiveness field value.
385  */
387 {
388  Q_D(const RecordMessage);
389  return d->leftTorqueEffectiveness;
390 }
391 
392 /*!
393  * Returns the RecordMessage data message's \c rightTorqueEffectiveness field's current value.
394  *
395  * \return the \c rightTorqueEffectiveness field value.
396  */
398 {
399  Q_D(const RecordMessage);
400  return d->rightTorqueEffectiveness;
401 }
402 
403 /*!
404  * Returns the RecordMessage data message's \c leftPedalSmoothness field's current value.
405  *
406  * \return the \c leftPedalSmoothness field value.
407  */
409 {
410  Q_D(const RecordMessage);
411  return d->leftPedalSmoothness;
412 }
413 
414 /*!
415  * Returns the RecordMessage data message's \c rightPedalSmoothness field's current value.
416  *
417  * \return the \c rightPedalSmoothness field value.
418  */
420 {
421  Q_D(const RecordMessage);
422  return d->rightPedalSmoothness;
423 }
424 
425 /*!
426  * Returns the RecordMessage data message's \c combinedPedalSmoothness field's current value.
427  *
428  * \return the \c combinedPedalSmoothness field value.
429  */
431 {
432  Q_D(const RecordMessage);
433  return d->combinedPedalSmoothness;
434 }
435 
436 /*!
437  * Returns the RecordMessage data message's \c time128 field's current value.
438  *
439  * \return the \c time128 field value.
440  */
442 {
443  Q_D(const RecordMessage);
444  return d->time128;
445 }
446 
447 /*!
448  * Returns the RecordMessage data message's \c strokeType field's current value.
449  *
450  * \return the \c strokeType field value.
451  */
453 {
454  Q_D(const RecordMessage);
455  return d->strokeType;
456 }
457 
458 /*!
459  * Returns the RecordMessage data message's \c zone field's current value.
460  *
461  * \return the \c zone field value.
462  */
463 quint8 RecordMessage::zone() const
464 {
465  Q_D(const RecordMessage);
466  return d->zone;
467 }
468 
469 /*!
470  * Returns the RecordMessage data message's \c ballSpeed field's current value.
471  *
472  * \return the \c ballSpeed field value.
473  */
475 {
476  Q_D(const RecordMessage);
477  return d->ballSpeed;
478 }
479 
480 /*!
481  * Returns the RecordMessage data message's \c cadence256 field's current value.
482  *
483  * Log cadence and fractional cadence for backwards compatability
484  *
485  * \return the \c cadence256 field value.
486  */
488 {
489  Q_D(const RecordMessage);
490  return d->cadence256;
491 }
492 
493 /*!
494  * Returns the RecordMessage data message's \c fractionalCadence field's current value.
495  *
496  * \return the \c fractionalCadence field value.
497  */
499 {
500  Q_D(const RecordMessage);
501  return d->fractionalCadence;
502 }
503 
504 /*!
505  * Returns the RecordMessage data message's \c totalHemoglobinConc field's current value.
506  *
507  * Total saturated and unsaturated hemoglobin
508  *
509  * \return the \c totalHemoglobinConc field value.
510  */
512 {
513  Q_D(const RecordMessage);
514  return d->totalHemoglobinConc;
515 }
516 
517 /*!
518  * Returns the RecordMessage data message's \c totalHemoglobinConcMin field's current value.
519  *
520  * Min saturated and unsaturated hemoglobin
521  *
522  * \return the \c totalHemoglobinConcMin field value.
523  */
525 {
526  Q_D(const RecordMessage);
527  return d->totalHemoglobinConcMin;
528 }
529 
530 /*!
531  * Returns the RecordMessage data message's \c totalHemoglobinConcMax field's current value.
532  *
533  * Max saturated and unsaturated hemoglobin
534  *
535  * \return the \c totalHemoglobinConcMax field value.
536  */
538 {
539  Q_D(const RecordMessage);
540  return d->totalHemoglobinConcMax;
541 }
542 
543 /*!
544  * Returns the RecordMessage data message's \c saturatedHemoglobinPercent field's current value.
545  *
546  * Percentage of hemoglobin saturated with oxygen
547  *
548  * \return the \c saturatedHemoglobinPercent field value.
549  */
551 {
552  Q_D(const RecordMessage);
553  return d->saturatedHemoglobinPercent;
554 }
555 
556 /*!
557  * Returns the RecordMessage data message's \c saturatedHemoglobinPercentMin field's current value.
558  *
559  * Min percentage of hemoglobin saturated with oxygen
560  *
561  * \return the \c saturatedHemoglobinPercentMin field value.
562  */
564 {
565  Q_D(const RecordMessage);
566  return d->saturatedHemoglobinPercentMin;
567 }
568 
569 /*!
570  * Returns the RecordMessage data message's \c saturatedHemoglobinPercentMax field's current value.
571  *
572  * Max percentage of hemoglobin saturated with oxygen
573  *
574  * \return the \c saturatedHemoglobinPercentMax field value.
575  */
577 {
578  Q_D(const RecordMessage);
579  return d->saturatedHemoglobinPercentMax;
580 }
581 
582 /*!
583  * Returns the RecordMessage data message's \c deviceIndex field's current value.
584  *
585  * \return the \c deviceIndex field value.
586  */
588 {
589  Q_D(const RecordMessage);
590  return d->deviceIndex;
591 }
592 
593 /*!
594  * Returns the RecordMessage data message's \c leftPco field's current value.
595  *
596  * Left platform center offset
597  *
598  * \return the \c leftPco field value.
599  */
601 {
602  Q_D(const RecordMessage);
603  return d->leftPco;
604 }
605 
606 /*!
607  * Returns the RecordMessage data message's \c rightPco field's current value.
608  *
609  * Right platform center offset
610  *
611  * \return the \c rightPco field value.
612  */
614 {
615  Q_D(const RecordMessage);
616  return d->rightPco;
617 }
618 
619 /*!
620  * Returns the RecordMessage data message's \c leftPowerPhase field's current value.
621  *
622  * Left power phase angles. Data value indexes defined by power_phase_type.
623  *
624  * \return the \c leftPowerPhase field value.
625  */
627 {
628  Q_D(const RecordMessage);
629  return d->leftPowerPhase;
630 }
631 
632 /*!
633  * Returns the RecordMessage data message's \c leftPowerPhasePeak field's current value.
634  *
635  * Left power phase peak angles. Data value indexes defined by power_phase_type.
636  *
637  * \return the \c leftPowerPhasePeak field value.
638  */
640 {
641  Q_D(const RecordMessage);
642  return d->leftPowerPhasePeak;
643 }
644 
645 /*!
646  * Returns the RecordMessage data message's \c rightPowerPhase field's current value.
647  *
648  * Right power phase angles. Data value indexes defined by power_phase_type.
649  *
650  * \return the \c rightPowerPhase field value.
651  */
653 {
654  Q_D(const RecordMessage);
655  return d->rightPowerPhase;
656 }
657 
658 /*!
659  * Returns the RecordMessage data message's \c rightPowerPhasePeak field's current value.
660  *
661  * Right power phase peak angles. Data value indexes defined by power_phase_type.
662  *
663  * \return the \c rightPowerPhasePeak field value.
664  */
666 {
667  Q_D(const RecordMessage);
668  return d->rightPowerPhasePeak;
669 }
670 
671 /*!
672  * Returns the RecordMessage data message's \c enhancedSpeed field's current value.
673  *
674  * \return the \c enhancedSpeed field value.
675  */
677 {
678  Q_D(const RecordMessage);
679  return d->enhancedSpeed;
680 }
681 
682 /*!
683  * Returns the RecordMessage data message's \c enhancedAltitude field's current value.
684  *
685  * \return the \c enhancedAltitude field value.
686  */
688 {
689  Q_D(const RecordMessage);
690  return d->enhancedAltitude;
691 }
692 
693 /*!
694  * Returns the RecordMessage data message's \c batterySoc field's current value.
695  *
696  * lev battery state of charge
697  *
698  * \return the \c batterySoc field value.
699  */
701 {
702  Q_D(const RecordMessage);
703  return d->batterySoc;
704 }
705 
706 /*!
707  * Returns the RecordMessage data message's \c motorPower field's current value.
708  *
709  * lev motor power
710  *
711  * \return the \c motorPower field value.
712  */
714 {
715  Q_D(const RecordMessage);
716  return d->motorPower;
717 }
718 
719 /*!
720  * Returns the RecordMessage data message's \c verticalRatio field's current value.
721  *
722  * \return the \c verticalRatio field value.
723  */
725 {
726  Q_D(const RecordMessage);
727  return d->verticalRatio;
728 }
729 
730 /*!
731  * Returns the RecordMessage data message's \c stanceTimeBalance field's current value.
732  *
733  * \return the \c stanceTimeBalance field value.
734  */
736 {
737  Q_D(const RecordMessage);
738  return d->stanceTimeBalance;
739 }
740 
741 /*!
742  * Returns the RecordMessage data message's \c stepLength field's current value.
743  *
744  * \return the \c stepLength field value.
745  */
747 {
748  Q_D(const RecordMessage);
749  return d->stepLength;
750 }
751 
752 /*!
753  * Returns the RecordMessage data message's \c absolutePressure field's current value.
754  *
755  * Includes atmospheric pressure
756  *
757  * \return the \c absolutePressure field value.
758  */
760 {
761  Q_D(const RecordMessage);
762  return d->absolutePressure;
763 }
764 
765 /*!
766  * Returns the RecordMessage data message's \c depth field's current value.
767  *
768  * 0 if above water
769  *
770  * \return the \c depth field value.
771  */
772 quint32 RecordMessage::depth() const
773 {
774  Q_D(const RecordMessage);
775  return d->depth;
776 }
777 
778 /*!
779  * Returns the RecordMessage data message's \c nextStopDepth field's current value.
780  *
781  * 0 if above water
782  *
783  * \return the \c nextStopDepth field value.
784  */
786 {
787  Q_D(const RecordMessage);
788  return d->nextStopDepth;
789 }
790 
791 /*!
792  * Returns the RecordMessage data message's \c nextStopTime field's current value.
793  *
794  * \return the \c nextStopTime field value.
795  */
797 {
798  Q_D(const RecordMessage);
799  return d->nextStopTime;
800 }
801 
802 /*!
803  * Returns the RecordMessage data message's \c timeToSurface field's current value.
804  *
805  * \return the \c timeToSurface field value.
806  */
808 {
809  Q_D(const RecordMessage);
810  return d->timeToSurface;
811 }
812 
813 /*!
814  * Returns the RecordMessage data message's \c ndlTime field's current value.
815  *
816  * \return the \c ndlTime field value.
817  */
818 quint32 RecordMessage::ndlTime() const
819 {
820  Q_D(const RecordMessage);
821  return d->ndlTime;
822 }
823 
824 /*!
825  * Returns the RecordMessage data message's \c cnsLoad field's current value.
826  *
827  * \return the \c cnsLoad field value.
828  */
830 {
831  Q_D(const RecordMessage);
832  return d->cnsLoad;
833 }
834 
835 /*!
836  * Returns the RecordMessage data message's \c n2Load field's current value.
837  *
838  * \return the \c n2Load field value.
839  */
840 quint16 RecordMessage::n2Load() const
841 {
842  Q_D(const RecordMessage);
843  return d->n2Load;
844 }
845 
846 /*!
847  * Returns the RecordMessage data message's \c grit field's current value.
848  *
849  * The grit score estimates how challenging a route could be for a cyclist in terms of time
850  * spent going over sharp turns or large grade slopes.
851  *
852  * \return the \c grit field value.
853  */
854 float RecordMessage::grit() const
855 {
856  Q_D(const RecordMessage);
857  return d->grit;
858 }
859 
860 /*!
861  * Returns the RecordMessage data message's \c flow field's current value.
862  *
863  * The flow score estimates how long distance wise a cyclist deaccelerates over intervals where
864  * deacceleration is unnecessary such as smooth turns or small grade angle intervals.
865  *
866  * \return the \c flow field value.
867  */
868 float RecordMessage::flow() const
869 {
870  Q_D(const RecordMessage);
871  return d->flow;
872 }
873 
874 /*!
875  * Returns the RecordMessage data message's \c ebikeTravelRange field's current value.
876  *
877  * \return the \c ebikeTravelRange field value.
878  */
880 {
881  Q_D(const RecordMessage);
882  return d->ebikeTravelRange;
883 }
884 
885 /*!
886  * Returns the RecordMessage data message's \c ebikeBatteryLevel field's current value.
887  *
888  * \return the \c ebikeBatteryLevel field value.
889  */
891 {
892  Q_D(const RecordMessage);
893  return d->ebikeBatteryLevel;
894 }
895 
896 /*!
897  * Returns the RecordMessage data message's \c ebikeAssistMode field's current value.
898  *
899  * \return the \c ebikeAssistMode field value.
900  */
902 {
903  Q_D(const RecordMessage);
904  return d->ebikeAssistMode;
905 }
906 
907 /*!
908  * Returns the RecordMessage data message's \c ebikeAssistLevelPercent field's current value.
909  *
910  * \return the \c ebikeAssistLevelPercent field value.
911  */
913 {
914  Q_D(const RecordMessage);
915  return d->ebikeAssistLevelPercent;
916 }
917 
918 /*!
919  * Returns the RecordMessage data message's \c coreTemperature field's current value.
920  *
921  * \return the \c coreTemperature field value.
922  */
924 {
925  Q_D(const RecordMessage);
926  return d->coreTemperature;
927 }
928 
929 /*!
930  * Sets the \c timestamp field to \a timestamp.
931  *
932  * \param timestamp The field value to set.
933  */
935 {
936  Q_D(RecordMessage);
937  d->timestamp = timestamp;
938 }
939 /*!
940  * Sets the \c positionLat field to \a positionLat.
941  *
942  * \param positionLat The field value to set.
943  */
944 void RecordMessage::setPositionLat(const qint32 positionLat)
945 {
946  Q_D(RecordMessage);
947  d->positionLat = positionLat;
948 }
949 /*!
950  * Sets the \c positionLong field to \a positionLong.
951  *
952  * \param positionLong The field value to set.
953  */
954 void RecordMessage::setPositionLong(const qint32 positionLong)
955 {
956  Q_D(RecordMessage);
957  d->positionLong = positionLong;
958 }
959 /*!
960  * Sets the \c altitude field to \a altitude.
961  *
962  * \param altitude The field value to set.
963  */
964 void RecordMessage::setAltitude(const quint16 altitude)
965 {
966  Q_D(RecordMessage);
967  d->altitude = altitude;
968 }
969 /*!
970  * Sets the \c heartRate field to \a heartRate.
971  *
972  * \param heartRate The field value to set.
973  */
974 void RecordMessage::setHeartRate(const quint8 heartRate)
975 {
976  Q_D(RecordMessage);
977  d->heartRate = heartRate;
978 }
979 /*!
980  * Sets the \c cadence field to \a cadence.
981  *
982  * \param cadence The field value to set.
983  */
984 void RecordMessage::setCadence(const quint8 cadence)
985 {
986  Q_D(RecordMessage);
987  d->cadence = cadence;
988 }
989 /*!
990  * Sets the \c distance field to \a distance.
991  *
992  * \param distance The field value to set.
993  */
994 void RecordMessage::setDistance(const quint32 distance)
995 {
996  Q_D(RecordMessage);
997  d->distance = distance;
998 }
999 /*!
1000  * Sets the \c speed field to \a speed.
1001  *
1002  * \param speed The field value to set.
1003  */
1004 void RecordMessage::setSpeed(const quint16 speed)
1005 {
1006  Q_D(RecordMessage);
1007  d->speed = speed;
1008 }
1009 /*!
1010  * Sets the \c power field to \a power.
1011  *
1012  * \param power The field value to set.
1013  */
1014 void RecordMessage::setPower(const quint16 power)
1015 {
1016  Q_D(RecordMessage);
1017  d->power = power;
1018 }
1019 /*!
1020  * Sets the \c compressedSpeedDistance field to \a compressedSpeedDistance.
1021  *
1022  * \param compressedSpeedDistance The field value to set.
1023  */
1024 void RecordMessage::setCompressedSpeedDistance(const quint8 compressedSpeedDistance)
1025 {
1026  Q_D(RecordMessage);
1027  d->compressedSpeedDistance = compressedSpeedDistance;
1028 }
1029 /*!
1030  * Sets the \c grade field to \a grade.
1031  *
1032  * \param grade The field value to set.
1033  */
1034 void RecordMessage::setGrade(const qint16 grade)
1035 {
1036  Q_D(RecordMessage);
1037  d->grade = grade;
1038 }
1039 /*!
1040  * Sets the \c resistance field to \a resistance.
1041  *
1042  * \param resistance The field value to set.
1043  */
1044 void RecordMessage::setResistance(const quint8 resistance)
1045 {
1046  Q_D(RecordMessage);
1047  d->resistance = resistance;
1048 }
1049 /*!
1050  * Sets the \c timeFromCourse field to \a timeFromCourse.
1051  *
1052  * \param timeFromCourse The field value to set.
1053  */
1054 void RecordMessage::setTimeFromCourse(const qint32 timeFromCourse)
1055 {
1056  Q_D(RecordMessage);
1057  d->timeFromCourse = timeFromCourse;
1058 }
1059 /*!
1060  * Sets the \c cycleLength field to \a cycleLength.
1061  *
1062  * \param cycleLength The field value to set.
1063  */
1064 void RecordMessage::setCycleLength(const quint8 cycleLength)
1065 {
1066  Q_D(RecordMessage);
1067  d->cycleLength = cycleLength;
1068 }
1069 /*!
1070  * Sets the \c temperature field to \a temperature.
1071  *
1072  * \param temperature The field value to set.
1073  */
1074 void RecordMessage::setTemperature(const qint8 temperature)
1075 {
1076  Q_D(RecordMessage);
1077  d->temperature = temperature;
1078 }
1079 /*!
1080  * Sets the \c speed1s field to \a speed1s.
1081  *
1082  * \param speed1s The field value to set.
1083  */
1084 void RecordMessage::setSpeed1s(const quint8 speed1s)
1085 {
1086  Q_D(RecordMessage);
1087  d->speed1s = speed1s;
1088 }
1089 /*!
1090  * Sets the \c cycles field to \a cycles.
1091  *
1092  * \param cycles The field value to set.
1093  */
1094 void RecordMessage::setCycles(const quint8 cycles)
1095 {
1096  Q_D(RecordMessage);
1097  d->cycles = cycles;
1098 }
1099 /*!
1100  * Sets the \c totalCycles field to \a totalCycles.
1101  *
1102  * \param totalCycles The field value to set.
1103  */
1104 void RecordMessage::setTotalCycles(const quint32 totalCycles)
1105 {
1106  Q_D(RecordMessage);
1107  d->totalCycles = totalCycles;
1108 }
1109 /*!
1110  * Sets the \c compressedAccumulatedPower field to \a compressedAccumulatedPower.
1111  *
1112  * \param compressedAccumulatedPower The field value to set.
1113  */
1114 void RecordMessage::setCompressedAccumulatedPower(const quint16 compressedAccumulatedPower)
1115 {
1116  Q_D(RecordMessage);
1117  d->compressedAccumulatedPower = compressedAccumulatedPower;
1118 }
1119 /*!
1120  * Sets the \c accumulatedPower field to \a accumulatedPower.
1121  *
1122  * \param accumulatedPower The field value to set.
1123  */
1124 void RecordMessage::setAccumulatedPower(const quint32 accumulatedPower)
1125 {
1126  Q_D(RecordMessage);
1127  d->accumulatedPower = accumulatedPower;
1128 }
1129 /*!
1130  * Sets the \c leftRightBalance field to \a leftRightBalance.
1131  *
1132  * \param leftRightBalance The field value to set.
1133  */
1135 {
1136  Q_D(RecordMessage);
1137  d->leftRightBalance = leftRightBalance;
1138 }
1139 /*!
1140  * Sets the \c gpsAccuracy field to \a gpsAccuracy.
1141  *
1142  * \param gpsAccuracy The field value to set.
1143  */
1144 void RecordMessage::setGpsAccuracy(const quint8 gpsAccuracy)
1145 {
1146  Q_D(RecordMessage);
1147  d->gpsAccuracy = gpsAccuracy;
1148 }
1149 /*!
1150  * Sets the \c verticalSpeed field to \a verticalSpeed.
1151  *
1152  * \param verticalSpeed The field value to set.
1153  */
1154 void RecordMessage::setVerticalSpeed(const qint16 verticalSpeed)
1155 {
1156  Q_D(RecordMessage);
1157  d->verticalSpeed = verticalSpeed;
1158 }
1159 /*!
1160  * Sets the \c calories field to \a calories.
1161  *
1162  * \param calories The field value to set.
1163  */
1164 void RecordMessage::setCalories(const quint16 calories)
1165 {
1166  Q_D(RecordMessage);
1167  d->calories = calories;
1168 }
1169 /*!
1170  * Sets the \c verticalOscillation field to \a verticalOscillation.
1171  *
1172  * \param verticalOscillation The field value to set.
1173  */
1174 void RecordMessage::setVerticalOscillation(const quint16 verticalOscillation)
1175 {
1176  Q_D(RecordMessage);
1177  d->verticalOscillation = verticalOscillation;
1178 }
1179 /*!
1180  * Sets the \c stanceTimePercent field to \a stanceTimePercent.
1181  *
1182  * \param stanceTimePercent The field value to set.
1183  */
1184 void RecordMessage::setStanceTimePercent(const quint16 stanceTimePercent)
1185 {
1186  Q_D(RecordMessage);
1187  d->stanceTimePercent = stanceTimePercent;
1188 }
1189 /*!
1190  * Sets the \c stanceTime field to \a stanceTime.
1191  *
1192  * \param stanceTime The field value to set.
1193  */
1194 void RecordMessage::setStanceTime(const quint16 stanceTime)
1195 {
1196  Q_D(RecordMessage);
1197  d->stanceTime = stanceTime;
1198 }
1199 /*!
1200  * Sets the \c activityType field to \a activityType.
1201  *
1202  * \param activityType The field value to set.
1203  */
1205 {
1206  Q_D(RecordMessage);
1207  d->activityType = activityType;
1208 }
1209 /*!
1210  * Sets the \c leftTorqueEffectiveness field to \a leftTorqueEffectiveness.
1211  *
1212  * \param leftTorqueEffectiveness The field value to set.
1213  */
1214 void RecordMessage::setLeftTorqueEffectiveness(const quint8 leftTorqueEffectiveness)
1215 {
1216  Q_D(RecordMessage);
1217  d->leftTorqueEffectiveness = leftTorqueEffectiveness;
1218 }
1219 /*!
1220  * Sets the \c rightTorqueEffectiveness field to \a rightTorqueEffectiveness.
1221  *
1222  * \param rightTorqueEffectiveness The field value to set.
1223  */
1224 void RecordMessage::setRightTorqueEffectiveness(const quint8 rightTorqueEffectiveness)
1225 {
1226  Q_D(RecordMessage);
1227  d->rightTorqueEffectiveness = rightTorqueEffectiveness;
1228 }
1229 /*!
1230  * Sets the \c leftPedalSmoothness field to \a leftPedalSmoothness.
1231  *
1232  * \param leftPedalSmoothness The field value to set.
1233  */
1234 void RecordMessage::setLeftPedalSmoothness(const quint8 leftPedalSmoothness)
1235 {
1236  Q_D(RecordMessage);
1237  d->leftPedalSmoothness = leftPedalSmoothness;
1238 }
1239 /*!
1240  * Sets the \c rightPedalSmoothness field to \a rightPedalSmoothness.
1241  *
1242  * \param rightPedalSmoothness The field value to set.
1243  */
1244 void RecordMessage::setRightPedalSmoothness(const quint8 rightPedalSmoothness)
1245 {
1246  Q_D(RecordMessage);
1247  d->rightPedalSmoothness = rightPedalSmoothness;
1248 }
1249 /*!
1250  * Sets the \c combinedPedalSmoothness field to \a combinedPedalSmoothness.
1251  *
1252  * \param combinedPedalSmoothness The field value to set.
1253  */
1254 void RecordMessage::setCombinedPedalSmoothness(const quint8 combinedPedalSmoothness)
1255 {
1256  Q_D(RecordMessage);
1257  d->combinedPedalSmoothness = combinedPedalSmoothness;
1258 }
1259 /*!
1260  * Sets the \c time128 field to \a time128.
1261  *
1262  * \param time128 The field value to set.
1263  */
1264 void RecordMessage::setTime128(const quint8 time128)
1265 {
1266  Q_D(RecordMessage);
1267  d->time128 = time128;
1268 }
1269 /*!
1270  * Sets the \c strokeType field to \a strokeType.
1271  *
1272  * \param strokeType The field value to set.
1273  */
1275 {
1276  Q_D(RecordMessage);
1277  d->strokeType = strokeType;
1278 }
1279 /*!
1280  * Sets the \c zone field to \a zone.
1281  *
1282  * \param zone The field value to set.
1283  */
1284 void RecordMessage::setZone(const quint8 zone)
1285 {
1286  Q_D(RecordMessage);
1287  d->zone = zone;
1288 }
1289 /*!
1290  * Sets the \c ballSpeed field to \a ballSpeed.
1291  *
1292  * \param ballSpeed The field value to set.
1293  */
1294 void RecordMessage::setBallSpeed(const quint16 ballSpeed)
1295 {
1296  Q_D(RecordMessage);
1297  d->ballSpeed = ballSpeed;
1298 }
1299 /*!
1300  * Sets the \c cadence256 field to \a cadence256.
1301  *
1302  * \param cadence256 The field value to set.
1303  */
1304 void RecordMessage::setCadence256(const quint16 cadence256)
1305 {
1306  Q_D(RecordMessage);
1307  d->cadence256 = cadence256;
1308 }
1309 /*!
1310  * Sets the \c fractionalCadence field to \a fractionalCadence.
1311  *
1312  * \param fractionalCadence The field value to set.
1313  */
1314 void RecordMessage::setFractionalCadence(const quint8 fractionalCadence)
1315 {
1316  Q_D(RecordMessage);
1317  d->fractionalCadence = fractionalCadence;
1318 }
1319 /*!
1320  * Sets the \c totalHemoglobinConc field to \a totalHemoglobinConc.
1321  *
1322  * \param totalHemoglobinConc The field value to set.
1323  */
1324 void RecordMessage::setTotalHemoglobinConc(const quint16 totalHemoglobinConc)
1325 {
1326  Q_D(RecordMessage);
1327  d->totalHemoglobinConc = totalHemoglobinConc;
1328 }
1329 /*!
1330  * Sets the \c totalHemoglobinConcMin field to \a totalHemoglobinConcMin.
1331  *
1332  * \param totalHemoglobinConcMin The field value to set.
1333  */
1334 void RecordMessage::setTotalHemoglobinConcMin(const quint16 totalHemoglobinConcMin)
1335 {
1336  Q_D(RecordMessage);
1337  d->totalHemoglobinConcMin = totalHemoglobinConcMin;
1338 }
1339 /*!
1340  * Sets the \c totalHemoglobinConcMax field to \a totalHemoglobinConcMax.
1341  *
1342  * \param totalHemoglobinConcMax The field value to set.
1343  */
1344 void RecordMessage::setTotalHemoglobinConcMax(const quint16 totalHemoglobinConcMax)
1345 {
1346  Q_D(RecordMessage);
1347  d->totalHemoglobinConcMax = totalHemoglobinConcMax;
1348 }
1349 /*!
1350  * Sets the \c saturatedHemoglobinPercent field to \a saturatedHemoglobinPercent.
1351  *
1352  * \param saturatedHemoglobinPercent The field value to set.
1353  */
1354 void RecordMessage::setSaturatedHemoglobinPercent(const quint16 saturatedHemoglobinPercent)
1355 {
1356  Q_D(RecordMessage);
1357  d->saturatedHemoglobinPercent = saturatedHemoglobinPercent;
1358 }
1359 /*!
1360  * Sets the \c saturatedHemoglobinPercentMin field to \a saturatedHemoglobinPercentMin.
1361  *
1362  * \param saturatedHemoglobinPercentMin The field value to set.
1363  */
1364 void RecordMessage::setSaturatedHemoglobinPercentMin(const quint16 saturatedHemoglobinPercentMin)
1365 {
1366  Q_D(RecordMessage);
1367  d->saturatedHemoglobinPercentMin = saturatedHemoglobinPercentMin;
1368 }
1369 /*!
1370  * Sets the \c saturatedHemoglobinPercentMax field to \a saturatedHemoglobinPercentMax.
1371  *
1372  * \param saturatedHemoglobinPercentMax The field value to set.
1373  */
1374 void RecordMessage::setSaturatedHemoglobinPercentMax(const quint16 saturatedHemoglobinPercentMax)
1375 {
1376  Q_D(RecordMessage);
1377  d->saturatedHemoglobinPercentMax = saturatedHemoglobinPercentMax;
1378 }
1379 /*!
1380  * Sets the \c deviceIndex field to \a deviceIndex.
1381  *
1382  * \param deviceIndex The field value to set.
1383  */
1385 {
1386  Q_D(RecordMessage);
1387  d->deviceIndex = deviceIndex;
1388 }
1389 /*!
1390  * Sets the \c leftPco field to \a leftPco.
1391  *
1392  * \param leftPco The field value to set.
1393  */
1394 void RecordMessage::setLeftPco(const qint8 leftPco)
1395 {
1396  Q_D(RecordMessage);
1397  d->leftPco = leftPco;
1398 }
1399 /*!
1400  * Sets the \c rightPco field to \a rightPco.
1401  *
1402  * \param rightPco The field value to set.
1403  */
1404 void RecordMessage::setRightPco(const qint8 rightPco)
1405 {
1406  Q_D(RecordMessage);
1407  d->rightPco = rightPco;
1408 }
1409 /*!
1410  * Sets the \c leftPowerPhase field to \a leftPowerPhase.
1411  *
1412  * \param leftPowerPhase The field value to set.
1413  */
1414 void RecordMessage::setLeftPowerPhase(const quint8 leftPowerPhase)
1415 {
1416  Q_D(RecordMessage);
1417  d->leftPowerPhase = leftPowerPhase;
1418 }
1419 /*!
1420  * Sets the \c leftPowerPhasePeak field to \a leftPowerPhasePeak.
1421  *
1422  * \param leftPowerPhasePeak The field value to set.
1423  */
1424 void RecordMessage::setLeftPowerPhasePeak(const quint8 leftPowerPhasePeak)
1425 {
1426  Q_D(RecordMessage);
1427  d->leftPowerPhasePeak = leftPowerPhasePeak;
1428 }
1429 /*!
1430  * Sets the \c rightPowerPhase field to \a rightPowerPhase.
1431  *
1432  * \param rightPowerPhase The field value to set.
1433  */
1434 void RecordMessage::setRightPowerPhase(const quint8 rightPowerPhase)
1435 {
1436  Q_D(RecordMessage);
1437  d->rightPowerPhase = rightPowerPhase;
1438 }
1439 /*!
1440  * Sets the \c rightPowerPhasePeak field to \a rightPowerPhasePeak.
1441  *
1442  * \param rightPowerPhasePeak The field value to set.
1443  */
1444 void RecordMessage::setRightPowerPhasePeak(const quint8 rightPowerPhasePeak)
1445 {
1446  Q_D(RecordMessage);
1447  d->rightPowerPhasePeak = rightPowerPhasePeak;
1448 }
1449 /*!
1450  * Sets the \c enhancedSpeed field to \a enhancedSpeed.
1451  *
1452  * \param enhancedSpeed The field value to set.
1453  */
1454 void RecordMessage::setEnhancedSpeed(const quint32 enhancedSpeed)
1455 {
1456  Q_D(RecordMessage);
1457  d->enhancedSpeed = enhancedSpeed;
1458 }
1459 /*!
1460  * Sets the \c enhancedAltitude field to \a enhancedAltitude.
1461  *
1462  * \param enhancedAltitude The field value to set.
1463  */
1464 void RecordMessage::setEnhancedAltitude(const quint32 enhancedAltitude)
1465 {
1466  Q_D(RecordMessage);
1467  d->enhancedAltitude = enhancedAltitude;
1468 }
1469 /*!
1470  * Sets the \c batterySoc field to \a batterySoc.
1471  *
1472  * \param batterySoc The field value to set.
1473  */
1474 void RecordMessage::setBatterySoc(const quint8 batterySoc)
1475 {
1476  Q_D(RecordMessage);
1477  d->batterySoc = batterySoc;
1478 }
1479 /*!
1480  * Sets the \c motorPower field to \a motorPower.
1481  *
1482  * \param motorPower The field value to set.
1483  */
1484 void RecordMessage::setMotorPower(const quint16 motorPower)
1485 {
1486  Q_D(RecordMessage);
1487  d->motorPower = motorPower;
1488 }
1489 /*!
1490  * Sets the \c verticalRatio field to \a verticalRatio.
1491  *
1492  * \param verticalRatio The field value to set.
1493  */
1494 void RecordMessage::setVerticalRatio(const quint16 verticalRatio)
1495 {
1496  Q_D(RecordMessage);
1497  d->verticalRatio = verticalRatio;
1498 }
1499 /*!
1500  * Sets the \c stanceTimeBalance field to \a stanceTimeBalance.
1501  *
1502  * \param stanceTimeBalance The field value to set.
1503  */
1504 void RecordMessage::setStanceTimeBalance(const quint16 stanceTimeBalance)
1505 {
1506  Q_D(RecordMessage);
1507  d->stanceTimeBalance = stanceTimeBalance;
1508 }
1509 /*!
1510  * Sets the \c stepLength field to \a stepLength.
1511  *
1512  * \param stepLength The field value to set.
1513  */
1514 void RecordMessage::setStepLength(const quint16 stepLength)
1515 {
1516  Q_D(RecordMessage);
1517  d->stepLength = stepLength;
1518 }
1519 /*!
1520  * Sets the \c absolutePressure field to \a absolutePressure.
1521  *
1522  * \param absolutePressure The field value to set.
1523  */
1524 void RecordMessage::setAbsolutePressure(const quint32 absolutePressure)
1525 {
1526  Q_D(RecordMessage);
1527  d->absolutePressure = absolutePressure;
1528 }
1529 /*!
1530  * Sets the \c depth field to \a depth.
1531  *
1532  * \param depth The field value to set.
1533  */
1534 void RecordMessage::setDepth(const quint32 depth)
1535 {
1536  Q_D(RecordMessage);
1537  d->depth = depth;
1538 }
1539 /*!
1540  * Sets the \c nextStopDepth field to \a nextStopDepth.
1541  *
1542  * \param nextStopDepth The field value to set.
1543  */
1544 void RecordMessage::setNextStopDepth(const quint32 nextStopDepth)
1545 {
1546  Q_D(RecordMessage);
1547  d->nextStopDepth = nextStopDepth;
1548 }
1549 /*!
1550  * Sets the \c nextStopTime field to \a nextStopTime.
1551  *
1552  * \param nextStopTime The field value to set.
1553  */
1554 void RecordMessage::setNextStopTime(const quint32 nextStopTime)
1555 {
1556  Q_D(RecordMessage);
1557  d->nextStopTime = nextStopTime;
1558 }
1559 /*!
1560  * Sets the \c timeToSurface field to \a timeToSurface.
1561  *
1562  * \param timeToSurface The field value to set.
1563  */
1564 void RecordMessage::setTimeToSurface(const quint32 timeToSurface)
1565 {
1566  Q_D(RecordMessage);
1567  d->timeToSurface = timeToSurface;
1568 }
1569 /*!
1570  * Sets the \c ndlTime field to \a ndlTime.
1571  *
1572  * \param ndlTime The field value to set.
1573  */
1574 void RecordMessage::setNdlTime(const quint32 ndlTime)
1575 {
1576  Q_D(RecordMessage);
1577  d->ndlTime = ndlTime;
1578 }
1579 /*!
1580  * Sets the \c cnsLoad field to \a cnsLoad.
1581  *
1582  * \param cnsLoad The field value to set.
1583  */
1584 void RecordMessage::setCnsLoad(const quint8 cnsLoad)
1585 {
1586  Q_D(RecordMessage);
1587  d->cnsLoad = cnsLoad;
1588 }
1589 /*!
1590  * Sets the \c n2Load field to \a n2Load.
1591  *
1592  * \param n2Load The field value to set.
1593  */
1594 void RecordMessage::setN2Load(const quint16 n2Load)
1595 {
1596  Q_D(RecordMessage);
1597  d->n2Load = n2Load;
1598 }
1599 /*!
1600  * Sets the \c grit field to \a grit.
1601  *
1602  * \param grit The field value to set.
1603  */
1604 void RecordMessage::setGrit(const float grit)
1605 {
1606  Q_D(RecordMessage);
1607  d->grit = grit;
1608 }
1609 /*!
1610  * Sets the \c flow field to \a flow.
1611  *
1612  * \param flow The field value to set.
1613  */
1614 void RecordMessage::setFlow(const float flow)
1615 {
1616  Q_D(RecordMessage);
1617  d->flow = flow;
1618 }
1619 /*!
1620  * Sets the \c ebikeTravelRange field to \a ebikeTravelRange.
1621  *
1622  * \param ebikeTravelRange The field value to set.
1623  */
1624 void RecordMessage::setEbikeTravelRange(const quint16 ebikeTravelRange)
1625 {
1626  Q_D(RecordMessage);
1627  d->ebikeTravelRange = ebikeTravelRange;
1628 }
1629 /*!
1630  * Sets the \c ebikeBatteryLevel field to \a ebikeBatteryLevel.
1631  *
1632  * \param ebikeBatteryLevel The field value to set.
1633  */
1634 void RecordMessage::setEbikeBatteryLevel(const quint8 ebikeBatteryLevel)
1635 {
1636  Q_D(RecordMessage);
1637  d->ebikeBatteryLevel = ebikeBatteryLevel;
1638 }
1639 /*!
1640  * Sets the \c ebikeAssistMode field to \a ebikeAssistMode.
1641  *
1642  * \param ebikeAssistMode The field value to set.
1643  */
1644 void RecordMessage::setEbikeAssistMode(const quint8 ebikeAssistMode)
1645 {
1646  Q_D(RecordMessage);
1647  d->ebikeAssistMode = ebikeAssistMode;
1648 }
1649 /*!
1650  * Sets the \c ebikeAssistLevelPercent field to \a ebikeAssistLevelPercent.
1651  *
1652  * \param ebikeAssistLevelPercent The field value to set.
1653  */
1654 void RecordMessage::setEbikeAssistLevelPercent(const quint8 ebikeAssistLevelPercent)
1655 {
1656  Q_D(RecordMessage);
1657  d->ebikeAssistLevelPercent = ebikeAssistLevelPercent;
1658 }
1659 /*!
1660  * Sets the \c coreTemperature field to \a coreTemperature.
1661  *
1662  * \param coreTemperature The field value to set.
1663  */
1664 void RecordMessage::setCoreTemperature(const quint16 coreTemperature)
1665 {
1666  Q_D(RecordMessage);
1667  d->coreTemperature = coreTemperature;
1668 }
1669 
1670 /// \cond internal
1671 
1672 /*!
1673  * \internal
1674  *
1675  * \class RecordMessagePrivate
1676  *
1677  * The RecordMessagePrivate class provides private implementation for the RecordMessage.
1678  *
1679  * \sa RecordMessage
1680  */
1681 
1682 /*!
1683  * \internal
1684  *
1685  * Constructs a RecordMessagePrivate object with public implementation \a q.
1686  *
1687  * \param q Pointer to public implementaton.
1688  */
1689 RecordMessagePrivate::RecordMessagePrivate(RecordMessage * const q)
1691  , timestamp(static_cast<DateTime>(-1))
1692  , positionLat(0x7FFFFFFF)
1693  , positionLong(0x7FFFFFFF)
1694  , altitude(0xFFFF)
1695  , heartRate(0xFF)
1696  , cadence(0xFF)
1697  , distance(0xFFFFFFFF)
1698  , speed(0xFFFF)
1699  , power(0xFFFF)
1700  , compressedSpeedDistance(0xFF)
1701  , grade(0x7FFF)
1702  , resistance(0xFF)
1703  , timeFromCourse(0x7FFFFFFF)
1704  , cycleLength(0xFF)
1705  , temperature(0x7F)
1706  , speed1s(0xFF)
1707  , cycles(0xFF)
1708  , totalCycles(0xFFFFFFFF)
1709  , compressedAccumulatedPower(0xFFFF)
1710  , accumulatedPower(0xFFFFFFFF)
1711  , leftRightBalance(static_cast<LeftRightBalance>(-1))
1712  , gpsAccuracy(0xFF)
1713  , verticalSpeed(0x7FFF)
1714  , calories(0xFFFF)
1715  , verticalOscillation(0xFFFF)
1716  , stanceTimePercent(0xFFFF)
1717  , stanceTime(0xFFFF)
1718  , activityType(static_cast<ActivityType>(-1))
1719  , leftTorqueEffectiveness(0xFF)
1720  , rightTorqueEffectiveness(0xFF)
1721  , leftPedalSmoothness(0xFF)
1722  , rightPedalSmoothness(0xFF)
1723  , combinedPedalSmoothness(0xFF)
1724  , time128(0xFF)
1725  , strokeType(static_cast<StrokeType>(-1))
1726  , zone(0xFF)
1727  , ballSpeed(0xFFFF)
1728  , cadence256(0xFFFF)
1729  , fractionalCadence(0xFF)
1730  , totalHemoglobinConc(0xFFFF)
1731  , totalHemoglobinConcMin(0xFFFF)
1732  , totalHemoglobinConcMax(0xFFFF)
1733  , saturatedHemoglobinPercent(0xFFFF)
1734  , saturatedHemoglobinPercentMin(0xFFFF)
1735  , saturatedHemoglobinPercentMax(0xFFFF)
1736  , deviceIndex(static_cast<DeviceIndex>(-1))
1737  , leftPco(0x7F)
1738  , rightPco(0x7F)
1739  , leftPowerPhase(0xFF)
1740  , leftPowerPhasePeak(0xFF)
1741  , rightPowerPhase(0xFF)
1742  , rightPowerPhasePeak(0xFF)
1743  , enhancedSpeed(0xFFFFFFFF)
1744  , enhancedAltitude(0xFFFFFFFF)
1745  , batterySoc(0xFF)
1746  , motorPower(0xFFFF)
1747  , verticalRatio(0xFFFF)
1748  , stanceTimeBalance(0xFFFF)
1749  , stepLength(0xFFFF)
1750  , absolutePressure(0xFFFFFFFF)
1751  , depth(0xFFFFFFFF)
1752  , nextStopDepth(0xFFFFFFFF)
1753  , nextStopTime(0xFFFFFFFF)
1754  , timeToSurface(0xFFFFFFFF)
1755  , ndlTime(0xFFFFFFFF)
1756  , cnsLoad(0xFF)
1757  , n2Load(0xFFFF)
1758  , grit(static_cast<float>(-1))
1759  , flow(static_cast<float>(-1))
1760  , ebikeTravelRange(0xFFFF)
1761  , ebikeBatteryLevel(0xFF)
1762  , ebikeAssistMode(0xFF)
1763  , ebikeAssistLevelPercent(0xFF)
1764  , coreTemperature(0xFFFF)
1765 {
1766  globalMessageNumber = MesgNum::Record;
1767 }
1768 
1769 /*!
1770  * \internal
1771  *
1772  * Destroys the RecordMessagePrivate object.
1773  */
1775 {
1776 
1777 }
1778 
1780  const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian)
1781 {
1782  switch (fieldId) {
1783  case 253: // See Profile.xlsx::Messages:record.timestamp
1784  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.timestamp")) return false;
1785  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1786  break;
1787  case 0: // See Profile.xlsx::Messages:record.positionLat
1788  if (!verify(data, baseType, 4, FitBaseType::Sint32, "record.positionLat")) return false;
1789  this->positionLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
1790  break;
1791  case 1: // See Profile.xlsx::Messages:record.positionLong
1792  if (!verify(data, baseType, 4, FitBaseType::Sint32, "record.positionLong")) return false;
1793  this->positionLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
1794  break;
1795  case 2: // See Profile.xlsx::Messages:record.altitude
1796  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.altitude")) return false;
1797  this->altitude = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1798  break;
1799  case 3: // See Profile.xlsx::Messages:record.heartRate
1800  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.heartRate")) return false;
1801  this->heartRate = static_cast<quint8>(data.at(0));
1802  break;
1803  case 4: // See Profile.xlsx::Messages:record.cadence
1804  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.cadence")) return false;
1805  this->cadence = static_cast<quint8>(data.at(0));
1806  break;
1807  case 5: // See Profile.xlsx::Messages:record.distance
1808  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.distance")) return false;
1809  this->distance = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1810  break;
1811  case 6: // See Profile.xlsx::Messages:record.speed
1812  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.speed")) return false;
1813  this->speed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1814  break;
1815  case 7: // See Profile.xlsx::Messages:record.power
1816  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.power")) return false;
1817  this->power = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1818  break;
1819  case 8: // See Profile.xlsx::Messages:record.compressedSpeedDistance
1820  if (!verify(data, baseType, 1, FitBaseType::Byte, "record.compressedSpeedDistance")) return false;
1821  this->compressedSpeedDistance = static_cast<quint8>(data.at(0));
1822  break;
1823  case 9: // See Profile.xlsx::Messages:record.grade
1824  if (!verify(data, baseType, 2, FitBaseType::Sint16, "record.grade")) return false;
1825  this->grade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
1826  break;
1827  case 10: // See Profile.xlsx::Messages:record.resistance
1828  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.resistance")) return false;
1829  this->resistance = static_cast<quint8>(data.at(0));
1830  break;
1831  case 11: // See Profile.xlsx::Messages:record.timeFromCourse
1832  if (!verify(data, baseType, 4, FitBaseType::Sint32, "record.timeFromCourse")) return false;
1833  this->timeFromCourse = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
1834  break;
1835  case 12: // See Profile.xlsx::Messages:record.cycleLength
1836  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.cycleLength")) return false;
1837  this->cycleLength = static_cast<quint8>(data.at(0));
1838  break;
1839  case 13: // See Profile.xlsx::Messages:record.temperature
1840  if (!verify(data, baseType, 1, FitBaseType::Sint8, "record.temperature")) return false;
1841  this->temperature = static_cast<qint8>(data.at(0));
1842  break;
1843  case 17: // See Profile.xlsx::Messages:record.speed1s
1844  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.speed1s")) return false;
1845  this->speed1s = static_cast<quint8>(data.at(0));
1846  break;
1847  case 18: // See Profile.xlsx::Messages:record.cycles
1848  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.cycles")) return false;
1849  this->cycles = static_cast<quint8>(data.at(0));
1850  break;
1851  case 19: // See Profile.xlsx::Messages:record.totalCycles
1852  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.totalCycles")) return false;
1853  this->totalCycles = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1854  break;
1855  case 28: // See Profile.xlsx::Messages:record.compressedAccumulatedPower
1856  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.compressedAccumulatedPower")) return false;
1857  this->compressedAccumulatedPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1858  break;
1859  case 29: // See Profile.xlsx::Messages:record.accumulatedPower
1860  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.accumulatedPower")) return false;
1861  this->accumulatedPower = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1862  break;
1863  case 30: // See Profile.xlsx::Messages:record.leftRightBalance
1864  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.leftRightBalance")) return false;
1865  this->leftRightBalance = static_cast<LeftRightBalance>(data.at(0));
1866  break;
1867  case 31: // See Profile.xlsx::Messages:record.gpsAccuracy
1868  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.gpsAccuracy")) return false;
1869  this->gpsAccuracy = static_cast<quint8>(data.at(0));
1870  break;
1871  case 32: // See Profile.xlsx::Messages:record.verticalSpeed
1872  if (!verify(data, baseType, 2, FitBaseType::Sint16, "record.verticalSpeed")) return false;
1873  this->verticalSpeed = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
1874  break;
1875  case 33: // See Profile.xlsx::Messages:record.calories
1876  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.calories")) return false;
1877  this->calories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1878  break;
1879  case 39: // See Profile.xlsx::Messages:record.verticalOscillation
1880  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.verticalOscillation")) return false;
1881  this->verticalOscillation = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1882  break;
1883  case 40: // See Profile.xlsx::Messages:record.stanceTimePercent
1884  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.stanceTimePercent")) return false;
1885  this->stanceTimePercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1886  break;
1887  case 41: // See Profile.xlsx::Messages:record.stanceTime
1888  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.stanceTime")) return false;
1889  this->stanceTime = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1890  break;
1891  case 42: // See Profile.xlsx::Messages:record.activityType
1892  if (!verify(data, baseType, 1, FitBaseType::Enum, "record.activityType")) return false;
1893  this->activityType = static_cast<ActivityType>(data.at(0));
1894  break;
1895  case 43: // See Profile.xlsx::Messages:record.leftTorqueEffectiveness
1896  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.leftTorqueEffectiveness")) return false;
1897  this->leftTorqueEffectiveness = static_cast<quint8>(data.at(0));
1898  break;
1899  case 44: // See Profile.xlsx::Messages:record.rightTorqueEffectiveness
1900  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.rightTorqueEffectiveness")) return false;
1901  this->rightTorqueEffectiveness = static_cast<quint8>(data.at(0));
1902  break;
1903  case 45: // See Profile.xlsx::Messages:record.leftPedalSmoothness
1904  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.leftPedalSmoothness")) return false;
1905  this->leftPedalSmoothness = static_cast<quint8>(data.at(0));
1906  break;
1907  case 46: // See Profile.xlsx::Messages:record.rightPedalSmoothness
1908  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.rightPedalSmoothness")) return false;
1909  this->rightPedalSmoothness = static_cast<quint8>(data.at(0));
1910  break;
1911  case 47: // See Profile.xlsx::Messages:record.combinedPedalSmoothness
1912  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.combinedPedalSmoothness")) return false;
1913  this->combinedPedalSmoothness = static_cast<quint8>(data.at(0));
1914  break;
1915  case 48: // See Profile.xlsx::Messages:record.time128
1916  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.time128")) return false;
1917  this->time128 = static_cast<quint8>(data.at(0));
1918  break;
1919  case 49: // See Profile.xlsx::Messages:record.strokeType
1920  if (!verify(data, baseType, 1, FitBaseType::Enum, "record.strokeType")) return false;
1921  this->strokeType = static_cast<StrokeType>(data.at(0));
1922  break;
1923  case 50: // See Profile.xlsx::Messages:record.zone
1924  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.zone")) return false;
1925  this->zone = static_cast<quint8>(data.at(0));
1926  break;
1927  case 51: // See Profile.xlsx::Messages:record.ballSpeed
1928  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.ballSpeed")) return false;
1929  this->ballSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1930  break;
1931  case 52: // See Profile.xlsx::Messages:record.cadence256
1932  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.cadence256")) return false;
1933  this->cadence256 = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1934  break;
1935  case 53: // See Profile.xlsx::Messages:record.fractionalCadence
1936  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.fractionalCadence")) return false;
1937  this->fractionalCadence = static_cast<quint8>(data.at(0));
1938  break;
1939  case 54: // See Profile.xlsx::Messages:record.totalHemoglobinConc
1940  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.totalHemoglobinConc")) return false;
1941  this->totalHemoglobinConc = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1942  break;
1943  case 55: // See Profile.xlsx::Messages:record.totalHemoglobinConcMin
1944  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.totalHemoglobinConcMin")) return false;
1945  this->totalHemoglobinConcMin = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1946  break;
1947  case 56: // See Profile.xlsx::Messages:record.totalHemoglobinConcMax
1948  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.totalHemoglobinConcMax")) return false;
1949  this->totalHemoglobinConcMax = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1950  break;
1951  case 57: // See Profile.xlsx::Messages:record.saturatedHemoglobinPercent
1952  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.saturatedHemoglobinPercent")) return false;
1953  this->saturatedHemoglobinPercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1954  break;
1955  case 58: // See Profile.xlsx::Messages:record.saturatedHemoglobinPercentMin
1956  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.saturatedHemoglobinPercentMin")) return false;
1957  this->saturatedHemoglobinPercentMin = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1958  break;
1959  case 59: // See Profile.xlsx::Messages:record.saturatedHemoglobinPercentMax
1960  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.saturatedHemoglobinPercentMax")) return false;
1961  this->saturatedHemoglobinPercentMax = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
1962  break;
1963  case 62: // See Profile.xlsx::Messages:record.deviceIndex
1964  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.deviceIndex")) return false;
1965  this->deviceIndex = static_cast<DeviceIndex>(data.at(0));
1966  break;
1967  case 67: // See Profile.xlsx::Messages:record.leftPco
1968  if (!verify(data, baseType, 1, FitBaseType::Sint8, "record.leftPco")) return false;
1969  this->leftPco = static_cast<qint8>(data.at(0));
1970  break;
1971  case 68: // See Profile.xlsx::Messages:record.rightPco
1972  if (!verify(data, baseType, 1, FitBaseType::Sint8, "record.rightPco")) return false;
1973  this->rightPco = static_cast<qint8>(data.at(0));
1974  break;
1975  case 69: // See Profile.xlsx::Messages:record.leftPowerPhase
1976  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.leftPowerPhase")) return false;
1977  this->leftPowerPhase = static_cast<quint8>(data.at(0));
1978  break;
1979  case 70: // See Profile.xlsx::Messages:record.leftPowerPhasePeak
1980  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.leftPowerPhasePeak")) return false;
1981  this->leftPowerPhasePeak = static_cast<quint8>(data.at(0));
1982  break;
1983  case 71: // See Profile.xlsx::Messages:record.rightPowerPhase
1984  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.rightPowerPhase")) return false;
1985  this->rightPowerPhase = static_cast<quint8>(data.at(0));
1986  break;
1987  case 72: // See Profile.xlsx::Messages:record.rightPowerPhasePeak
1988  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.rightPowerPhasePeak")) return false;
1989  this->rightPowerPhasePeak = static_cast<quint8>(data.at(0));
1990  break;
1991  case 73: // See Profile.xlsx::Messages:record.enhancedSpeed
1992  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.enhancedSpeed")) return false;
1993  this->enhancedSpeed = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1994  break;
1995  case 78: // See Profile.xlsx::Messages:record.enhancedAltitude
1996  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.enhancedAltitude")) return false;
1997  this->enhancedAltitude = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
1998  break;
1999  case 81: // See Profile.xlsx::Messages:record.batterySoc
2000  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.batterySoc")) return false;
2001  this->batterySoc = static_cast<quint8>(data.at(0));
2002  break;
2003  case 82: // See Profile.xlsx::Messages:record.motorPower
2004  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.motorPower")) return false;
2005  this->motorPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2006  break;
2007  case 83: // See Profile.xlsx::Messages:record.verticalRatio
2008  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.verticalRatio")) return false;
2009  this->verticalRatio = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2010  break;
2011  case 84: // See Profile.xlsx::Messages:record.stanceTimeBalance
2012  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.stanceTimeBalance")) return false;
2013  this->stanceTimeBalance = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2014  break;
2015  case 85: // See Profile.xlsx::Messages:record.stepLength
2016  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.stepLength")) return false;
2017  this->stepLength = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2018  break;
2019  case 91: // See Profile.xlsx::Messages:record.absolutePressure
2020  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.absolutePressure")) return false;
2021  this->absolutePressure = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2022  break;
2023  case 92: // See Profile.xlsx::Messages:record.depth
2024  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.depth")) return false;
2025  this->depth = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2026  break;
2027  case 93: // See Profile.xlsx::Messages:record.nextStopDepth
2028  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.nextStopDepth")) return false;
2029  this->nextStopDepth = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2030  break;
2031  case 94: // See Profile.xlsx::Messages:record.nextStopTime
2032  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.nextStopTime")) return false;
2033  this->nextStopTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2034  break;
2035  case 95: // See Profile.xlsx::Messages:record.timeToSurface
2036  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.timeToSurface")) return false;
2037  this->timeToSurface = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2038  break;
2039  case 96: // See Profile.xlsx::Messages:record.ndlTime
2040  if (!verify(data, baseType, 4, FitBaseType::Uint32, "record.ndlTime")) return false;
2041  this->ndlTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
2042  break;
2043  case 97: // See Profile.xlsx::Messages:record.cnsLoad
2044  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.cnsLoad")) return false;
2045  this->cnsLoad = static_cast<quint8>(data.at(0));
2046  break;
2047  case 98: // See Profile.xlsx::Messages:record.n2Load
2048  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.n2Load")) return false;
2049  this->n2Load = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2050  break;
2051  case 114: // See Profile.xlsx::Messages:record.grit
2052  if (!verify(data, baseType, 4, FitBaseType::Float32, "record.grit")) return false;
2053  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
2054  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
2055  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
2056  static_assert(sizeof(localEndian) == 4, "src not expected size");
2057  static_assert(sizeof(this->grit) == 4, "src and dst not the same size");
2058  memcpy(&this->grit, &localEndian, data.size());
2059  }
2060  #else
2061  this->grit = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
2062  #endif
2063  break;
2064  case 115: // See Profile.xlsx::Messages:record.flow
2065  if (!verify(data, baseType, 4, FitBaseType::Float32, "record.flow")) return false;
2066  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
2067  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
2068  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
2069  static_assert(sizeof(localEndian) == 4, "src not expected size");
2070  static_assert(sizeof(this->flow) == 4, "src and dst not the same size");
2071  memcpy(&this->flow, &localEndian, data.size());
2072  }
2073  #else
2074  this->flow = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
2075  #endif
2076  break;
2077  case 117: // See Profile.xlsx::Messages:record.ebikeTravelRange
2078  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.ebikeTravelRange")) return false;
2079  this->ebikeTravelRange = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2080  break;
2081  case 118: // See Profile.xlsx::Messages:record.ebikeBatteryLevel
2082  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.ebikeBatteryLevel")) return false;
2083  this->ebikeBatteryLevel = static_cast<quint8>(data.at(0));
2084  break;
2085  case 119: // See Profile.xlsx::Messages:record.ebikeAssistMode
2086  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.ebikeAssistMode")) return false;
2087  this->ebikeAssistMode = static_cast<quint8>(data.at(0));
2088  break;
2089  case 120: // See Profile.xlsx::Messages:record.ebikeAssistLevelPercent
2090  if (!verify(data, baseType, 1, FitBaseType::Uint8, "record.ebikeAssistLevelPercent")) return false;
2091  this->ebikeAssistLevelPercent = static_cast<quint8>(data.at(0));
2092  break;
2093  case 139: // See Profile.xlsx::Messages:record.coreTemperature
2094  if (!verify(data, baseType, 2, FitBaseType::Uint16, "record.coreTemperature")) return false;
2095  this->coreTemperature = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
2096  break;
2097  default:
2098  qWarning() << "ignoring unknown record message field number" << fieldId << bigEndian;
2099  // Fall through to return true, as its still 'safe' to continue parsing data messages.
2100  }
2101  return true;
2102 }
2103 
2104 /// \endcond
2105 
#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.
qint8 rightPco
The RecordMessage FIT message's rightPco field.
quint16 speed
The RecordMessage FIT message's speed field.
quint8 ebikeBatteryLevel
The RecordMessage FIT message's ebikeBatteryLevel field.
quint16 ebikeTravelRange
The RecordMessage FIT message's ebikeTravelRange field.
DateTime timestamp
The RecordMessage FIT message's timestamp field.
quint16 altitude
The RecordMessage FIT message's altitude field.
quint32 depth
The RecordMessage FIT message's depth field.
quint8 heartRate
The RecordMessage FIT message's heartRate field.
DeviceIndex deviceIndex
The RecordMessage FIT message's deviceIndex field.
quint8 fractionalCadence
The RecordMessage FIT message's fractionalCadence field.
quint32 distance
The RecordMessage FIT message's distance field.
quint32 totalCycles
The RecordMessage FIT message's totalCycles field.
quint8 zone
The RecordMessage FIT message's zone field.
quint16 compressedAccumulatedPower
The RecordMessage FIT message's compressedAccumulatedPower field.
quint8 rightTorqueEffectiveness
The RecordMessage FIT message's rightTorqueEffectiveness field.
quint8 rightPowerPhase
The RecordMessage FIT message's rightPowerPhase field.
quint16 stanceTime
The RecordMessage FIT message's stanceTime field.
quint8 leftTorqueEffectiveness
The RecordMessage FIT message's leftTorqueEffectiveness field.
quint8 cycles
The RecordMessage FIT message's cycles field.
quint8 batterySoc
The RecordMessage FIT message's batterySoc field.
quint16 cadence256
The RecordMessage FIT message's cadence256 field.
quint16 coreTemperature
The RecordMessage FIT message's coreTemperature field.
quint32 accumulatedPower
The RecordMessage FIT message's accumulatedPower field.
qint8 leftPco
The RecordMessage FIT message's leftPco field.
quint8 rightPedalSmoothness
The RecordMessage FIT message's rightPedalSmoothness field.
quint16 totalHemoglobinConcMin
The RecordMessage FIT message's totalHemoglobinConcMin field.
quint16 stanceTimeBalance
The RecordMessage FIT message's stanceTimeBalance field.
qint32 timeFromCourse
The RecordMessage FIT message's timeFromCourse field.
quint32 enhancedAltitude
The RecordMessage FIT message's enhancedAltitude field.
quint16 ballSpeed
The RecordMessage FIT message's ballSpeed field.
qint16 verticalSpeed
The RecordMessage FIT message's verticalSpeed field.
quint16 stepLength
The RecordMessage FIT message's stepLength field.
qint32 positionLong
The RecordMessage FIT message's positionLong field.
quint8 combinedPedalSmoothness
The RecordMessage FIT message's combinedPedalSmoothness field.
float flow
The RecordMessage FIT message's flow field.
qint16 grade
The RecordMessage FIT message's grade field.
quint16 saturatedHemoglobinPercent
The RecordMessage FIT message's saturatedHemoglobinPercent field.
quint8 ebikeAssistMode
The RecordMessage FIT message's ebikeAssistMode field.
quint8 time128
The RecordMessage FIT message's time128 field.
StrokeType strokeType
The RecordMessage FIT message's strokeType field.
quint8 compressedSpeedDistance
The RecordMessage FIT message's compressedSpeedDistance field.
quint8 rightPowerPhasePeak
The RecordMessage FIT message's rightPowerPhasePeak field.
quint32 ndlTime
The RecordMessage FIT message's ndlTime field.
quint32 nextStopTime
The RecordMessage FIT message's nextStopTime field.
quint32 absolutePressure
The RecordMessage FIT message's absolutePressure field.
quint16 n2Load
The RecordMessage FIT message's n2Load field.
quint16 calories
The RecordMessage FIT message's calories field.
quint8 gpsAccuracy
The RecordMessage FIT message's gpsAccuracy field.
quint32 timeToSurface
The RecordMessage FIT message's timeToSurface field.
quint8 resistance
The RecordMessage FIT message's resistance field.
quint8 leftPowerPhase
The RecordMessage FIT message's leftPowerPhase field.
quint16 totalHemoglobinConc
The RecordMessage FIT message's totalHemoglobinConc field.
quint32 nextStopDepth
The RecordMessage FIT message's nextStopDepth field.
quint16 saturatedHemoglobinPercentMax
The RecordMessage FIT message's saturatedHemoglobinPercentMax field.
qint32 positionLat
The RecordMessage FIT message's positionLat field.
quint8 cadence
The RecordMessage FIT message's cadence field.
bool setField(const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
quint8 speed1s
The RecordMessage FIT message's speed1s field.
qint8 temperature
The RecordMessage FIT message's temperature field.
quint16 verticalOscillation
The RecordMessage FIT message's verticalOscillation field.
quint16 verticalRatio
The RecordMessage FIT message's verticalRatio field.
quint8 ebikeAssistLevelPercent
The RecordMessage FIT message's ebikeAssistLevelPercent field.
quint16 totalHemoglobinConcMax
The RecordMessage FIT message's totalHemoglobinConcMax field.
ActivityType activityType
The RecordMessage FIT message's activityType field.
quint16 power
The RecordMessage FIT message's power field.
quint8 cnsLoad
The RecordMessage FIT message's cnsLoad field.
quint8 leftPowerPhasePeak
The RecordMessage FIT message's leftPowerPhasePeak field.
quint8 cycleLength
The RecordMessage FIT message's cycleLength field.
quint16 saturatedHemoglobinPercentMin
The RecordMessage FIT message's saturatedHemoglobinPercentMin field.
quint32 enhancedSpeed
The RecordMessage FIT message's enhancedSpeed field.
quint16 stanceTimePercent
The RecordMessage FIT message's stanceTimePercent field.
quint8 leftPedalSmoothness
The RecordMessage FIT message's leftPedalSmoothness field.
quint16 motorPower
The RecordMessage FIT message's motorPower field.
float grit
The RecordMessage FIT message's grit field.
LeftRightBalance leftRightBalance
The RecordMessage FIT message's leftRightBalance field.
The RecordMessage class represents a FIT RecordMessage data message.
Definition: recordmessage.h:39
quint16 speed() const
Returns the RecordMessage data message's speed field's current value.
qint16 grade() const
Returns the RecordMessage data message's grade field's current value.
qint32 timeFromCourse() const
Returns the RecordMessage data message's timeFromCourse field's current value.
quint32 ndlTime() const
Returns the RecordMessage data message's ndlTime field's current value.
void setNextStopTime(const quint32 nextStopTime)
Sets the nextStopTime field to nextStopTime.
void setNdlTime(const quint32 ndlTime)
Sets the ndlTime field to ndlTime.
quint16 cadence256() const
Returns the RecordMessage data message's cadence256 field's current value.
void setGrade(const qint16 grade)
Sets the grade field to grade.
void setRightPowerPhase(const quint8 rightPowerPhase)
Sets the rightPowerPhase field to rightPowerPhase.
quint16 compressedAccumulatedPower() const
Returns the RecordMessage data message's compressedAccumulatedPower field's current value.
void setEbikeAssistMode(const quint8 ebikeAssistMode)
Sets the ebikeAssistMode field to ebikeAssistMode.
ActivityType activityType() const
Returns the RecordMessage data message's activityType field's current value.
quint32 totalCycles() const
Returns the RecordMessage data message's totalCycles field's current value.
quint8 ebikeAssistMode() const
Returns the RecordMessage data message's ebikeAssistMode field's current value.
void setTimestamp(const DateTime timestamp)
Sets the timestamp field to timestamp.
quint32 timeToSurface() const
Returns the RecordMessage data message's timeToSurface field's current value.
RecordMessage()
Constructs a RecordMessage object.
quint8 rightPedalSmoothness() const
Returns the RecordMessage data message's rightPedalSmoothness field's current value.
void setCycleLength(const quint8 cycleLength)
Sets the cycleLength field to cycleLength.
quint16 stepLength() const
Returns the RecordMessage data message's stepLength field's current value.
void setStanceTime(const quint16 stanceTime)
Sets the stanceTime field to stanceTime.
void setRightPedalSmoothness(const quint8 rightPedalSmoothness)
Sets the rightPedalSmoothness field to rightPedalSmoothness.
void setCompressedAccumulatedPower(const quint16 compressedAccumulatedPower)
Sets the compressedAccumulatedPower field to compressedAccumulatedPower.
void setN2Load(const quint16 n2Load)
Sets the n2Load field to n2Load.
quint16 coreTemperature() const
Returns the RecordMessage data message's coreTemperature field's current value.
quint32 accumulatedPower() const
Returns the RecordMessage data message's accumulatedPower field's current value.
qint32 positionLat() const
Returns the RecordMessage data message's positionLat field's current value.
quint8 cnsLoad() const
Returns the RecordMessage data message's cnsLoad field's current value.
void setVerticalOscillation(const quint16 verticalOscillation)
Sets the verticalOscillation field to verticalOscillation.
void setLeftPedalSmoothness(const quint8 leftPedalSmoothness)
Sets the leftPedalSmoothness field to leftPedalSmoothness.
quint8 ebikeAssistLevelPercent() const
Returns the RecordMessage data message's ebikeAssistLevelPercent field's current value.
quint16 ballSpeed() const
Returns the RecordMessage data message's ballSpeed field's current value.
quint16 totalHemoglobinConcMin() const
Returns the RecordMessage data message's totalHemoglobinConcMin field's current value.
quint8 batterySoc() const
Returns the RecordMessage data message's batterySoc field's current value.
qint16 verticalSpeed() const
Returns the RecordMessage data message's verticalSpeed field's current value.
quint32 nextStopDepth() const
Returns the RecordMessage data message's nextStopDepth field's current value.
quint32 absolutePressure() const
Returns the RecordMessage data message's absolutePressure field's current value.
DeviceIndex deviceIndex() const
Returns the RecordMessage data message's deviceIndex field's current value.
void setTimeFromCourse(const qint32 timeFromCourse)
Sets the timeFromCourse field to timeFromCourse.
void setCnsLoad(const quint8 cnsLoad)
Sets the cnsLoad field to cnsLoad.
LeftRightBalance leftRightBalance() const
Returns the RecordMessage data message's leftRightBalance field's current value.
void setEnhancedAltitude(const quint32 enhancedAltitude)
Sets the enhancedAltitude field to enhancedAltitude.
void setBallSpeed(const quint16 ballSpeed)
Sets the ballSpeed field to ballSpeed.
void setCadence256(const quint16 cadence256)
Sets the cadence256 field to cadence256.
void setTotalHemoglobinConcMax(const quint16 totalHemoglobinConcMax)
Sets the totalHemoglobinConcMax field to totalHemoglobinConcMax.
quint8 cadence() const
Returns the RecordMessage data message's cadence field's current value.
void setSaturatedHemoglobinPercent(const quint16 saturatedHemoglobinPercent)
Sets the saturatedHemoglobinPercent field to saturatedHemoglobinPercent.
quint16 power() const
Returns the RecordMessage data message's power field's current value.
void setStrokeType(const StrokeType strokeType)
Sets the strokeType field to strokeType.
void setEbikeAssistLevelPercent(const quint8 ebikeAssistLevelPercent)
Sets the ebikeAssistLevelPercent field to ebikeAssistLevelPercent.
quint8 fractionalCadence() const
Returns the RecordMessage data message's fractionalCadence field's current value.
void setRightPowerPhasePeak(const quint8 rightPowerPhasePeak)
Sets the rightPowerPhasePeak field to rightPowerPhasePeak.
void setCalories(const quint16 calories)
Sets the calories field to calories.
void setPositionLat(const qint32 positionLat)
Sets the positionLat field to positionLat.
quint16 stanceTimeBalance() const
Returns the RecordMessage data message's stanceTimeBalance field's current value.
quint8 cycleLength() const
Returns the RecordMessage data message's cycleLength field's current value.
quint16 verticalRatio() const
Returns the RecordMessage data message's verticalRatio field's current value.
void setSaturatedHemoglobinPercentMax(const quint16 saturatedHemoglobinPercentMax)
Sets the saturatedHemoglobinPercentMax field to saturatedHemoglobinPercentMax.
quint16 ebikeTravelRange() const
Returns the RecordMessage data message's ebikeTravelRange field's current value.
quint8 heartRate() const
Returns the RecordMessage data message's heartRate field's current value.
quint8 speed1s() const
Returns the RecordMessage data message's speed1s field's current value.
void setTemperature(const qint8 temperature)
Sets the temperature field to temperature.
void setTotalHemoglobinConc(const quint16 totalHemoglobinConc)
Sets the totalHemoglobinConc field to totalHemoglobinConc.
void setGpsAccuracy(const quint8 gpsAccuracy)
Sets the gpsAccuracy field to gpsAccuracy.
void setLeftPowerPhasePeak(const quint8 leftPowerPhasePeak)
Sets the leftPowerPhasePeak field to leftPowerPhasePeak.
void setAccumulatedPower(const quint32 accumulatedPower)
Sets the accumulatedPower field to accumulatedPower.
quint8 leftTorqueEffectiveness() const
Returns the RecordMessage data message's leftTorqueEffectiveness field's current value.
void setBatterySoc(const quint8 batterySoc)
Sets the batterySoc field to batterySoc.
quint16 stanceTimePercent() const
Returns the RecordMessage data message's stanceTimePercent field's current value.
qint32 positionLong() const
Returns the RecordMessage data message's positionLong field's current value.
quint16 motorPower() const
Returns the RecordMessage data message's motorPower field's current value.
void setGrit(const float grit)
Sets the grit field to grit.
void setMotorPower(const quint16 motorPower)
Sets the motorPower field to motorPower.
quint8 rightPowerPhasePeak() const
Returns the RecordMessage data message's rightPowerPhasePeak field's current value.
void setSaturatedHemoglobinPercentMin(const quint16 saturatedHemoglobinPercentMin)
Sets the saturatedHemoglobinPercentMin field to saturatedHemoglobinPercentMin.
void setHeartRate(const quint8 heartRate)
Sets the heartRate field to heartRate.
void setFlow(const float flow)
Sets the flow field to flow.
quint8 rightTorqueEffectiveness() const
Returns the RecordMessage data message's rightTorqueEffectiveness field's current value.
void setActivityType(const ActivityType activityType)
Sets the activityType field to activityType.
quint16 n2Load() const
Returns the RecordMessage data message's n2Load field's current value.
qint8 temperature() const
Returns the RecordMessage data message's temperature field's current value.
void setLeftRightBalance(const LeftRightBalance leftRightBalance)
Sets the leftRightBalance field to leftRightBalance.
void setNextStopDepth(const quint32 nextStopDepth)
Sets the nextStopDepth field to nextStopDepth.
float grit() const
Returns the RecordMessage data message's grit field's current value.
quint8 gpsAccuracy() const
Returns the RecordMessage data message's gpsAccuracy field's current value.
void setEbikeTravelRange(const quint16 ebikeTravelRange)
Sets the ebikeTravelRange field to ebikeTravelRange.
void setCompressedSpeedDistance(const quint8 compressedSpeedDistance)
Sets the compressedSpeedDistance field to compressedSpeedDistance.
void setTimeToSurface(const quint32 timeToSurface)
Sets the timeToSurface field to timeToSurface.
quint8 compressedSpeedDistance() const
Returns the RecordMessage data message's compressedSpeedDistance field's current value.
quint16 totalHemoglobinConc() const
Returns the RecordMessage data message's totalHemoglobinConc field's current value.
quint16 altitude() const
Returns the RecordMessage data message's altitude field's current value.
quint8 leftPowerPhasePeak() const
Returns the RecordMessage data message's leftPowerPhasePeak field's current value.
quint32 distance() const
Returns the RecordMessage data message's distance field's current value.
void setZone(const quint8 zone)
Sets the zone field to zone.
quint8 leftPowerPhase() const
Returns the RecordMessage data message's leftPowerPhase field's current value.
float flow() const
Returns the RecordMessage data message's flow field's current value.
void setPositionLong(const qint32 positionLong)
Sets the positionLong field to positionLong.
quint16 saturatedHemoglobinPercentMin() const
Returns the RecordMessage data message's saturatedHemoglobinPercentMin field's current value.
void setStanceTimeBalance(const quint16 stanceTimeBalance)
Sets the stanceTimeBalance field to stanceTimeBalance.
quint8 ebikeBatteryLevel() const
Returns the RecordMessage data message's ebikeBatteryLevel field's current value.
quint8 time128() const
Returns the RecordMessage data message's time128 field's current value.
void setEnhancedSpeed(const quint32 enhancedSpeed)
Sets the enhancedSpeed field to enhancedSpeed.
void setPower(const quint16 power)
Sets the power field to power.
void setEbikeBatteryLevel(const quint8 ebikeBatteryLevel)
Sets the ebikeBatteryLevel field to ebikeBatteryLevel.
void setSpeed(const quint16 speed)
Sets the speed field to speed.
void setCadence(const quint8 cadence)
Sets the cadence field to cadence.
void setDepth(const quint32 depth)
Sets the depth field to depth.
void setStepLength(const quint16 stepLength)
Sets the stepLength field to stepLength.
void setTotalCycles(const quint32 totalCycles)
Sets the totalCycles field to totalCycles.
void setVerticalSpeed(const qint16 verticalSpeed)
Sets the verticalSpeed field to verticalSpeed.
StrokeType strokeType() const
Returns the RecordMessage data message's strokeType field's current value.
DateTime timestamp() const
Returns the RecordMessage data message's timestamp field's current value.
quint16 totalHemoglobinConcMax() const
Returns the RecordMessage data message's totalHemoglobinConcMax field's current value.
void setLeftPco(const qint8 leftPco)
Sets the leftPco field to leftPco.
quint32 depth() const
Returns the RecordMessage data message's depth field's current value.
qint8 rightPco() const
Returns the RecordMessage data message's rightPco field's current value.
void setAltitude(const quint16 altitude)
Sets the altitude field to altitude.
quint8 cycles() const
Returns the RecordMessage data message's cycles field's current value.
void setStanceTimePercent(const quint16 stanceTimePercent)
Sets the stanceTimePercent field to stanceTimePercent.
void setCombinedPedalSmoothness(const quint8 combinedPedalSmoothness)
Sets the combinedPedalSmoothness field to combinedPedalSmoothness.
void setRightTorqueEffectiveness(const quint8 rightTorqueEffectiveness)
Sets the rightTorqueEffectiveness field to rightTorqueEffectiveness.
quint32 nextStopTime() const
Returns the RecordMessage data message's nextStopTime field's current value.
quint8 zone() const
Returns the RecordMessage data message's zone field's current value.
quint16 calories() const
Returns the RecordMessage data message's calories field's current value.
void setLeftTorqueEffectiveness(const quint8 leftTorqueEffectiveness)
Sets the leftTorqueEffectiveness field to leftTorqueEffectiveness.
void setDistance(const quint32 distance)
Sets the distance field to distance.
void setLeftPowerPhase(const quint8 leftPowerPhase)
Sets the leftPowerPhase field to leftPowerPhase.
void setVerticalRatio(const quint16 verticalRatio)
Sets the verticalRatio field to verticalRatio.
quint16 saturatedHemoglobinPercent() const
Returns the RecordMessage data message's saturatedHemoglobinPercent field's current value.
void setSpeed1s(const quint8 speed1s)
Sets the speed1s field to speed1s.
void setTotalHemoglobinConcMin(const quint16 totalHemoglobinConcMin)
Sets the totalHemoglobinConcMin field to totalHemoglobinConcMin.
quint16 stanceTime() const
Returns the RecordMessage data message's stanceTime field's current value.
void setFractionalCadence(const quint8 fractionalCadence)
Sets the fractionalCadence field to fractionalCadence.
quint32 enhancedSpeed() const
Returns the RecordMessage data message's enhancedSpeed field's current value.
void setCoreTemperature(const quint16 coreTemperature)
Sets the coreTemperature field to coreTemperature.
void setAbsolutePressure(const quint32 absolutePressure)
Sets the absolutePressure field to absolutePressure.
void setRightPco(const qint8 rightPco)
Sets the rightPco field to rightPco.
quint8 rightPowerPhase() const
Returns the RecordMessage data message's rightPowerPhase field's current value.
void setTime128(const quint8 time128)
Sets the time128 field to time128.
void setDeviceIndex(const DeviceIndex deviceIndex)
Sets the deviceIndex field to deviceIndex.
quint8 leftPedalSmoothness() const
Returns the RecordMessage data message's leftPedalSmoothness field's current value.
void setResistance(const quint8 resistance)
Sets the resistance field to resistance.
void setCycles(const quint8 cycles)
Sets the cycles field to cycles.
quint16 saturatedHemoglobinPercentMax() const
Returns the RecordMessage data message's saturatedHemoglobinPercentMax field's current value.
quint8 combinedPedalSmoothness() const
Returns the RecordMessage data message's combinedPedalSmoothness field's current value.
quint16 verticalOscillation() const
Returns the RecordMessage data message's verticalOscillation field's current value.
qint8 leftPco() const
Returns the RecordMessage data message's leftPco field's current value.
quint8 resistance() const
Returns the RecordMessage data message's resistance field's current value.
quint32 enhancedAltitude() const
Returns the RecordMessage data message's enhancedAltitude field's current value.
Declares the RecordMessage class.
Declares the RecordMessagePrivate class.
LeftRightBalance
Garmin FIT LeftRightBalance type.
Definition: types.h:2363
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
StrokeType
Garmin FIT StrokeType type.
Definition: types.h:2653
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237