QtFit  0.1
Internal library development documentation
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SessionMessagePrivate Class Reference
Inheritance diagram for SessionMessagePrivate:
[legend]
Collaboration diagram for SessionMessagePrivate:
[legend]

Public Member Functions

 SessionMessagePrivate (SessionMessage *const q)
 
virtual ~SessionMessagePrivate ()
 
- Public Member Functions inherited from AbstractDataMessagePrivate
 AbstractDataMessagePrivate (AbstractDataMessage *const q)
 
virtual ~AbstractDataMessagePrivate ()
 
bool setFields (const DataDefinition *const defn, const QByteArray &record)
 

Public Attributes

MessageIndex messageIndex
 The SessionMessage FIT message's messageIndex field. More...
 
DateTime timestamp
 The SessionMessage FIT message's timestamp field. More...
 
Event event
 The SessionMessage FIT message's event field. More...
 
EventType eventType
 The SessionMessage FIT message's eventType field. More...
 
DateTime startTime
 The SessionMessage FIT message's startTime field.
 
qint32 startPositionLat
 The SessionMessage FIT message's startPositionLat field.
 
qint32 startPositionLong
 The SessionMessage FIT message's startPositionLong field.
 
Sport sport
 The SessionMessage FIT message's sport field.
 
SubSport subSport
 The SessionMessage FIT message's subSport field.
 
quint32 totalElapsedTime
 The SessionMessage FIT message's totalElapsedTime field. More...
 
quint32 totalTimerTime
 The SessionMessage FIT message's totalTimerTime field. More...
 
quint32 totalDistance
 The SessionMessage FIT message's totalDistance field.
 
quint32 totalCycles
 The SessionMessage FIT message's totalCycles field.
 
quint16 totalCalories
 The SessionMessage FIT message's totalCalories field.
 
quint16 totalFatCalories
 The SessionMessage FIT message's totalFatCalories field.
 
quint16 avgSpeed
 The SessionMessage FIT message's avgSpeed field. More...
 
quint16 maxSpeed
 The SessionMessage FIT message's maxSpeed field.
 
quint8 avgHeartRate
 The SessionMessage FIT message's avgHeartRate field. More...
 
quint8 maxHeartRate
 The SessionMessage FIT message's maxHeartRate field.
 
quint8 avgCadence
 The SessionMessage FIT message's avgCadence field. More...
 
quint8 maxCadence
 The SessionMessage FIT message's maxCadence field.
 
quint16 avgPower
 The SessionMessage FIT message's avgPower field. More...
 
quint16 maxPower
 The SessionMessage FIT message's maxPower field.
 
quint16 totalAscent
 The SessionMessage FIT message's totalAscent field.
 
quint16 totalDescent
 The SessionMessage FIT message's totalDescent field.
 
quint8 totalTrainingEffect
 The SessionMessage FIT message's totalTrainingEffect field.
 
quint16 firstLapIndex
 The SessionMessage FIT message's firstLapIndex field.
 
quint16 numLaps
 The SessionMessage FIT message's numLaps field.
 
quint8 eventGroup
 The SessionMessage FIT message's eventGroup field.
 
SessionTrigger trigger
 The SessionMessage FIT message's trigger field.
 
qint32 necLat
 The SessionMessage FIT message's necLat field. More...
 
qint32 necLong
 The SessionMessage FIT message's necLong field. More...
 
qint32 swcLat
 The SessionMessage FIT message's swcLat field. More...
 
qint32 swcLong
 The SessionMessage FIT message's swcLong field. More...
 
quint16 numLengths
 The SessionMessage FIT message's numLengths field. More...
 
quint16 normalizedPower
 The SessionMessage FIT message's normalizedPower field.
 
quint16 trainingStressScore
 The SessionMessage FIT message's trainingStressScore field.
 
quint16 intensityFactor
 The SessionMessage FIT message's intensityFactor field.
 
LeftRightBalance100 leftRightBalance
 The SessionMessage FIT message's leftRightBalance field.
 
quint32 avgStrokeCount
 The SessionMessage FIT message's avgStrokeCount field.
 
quint16 avgStrokeDistance
 The SessionMessage FIT message's avgStrokeDistance field.
 
SwimStroke swimStroke
 The SessionMessage FIT message's swimStroke field.
 
quint16 poolLength
 The SessionMessage FIT message's poolLength field.
 
quint16 thresholdPower
 The SessionMessage FIT message's thresholdPower field.
 
DisplayMeasure poolLengthUnit
 The SessionMessage FIT message's poolLengthUnit field.
 
quint16 numActiveLengths
 The SessionMessage FIT message's numActiveLengths field. More...
 
quint32 totalWork
 The SessionMessage FIT message's totalWork field.
 
quint16 avgAltitude
 The SessionMessage FIT message's avgAltitude field.
 
quint16 maxAltitude
 The SessionMessage FIT message's maxAltitude field.
 
quint8 gpsAccuracy
 The SessionMessage FIT message's gpsAccuracy field.
 
qint16 avgGrade
 The SessionMessage FIT message's avgGrade field.
 
qint16 avgPosGrade
 The SessionMessage FIT message's avgPosGrade field.
 
qint16 avgNegGrade
 The SessionMessage FIT message's avgNegGrade field.
 
qint16 maxPosGrade
 The SessionMessage FIT message's maxPosGrade field.
 
qint16 maxNegGrade
 The SessionMessage FIT message's maxNegGrade field.
 
qint8 avgTemperature
 The SessionMessage FIT message's avgTemperature field.
 
qint8 maxTemperature
 The SessionMessage FIT message's maxTemperature field.
 
quint32 totalMovingTime
 The SessionMessage FIT message's totalMovingTime field.
 
qint16 avgPosVerticalSpeed
 The SessionMessage FIT message's avgPosVerticalSpeed field.
 
qint16 avgNegVerticalSpeed
 The SessionMessage FIT message's avgNegVerticalSpeed field.
 
qint16 maxPosVerticalSpeed
 The SessionMessage FIT message's maxPosVerticalSpeed field.
 
qint16 maxNegVerticalSpeed
 The SessionMessage FIT message's maxNegVerticalSpeed field.
 
quint8 minHeartRate
 The SessionMessage FIT message's minHeartRate field.
 
quint32 timeInHrZone
 The SessionMessage FIT message's timeInHrZone field.
 
quint32 timeInSpeedZone
 The SessionMessage FIT message's timeInSpeedZone field.
 
quint32 timeInCadenceZone
 The SessionMessage FIT message's timeInCadenceZone field.
 
quint32 timeInPowerZone
 The SessionMessage FIT message's timeInPowerZone field.
 
quint32 avgLapTime
 The SessionMessage FIT message's avgLapTime field.
 
quint16 bestLapIndex
 The SessionMessage FIT message's bestLapIndex field.
 
quint16 minAltitude
 The SessionMessage FIT message's minAltitude field.
 
quint16 playerScore
 The SessionMessage FIT message's playerScore field.
 
quint16 opponentScore
 The SessionMessage FIT message's opponentScore field.
 
QString opponentName
 The SessionMessage FIT message's opponentName field.
 
quint16 strokeCount
 The SessionMessage FIT message's strokeCount field. More...
 
quint16 zoneCount
 The SessionMessage FIT message's zoneCount field. More...
 
quint16 maxBallSpeed
 The SessionMessage FIT message's maxBallSpeed field.
 
quint16 avgBallSpeed
 The SessionMessage FIT message's avgBallSpeed field.
 
quint16 avgVerticalOscillation
 The SessionMessage FIT message's avgVerticalOscillation field.
 
quint16 avgStanceTimePercent
 The SessionMessage FIT message's avgStanceTimePercent field.
 
quint16 avgStanceTime
 The SessionMessage FIT message's avgStanceTime field.
 
quint8 avgFractionalCadence
 The SessionMessage FIT message's avgFractionalCadence field. More...
 
quint8 maxFractionalCadence
 The SessionMessage FIT message's maxFractionalCadence field. More...
 
quint8 totalFractionalCycles
 The SessionMessage FIT message's totalFractionalCycles field. More...
 
quint16 avgTotalHemoglobinConc
 The SessionMessage FIT message's avgTotalHemoglobinConc field. More...
 
quint16 minTotalHemoglobinConc
 The SessionMessage FIT message's minTotalHemoglobinConc field. More...
 
quint16 maxTotalHemoglobinConc
 The SessionMessage FIT message's maxTotalHemoglobinConc field. More...
 
quint16 avgSaturatedHemoglobinPercent
 The SessionMessage FIT message's avgSaturatedHemoglobinPercent field. More...
 
quint16 minSaturatedHemoglobinPercent
 The SessionMessage FIT message's minSaturatedHemoglobinPercent field. More...
 
quint16 maxSaturatedHemoglobinPercent
 The SessionMessage FIT message's maxSaturatedHemoglobinPercent field. More...
 
quint8 avgLeftTorqueEffectiveness
 The SessionMessage FIT message's avgLeftTorqueEffectiveness field.
 
quint8 avgRightTorqueEffectiveness
 The SessionMessage FIT message's avgRightTorqueEffectiveness field.
 
quint8 avgLeftPedalSmoothness
 The SessionMessage FIT message's avgLeftPedalSmoothness field.
 
quint8 avgRightPedalSmoothness
 The SessionMessage FIT message's avgRightPedalSmoothness field.
 
quint8 avgCombinedPedalSmoothness
 The SessionMessage FIT message's avgCombinedPedalSmoothness field.
 
quint8 sportIndex
 The SessionMessage FIT message's sportIndex field.
 
quint32 timeStanding
 The SessionMessage FIT message's timeStanding field. More...
 
quint16 standCount
 The SessionMessage FIT message's standCount field. More...
 
qint8 avgLeftPco
 The SessionMessage FIT message's avgLeftPco field. More...
 
qint8 avgRightPco
 The SessionMessage FIT message's avgRightPco field. More...
 
quint8 avgLeftPowerPhase
 The SessionMessage FIT message's avgLeftPowerPhase field. More...
 
quint8 avgLeftPowerPhasePeak
 The SessionMessage FIT message's avgLeftPowerPhasePeak field. More...
 
quint8 avgRightPowerPhase
 The SessionMessage FIT message's avgRightPowerPhase field. More...
 
quint8 avgRightPowerPhasePeak
 The SessionMessage FIT message's avgRightPowerPhasePeak field. More...
 
quint16 avgPowerPosition
 The SessionMessage FIT message's avgPowerPosition field. More...
 
quint16 maxPowerPosition
 The SessionMessage FIT message's maxPowerPosition field. More...
 
quint8 avgCadencePosition
 The SessionMessage FIT message's avgCadencePosition field. More...
 
quint8 maxCadencePosition
 The SessionMessage FIT message's maxCadencePosition field. More...
 
quint32 enhancedAvgSpeed
 The SessionMessage FIT message's enhancedAvgSpeed field. More...
 
quint32 enhancedMaxSpeed
 The SessionMessage FIT message's enhancedMaxSpeed field.
 
quint32 enhancedAvgAltitude
 The SessionMessage FIT message's enhancedAvgAltitude field.
 
quint32 enhancedMinAltitude
 The SessionMessage FIT message's enhancedMinAltitude field.
 
quint32 enhancedMaxAltitude
 The SessionMessage FIT message's enhancedMaxAltitude field.
 
quint16 avgLevMotorPower
 The SessionMessage FIT message's avgLevMotorPower field. More...
 
quint16 maxLevMotorPower
 The SessionMessage FIT message's maxLevMotorPower field. More...
 
quint8 levBatteryConsumption
 The SessionMessage FIT message's levBatteryConsumption field. More...
 
quint16 avgVerticalRatio
 The SessionMessage FIT message's avgVerticalRatio field.
 
quint16 avgStanceTimeBalance
 The SessionMessage FIT message's avgStanceTimeBalance field.
 
quint16 avgStepLength
 The SessionMessage FIT message's avgStepLength field.
 
quint8 totalAnaerobicTrainingEffect
 The SessionMessage FIT message's totalAnaerobicTrainingEffect field.
 
quint16 avgVam
 The SessionMessage FIT message's avgVam field.
 
float totalGrit
 The SessionMessage FIT message's totalGrit field. More...
 
float totalFlow
 The SessionMessage FIT message's totalFlow field. More...
 
quint16 jumpCount
 The SessionMessage FIT message's jumpCount field.
 
float avgGrit
 The SessionMessage FIT message's avgGrit field. More...
 
float avgFlow
 The SessionMessage FIT message's avgFlow field. More...
 
quint8 totalFractionalAscent
 The SessionMessage FIT message's totalFractionalAscent field. More...
 
quint8 totalFractionalDescent
 The SessionMessage FIT message's totalFractionalDescent field. More...
 
quint16 avgCoreTemperature
 The SessionMessage FIT message's avgCoreTemperature field.
 
quint16 minCoreTemperature
 The SessionMessage FIT message's minCoreTemperature field.
 
quint16 maxCoreTemperature
 The SessionMessage FIT message's maxCoreTemperature field.
 
- Public Attributes inherited from AbstractDataMessagePrivate
MesgNum globalMessageNumber
 FIT Globla Message Number for this FIT Data Message.
 

Protected Member Functions

bool setField (const int fieldId, const QByteArray &data, const FitBaseType baseType, const bool bigEndian) override
 
- Protected Member Functions inherited from AbstractDataMessagePrivate
bool verify (const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
 

Additional Inherited Members

- Protected Attributes inherited from AbstractDataMessagePrivate
AbstractDataMessage *const q_ptr
 Internal q-pointer.
 

Detailed Description

The SessionMessagePrivate class provides private implementation for the SessionMessage.

See also
SessionMessage

Definition at line 38 of file sessionmessage_p.h.

Constructor & Destructor Documentation

◆ SessionMessagePrivate()

SessionMessagePrivate::SessionMessagePrivate ( SessionMessage *const  q)
explicit

Constructs a SessionMessagePrivate object with public implementation q.

Parameters
qPointer to public implementaton.

Definition at line 2923 of file sessionmessage.cpp.

2925  , messageIndex(static_cast<MessageIndex>(-1))
2926  , timestamp(static_cast<DateTime>(-1))
2927  , event(static_cast<Event>(-1))
2928  , eventType(static_cast<EventType>(-1))
2929  , startTime(static_cast<DateTime>(-1))
2930  , startPositionLat(0x7FFFFFFF)
2931  , startPositionLong(0x7FFFFFFF)
2932  , sport(static_cast<Sport>(-1))
2933  , subSport(static_cast<SubSport>(-1))
2934  , totalElapsedTime(0xFFFFFFFF)
2935  , totalTimerTime(0xFFFFFFFF)
2936  , totalDistance(0xFFFFFFFF)
2937  , totalCycles(0xFFFFFFFF)
2938  , totalCalories(0xFFFF)
2939  , totalFatCalories(0xFFFF)
2940  , avgSpeed(0xFFFF)
2941  , maxSpeed(0xFFFF)
2942  , avgHeartRate(0xFF)
2943  , maxHeartRate(0xFF)
2944  , avgCadence(0xFF)
2945  , maxCadence(0xFF)
2946  , avgPower(0xFFFF)
2947  , maxPower(0xFFFF)
2948  , totalAscent(0xFFFF)
2949  , totalDescent(0xFFFF)
2950  , totalTrainingEffect(0xFF)
2951  , firstLapIndex(0xFFFF)
2952  , numLaps(0xFFFF)
2953  , eventGroup(0xFF)
2954  , trigger(static_cast<SessionTrigger>(-1))
2955  , necLat(0x7FFFFFFF)
2956  , necLong(0x7FFFFFFF)
2957  , swcLat(0x7FFFFFFF)
2958  , swcLong(0x7FFFFFFF)
2959  , numLengths(0xFFFF)
2960  , normalizedPower(0xFFFF)
2961  , trainingStressScore(0xFFFF)
2962  , intensityFactor(0xFFFF)
2963  , leftRightBalance(static_cast<LeftRightBalance100>(-1))
2964  , avgStrokeCount(0xFFFFFFFF)
2965  , avgStrokeDistance(0xFFFF)
2966  , swimStroke(static_cast<SwimStroke>(-1))
2967  , poolLength(0xFFFF)
2968  , thresholdPower(0xFFFF)
2969  , poolLengthUnit(static_cast<DisplayMeasure>(-1))
2970  , numActiveLengths(0xFFFF)
2971  , totalWork(0xFFFFFFFF)
2972  , avgAltitude(0xFFFF)
2973  , maxAltitude(0xFFFF)
2974  , gpsAccuracy(0xFF)
2975  , avgGrade(0x7FFF)
2976  , avgPosGrade(0x7FFF)
2977  , avgNegGrade(0x7FFF)
2978  , maxPosGrade(0x7FFF)
2979  , maxNegGrade(0x7FFF)
2980  , avgTemperature(0x7F)
2981  , maxTemperature(0x7F)
2982  , totalMovingTime(0xFFFFFFFF)
2983  , avgPosVerticalSpeed(0x7FFF)
2984  , avgNegVerticalSpeed(0x7FFF)
2985  , maxPosVerticalSpeed(0x7FFF)
2986  , maxNegVerticalSpeed(0x7FFF)
2987  , minHeartRate(0xFF)
2988  , timeInHrZone(0xFFFFFFFF)
2989  , timeInSpeedZone(0xFFFFFFFF)
2990  , timeInCadenceZone(0xFFFFFFFF)
2991  , timeInPowerZone(0xFFFFFFFF)
2992  , avgLapTime(0xFFFFFFFF)
2993  , bestLapIndex(0xFFFF)
2994  , minAltitude(0xFFFF)
2995  , playerScore(0xFFFF)
2996  , opponentScore(0xFFFF)
2997  , strokeCount(0xFFFF)
2998  , zoneCount(0xFFFF)
2999  , maxBallSpeed(0xFFFF)
3000  , avgBallSpeed(0xFFFF)
3001  , avgVerticalOscillation(0xFFFF)
3002  , avgStanceTimePercent(0xFFFF)
3003  , avgStanceTime(0xFFFF)
3004  , avgFractionalCadence(0xFF)
3005  , maxFractionalCadence(0xFF)
3006  , totalFractionalCycles(0xFF)
3007  , avgTotalHemoglobinConc(0xFFFF)
3008  , minTotalHemoglobinConc(0xFFFF)
3009  , maxTotalHemoglobinConc(0xFFFF)
3015  , avgLeftPedalSmoothness(0xFF)
3016  , avgRightPedalSmoothness(0xFF)
3018  , sportIndex(0xFF)
3019  , timeStanding(0xFFFFFFFF)
3020  , standCount(0xFFFF)
3021  , avgLeftPco(0x7F)
3022  , avgRightPco(0x7F)
3023  , avgLeftPowerPhase(0xFF)
3024  , avgLeftPowerPhasePeak(0xFF)
3025  , avgRightPowerPhase(0xFF)
3026  , avgRightPowerPhasePeak(0xFF)
3027  , avgPowerPosition(0xFFFF)
3028  , maxPowerPosition(0xFFFF)
3029  , avgCadencePosition(0xFF)
3030  , maxCadencePosition(0xFF)
3031  , enhancedAvgSpeed(0xFFFFFFFF)
3032  , enhancedMaxSpeed(0xFFFFFFFF)
3033  , enhancedAvgAltitude(0xFFFFFFFF)
3034  , enhancedMinAltitude(0xFFFFFFFF)
3035  , enhancedMaxAltitude(0xFFFFFFFF)
3036  , avgLevMotorPower(0xFFFF)
3037  , maxLevMotorPower(0xFFFF)
3038  , levBatteryConsumption(0xFF)
3039  , avgVerticalRatio(0xFFFF)
3040  , avgStanceTimeBalance(0xFFFF)
3041  , avgStepLength(0xFFFF)
3043  , avgVam(0xFFFF)
3044  , totalGrit(static_cast<float>(-1))
3045  , totalFlow(static_cast<float>(-1))
3046  , jumpCount(0xFFFF)
3047  , avgGrit(static_cast<float>(-1))
3048  , avgFlow(static_cast<float>(-1))
3049  , totalFractionalAscent(0xFF)
3050  , totalFractionalDescent(0xFF)
3051  , avgCoreTemperature(0xFFFF)
3052  , minCoreTemperature(0xFFFF)
3053  , maxCoreTemperature(0xFFFF)
3054 {
3055  globalMessageNumber = MesgNum::Session;
3056 }
MesgNum globalMessageNumber
FIT Globla Message Number for this FIT Data Message.
quint32 enhancedAvgSpeed
The SessionMessage FIT message's enhancedAvgSpeed field.
quint32 totalTimerTime
The SessionMessage FIT message's totalTimerTime field.
quint16 firstLapIndex
The SessionMessage FIT message's firstLapIndex field.
quint32 avgStrokeCount
The SessionMessage FIT message's avgStrokeCount field.
quint8 totalTrainingEffect
The SessionMessage FIT message's totalTrainingEffect field.
quint16 avgStepLength
The SessionMessage FIT message's avgStepLength field.
quint8 levBatteryConsumption
The SessionMessage FIT message's levBatteryConsumption field.
quint16 poolLength
The SessionMessage FIT message's poolLength field.
quint8 gpsAccuracy
The SessionMessage FIT message's gpsAccuracy field.
quint16 avgStanceTime
The SessionMessage FIT message's avgStanceTime field.
quint16 avgLevMotorPower
The SessionMessage FIT message's avgLevMotorPower field.
quint8 avgCadencePosition
The SessionMessage FIT message's avgCadencePosition field.
quint8 avgLeftPowerPhase
The SessionMessage FIT message's avgLeftPowerPhase field.
qint8 avgRightPco
The SessionMessage FIT message's avgRightPco field.
SessionTrigger trigger
The SessionMessage FIT message's trigger field.
quint16 jumpCount
The SessionMessage FIT message's jumpCount field.
quint16 numLaps
The SessionMessage FIT message's numLaps field.
quint32 totalDistance
The SessionMessage FIT message's totalDistance field.
qint16 maxNegVerticalSpeed
The SessionMessage FIT message's maxNegVerticalSpeed field.
quint16 avgTotalHemoglobinConc
The SessionMessage FIT message's avgTotalHemoglobinConc field.
quint16 numLengths
The SessionMessage FIT message's numLengths field.
float avgFlow
The SessionMessage FIT message's avgFlow field.
qint16 maxPosVerticalSpeed
The SessionMessage FIT message's maxPosVerticalSpeed field.
quint16 maxCoreTemperature
The SessionMessage FIT message's maxCoreTemperature field.
quint8 avgLeftTorqueEffectiveness
The SessionMessage FIT message's avgLeftTorqueEffectiveness field.
quint16 totalCalories
The SessionMessage FIT message's totalCalories field.
quint16 minSaturatedHemoglobinPercent
The SessionMessage FIT message's minSaturatedHemoglobinPercent field.
quint16 avgVerticalOscillation
The SessionMessage FIT message's avgVerticalOscillation field.
quint32 totalWork
The SessionMessage FIT message's totalWork field.
quint16 trainingStressScore
The SessionMessage FIT message's trainingStressScore field.
quint8 avgRightPowerPhase
The SessionMessage FIT message's avgRightPowerPhase field.
quint16 thresholdPower
The SessionMessage FIT message's thresholdPower field.
quint16 avgAltitude
The SessionMessage FIT message's avgAltitude field.
quint8 eventGroup
The SessionMessage FIT message's eventGroup field.
quint16 avgStrokeDistance
The SessionMessage FIT message's avgStrokeDistance field.
quint32 timeStanding
The SessionMessage FIT message's timeStanding field.
EventType eventType
The SessionMessage FIT message's eventType field.
Event event
The SessionMessage FIT message's event field.
float avgGrit
The SessionMessage FIT message's avgGrit field.
quint8 maxCadencePosition
The SessionMessage FIT message's maxCadencePosition field.
quint32 totalCycles
The SessionMessage FIT message's totalCycles field.
qint16 avgNegVerticalSpeed
The SessionMessage FIT message's avgNegVerticalSpeed field.
quint32 enhancedMaxSpeed
The SessionMessage FIT message's enhancedMaxSpeed field.
qint32 swcLat
The SessionMessage FIT message's swcLat field.
DateTime startTime
The SessionMessage FIT message's startTime field.
quint16 maxBallSpeed
The SessionMessage FIT message's maxBallSpeed field.
qint8 avgLeftPco
The SessionMessage FIT message's avgLeftPco field.
quint8 totalAnaerobicTrainingEffect
The SessionMessage FIT message's totalAnaerobicTrainingEffect field.
quint8 maxCadence
The SessionMessage FIT message's maxCadence field.
quint8 avgHeartRate
The SessionMessage FIT message's avgHeartRate field.
quint16 strokeCount
The SessionMessage FIT message's strokeCount field.
quint8 minHeartRate
The SessionMessage FIT message's minHeartRate field.
qint16 avgPosGrade
The SessionMessage FIT message's avgPosGrade field.
quint16 maxPowerPosition
The SessionMessage FIT message's maxPowerPosition field.
quint8 avgCombinedPedalSmoothness
The SessionMessage FIT message's avgCombinedPedalSmoothness field.
SubSport subSport
The SessionMessage FIT message's subSport field.
quint8 avgRightPedalSmoothness
The SessionMessage FIT message's avgRightPedalSmoothness field.
qint32 necLong
The SessionMessage FIT message's necLong field.
qint32 necLat
The SessionMessage FIT message's necLat field.
quint16 avgCoreTemperature
The SessionMessage FIT message's avgCoreTemperature field.
quint16 numActiveLengths
The SessionMessage FIT message's numActiveLengths field.
LeftRightBalance100 leftRightBalance
The SessionMessage FIT message's leftRightBalance field.
quint16 avgStanceTimeBalance
The SessionMessage FIT message's avgStanceTimeBalance field.
qint16 avgGrade
The SessionMessage FIT message's avgGrade field.
quint16 maxSpeed
The SessionMessage FIT message's maxSpeed field.
quint8 avgRightPowerPhasePeak
The SessionMessage FIT message's avgRightPowerPhasePeak field.
DisplayMeasure poolLengthUnit
The SessionMessage FIT message's poolLengthUnit field.
qint32 swcLong
The SessionMessage FIT message's swcLong field.
MessageIndex messageIndex
The SessionMessage FIT message's messageIndex field.
quint16 avgStanceTimePercent
The SessionMessage FIT message's avgStanceTimePercent field.
quint16 maxLevMotorPower
The SessionMessage FIT message's maxLevMotorPower field.
qint16 avgPosVerticalSpeed
The SessionMessage FIT message's avgPosVerticalSpeed field.
quint8 totalFractionalCycles
The SessionMessage FIT message's totalFractionalCycles field.
quint16 avgVerticalRatio
The SessionMessage FIT message's avgVerticalRatio field.
quint16 bestLapIndex
The SessionMessage FIT message's bestLapIndex field.
quint8 totalFractionalAscent
The SessionMessage FIT message's totalFractionalAscent field.
quint16 avgVam
The SessionMessage FIT message's avgVam field.
quint32 totalMovingTime
The SessionMessage FIT message's totalMovingTime field.
quint16 totalFatCalories
The SessionMessage FIT message's totalFatCalories field.
float totalGrit
The SessionMessage FIT message's totalGrit field.
quint32 timeInSpeedZone
The SessionMessage FIT message's timeInSpeedZone field.
quint8 maxHeartRate
The SessionMessage FIT message's maxHeartRate field.
quint16 normalizedPower
The SessionMessage FIT message's normalizedPower field.
quint16 maxPower
The SessionMessage FIT message's maxPower field.
quint32 enhancedAvgAltitude
The SessionMessage FIT message's enhancedAvgAltitude field.
qint8 avgTemperature
The SessionMessage FIT message's avgTemperature field.
quint32 enhancedMinAltitude
The SessionMessage FIT message's enhancedMinAltitude field.
quint16 playerScore
The SessionMessage FIT message's playerScore field.
quint8 maxFractionalCadence
The SessionMessage FIT message's maxFractionalCadence field.
quint16 opponentScore
The SessionMessage FIT message's opponentScore field.
Sport sport
The SessionMessage FIT message's sport field.
qint32 startPositionLat
The SessionMessage FIT message's startPositionLat field.
qint16 maxPosGrade
The SessionMessage FIT message's maxPosGrade field.
quint32 avgLapTime
The SessionMessage FIT message's avgLapTime field.
quint32 enhancedMaxAltitude
The SessionMessage FIT message's enhancedMaxAltitude field.
qint16 maxNegGrade
The SessionMessage FIT message's maxNegGrade field.
quint16 totalDescent
The SessionMessage FIT message's totalDescent field.
SwimStroke swimStroke
The SessionMessage FIT message's swimStroke field.
quint16 totalAscent
The SessionMessage FIT message's totalAscent field.
quint32 timeInPowerZone
The SessionMessage FIT message's timeInPowerZone field.
quint16 intensityFactor
The SessionMessage FIT message's intensityFactor field.
float totalFlow
The SessionMessage FIT message's totalFlow field.
quint16 avgSaturatedHemoglobinPercent
The SessionMessage FIT message's avgSaturatedHemoglobinPercent field.
quint16 avgPowerPosition
The SessionMessage FIT message's avgPowerPosition field.
quint16 minCoreTemperature
The SessionMessage FIT message's minCoreTemperature field.
quint16 minTotalHemoglobinConc
The SessionMessage FIT message's minTotalHemoglobinConc field.
quint16 minAltitude
The SessionMessage FIT message's minAltitude field.
quint8 sportIndex
The SessionMessage FIT message's sportIndex field.
DateTime timestamp
The SessionMessage FIT message's timestamp field.
quint16 avgBallSpeed
The SessionMessage FIT message's avgBallSpeed field.
quint16 avgSpeed
The SessionMessage FIT message's avgSpeed field.
quint16 zoneCount
The SessionMessage FIT message's zoneCount field.
quint32 timeInHrZone
The SessionMessage FIT message's timeInHrZone field.
qint16 avgNegGrade
The SessionMessage FIT message's avgNegGrade field.
quint16 maxTotalHemoglobinConc
The SessionMessage FIT message's maxTotalHemoglobinConc field.
quint16 standCount
The SessionMessage FIT message's standCount field.
quint8 avgLeftPedalSmoothness
The SessionMessage FIT message's avgLeftPedalSmoothness field.
quint16 maxSaturatedHemoglobinPercent
The SessionMessage FIT message's maxSaturatedHemoglobinPercent field.
quint8 totalFractionalDescent
The SessionMessage FIT message's totalFractionalDescent field.
quint32 timeInCadenceZone
The SessionMessage FIT message's timeInCadenceZone field.
quint16 avgPower
The SessionMessage FIT message's avgPower field.
quint8 avgCadence
The SessionMessage FIT message's avgCadence field.
quint16 maxAltitude
The SessionMessage FIT message's maxAltitude field.
quint8 avgLeftPowerPhasePeak
The SessionMessage FIT message's avgLeftPowerPhasePeak field.
quint8 avgFractionalCadence
The SessionMessage FIT message's avgFractionalCadence field.
qint8 maxTemperature
The SessionMessage FIT message's maxTemperature field.
qint32 startPositionLong
The SessionMessage FIT message's startPositionLong field.
quint8 avgRightTorqueEffectiveness
The SessionMessage FIT message's avgRightTorqueEffectiveness field.
quint32 totalElapsedTime
The SessionMessage FIT message's totalElapsedTime field.
SwimStroke
Garmin FIT SwimStroke type.
Definition: types.h:2262
EventType
Garmin FIT EventType type.
Definition: types.h:1182
Event
Garmin FIT Event type.
Definition: types.h:1133
LeftRightBalance100
Garmin FIT LeftRightBalance100 type.
Definition: types.h:2377
Sport
Garmin FIT Sport type.
Definition: types.h:685
SessionTrigger
Garmin FIT SessionTrigger type.
Definition: types.h:1013
DisplayMeasure
Garmin FIT DisplayMeasure type.
Definition: types.h:572
MessageIndex
Garmin FIT MessageIndex type.
Definition: types.h:263
SubSport
Garmin FIT SubSport type.
Definition: types.h:881
DateTime
Seconds since UTC 00:00 Dec 31 1989.
Definition: types.h:237

References AbstractDataMessagePrivate::globalMessageNumber.

◆ ~SessionMessagePrivate()

SessionMessagePrivate::~SessionMessagePrivate ( )
virtual

Destroys the SessionMessagePrivate object.

Definition at line 3063 of file sessionmessage.cpp.

3064 {
3065 
3066 }

Member Function Documentation

◆ setField()

bool SessionMessagePrivate::setField ( const int  fieldId,
const QByteArray &  data,
const FitBaseType  baseType,
const bool  bigEndian 
)
overrideprotectedvirtual

Sets the value of the fieldId field.

Derived classes must implement this method to extract the baseType value from data, and assign the extracted value the fieldId field.

Parameters
fieldIdThe field number within the given FIT data message.
dataThe raw data to extract the field value from.
baseTypeThe FIT base type for the field.
bigEndianWhether or not multibyte values in record are big-endian.
Returns
true if the field was set, or safely ignored; false otherwise.

Implements AbstractDataMessagePrivate.

Definition at line 3068 of file sessionmessage.cpp.

3070 {
3071  switch (fieldId) {
3072  case 254: // See Profile.xlsx::Messages:session.messageIndex
3073  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.messageIndex")) return false;
3074  this->messageIndex = static_cast<MessageIndex>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3075  break;
3076  case 253: // See Profile.xlsx::Messages:session.timestamp
3077  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timestamp")) return false;
3078  this->timestamp = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3079  break;
3080  case 0: // See Profile.xlsx::Messages:session.event
3081  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.event")) return false;
3082  this->event = static_cast<Event>(data.at(0));
3083  break;
3084  case 1: // See Profile.xlsx::Messages:session.eventType
3085  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.eventType")) return false;
3086  this->eventType = static_cast<EventType>(data.at(0));
3087  break;
3088  case 2: // See Profile.xlsx::Messages:session.startTime
3089  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.startTime")) return false;
3090  this->startTime = static_cast<DateTime>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3091  break;
3092  case 3: // See Profile.xlsx::Messages:session.startPositionLat
3093  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.startPositionLat")) return false;
3094  this->startPositionLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3095  break;
3096  case 4: // See Profile.xlsx::Messages:session.startPositionLong
3097  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.startPositionLong")) return false;
3098  this->startPositionLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3099  break;
3100  case 5: // See Profile.xlsx::Messages:session.sport
3101  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.sport")) return false;
3102  this->sport = static_cast<Sport>(data.at(0));
3103  break;
3104  case 6: // See Profile.xlsx::Messages:session.subSport
3105  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.subSport")) return false;
3106  this->subSport = static_cast<SubSport>(data.at(0));
3107  break;
3108  case 7: // See Profile.xlsx::Messages:session.totalElapsedTime
3109  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalElapsedTime")) return false;
3110  this->totalElapsedTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3111  break;
3112  case 8: // See Profile.xlsx::Messages:session.totalTimerTime
3113  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalTimerTime")) return false;
3114  this->totalTimerTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3115  break;
3116  case 9: // See Profile.xlsx::Messages:session.totalDistance
3117  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalDistance")) return false;
3118  this->totalDistance = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3119  break;
3120  case 10: // See Profile.xlsx::Messages:session.totalCycles
3121  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalCycles")) return false;
3122  this->totalCycles = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3123  break;
3124  case 11: // See Profile.xlsx::Messages:session.totalCalories
3125  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.totalCalories")) return false;
3126  this->totalCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3127  break;
3128  case 13: // See Profile.xlsx::Messages:session.totalFatCalories
3129  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.totalFatCalories")) return false;
3130  this->totalFatCalories = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3131  break;
3132  case 14: // See Profile.xlsx::Messages:session.avgSpeed
3133  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgSpeed")) return false;
3134  this->avgSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3135  break;
3136  case 15: // See Profile.xlsx::Messages:session.maxSpeed
3137  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxSpeed")) return false;
3138  this->maxSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3139  break;
3140  case 16: // See Profile.xlsx::Messages:session.avgHeartRate
3141  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgHeartRate")) return false;
3142  this->avgHeartRate = static_cast<quint8>(data.at(0));
3143  break;
3144  case 17: // See Profile.xlsx::Messages:session.maxHeartRate
3145  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.maxHeartRate")) return false;
3146  this->maxHeartRate = static_cast<quint8>(data.at(0));
3147  break;
3148  case 18: // See Profile.xlsx::Messages:session.avgCadence
3149  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgCadence")) return false;
3150  this->avgCadence = static_cast<quint8>(data.at(0));
3151  break;
3152  case 19: // See Profile.xlsx::Messages:session.maxCadence
3153  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.maxCadence")) return false;
3154  this->maxCadence = static_cast<quint8>(data.at(0));
3155  break;
3156  case 20: // See Profile.xlsx::Messages:session.avgPower
3157  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgPower")) return false;
3158  this->avgPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3159  break;
3160  case 21: // See Profile.xlsx::Messages:session.maxPower
3161  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxPower")) return false;
3162  this->maxPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3163  break;
3164  case 22: // See Profile.xlsx::Messages:session.totalAscent
3165  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.totalAscent")) return false;
3166  this->totalAscent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3167  break;
3168  case 23: // See Profile.xlsx::Messages:session.totalDescent
3169  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.totalDescent")) return false;
3170  this->totalDescent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3171  break;
3172  case 24: // See Profile.xlsx::Messages:session.totalTrainingEffect
3173  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.totalTrainingEffect")) return false;
3174  this->totalTrainingEffect = static_cast<quint8>(data.at(0));
3175  break;
3176  case 25: // See Profile.xlsx::Messages:session.firstLapIndex
3177  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.firstLapIndex")) return false;
3178  this->firstLapIndex = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3179  break;
3180  case 26: // See Profile.xlsx::Messages:session.numLaps
3181  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.numLaps")) return false;
3182  this->numLaps = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3183  break;
3184  case 27: // See Profile.xlsx::Messages:session.eventGroup
3185  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.eventGroup")) return false;
3186  this->eventGroup = static_cast<quint8>(data.at(0));
3187  break;
3188  case 28: // See Profile.xlsx::Messages:session.trigger
3189  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.trigger")) return false;
3190  this->trigger = static_cast<SessionTrigger>(data.at(0));
3191  break;
3192  case 29: // See Profile.xlsx::Messages:session.necLat
3193  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.necLat")) return false;
3194  this->necLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3195  break;
3196  case 30: // See Profile.xlsx::Messages:session.necLong
3197  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.necLong")) return false;
3198  this->necLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3199  break;
3200  case 31: // See Profile.xlsx::Messages:session.swcLat
3201  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.swcLat")) return false;
3202  this->swcLat = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3203  break;
3204  case 32: // See Profile.xlsx::Messages:session.swcLong
3205  if (!verify(data, baseType, 4, FitBaseType::Sint32, "session.swcLong")) return false;
3206  this->swcLong = static_cast<qint32>(bigEndian ? qFromBigEndian< qint32>(data) : qFromLittleEndian< qint32>(data));
3207  break;
3208  case 33: // See Profile.xlsx::Messages:session.numLengths
3209  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.numLengths")) return false;
3210  this->numLengths = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3211  break;
3212  case 34: // See Profile.xlsx::Messages:session.normalizedPower
3213  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.normalizedPower")) return false;
3214  this->normalizedPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3215  break;
3216  case 35: // See Profile.xlsx::Messages:session.trainingStressScore
3217  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.trainingStressScore")) return false;
3218  this->trainingStressScore = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3219  break;
3220  case 36: // See Profile.xlsx::Messages:session.intensityFactor
3221  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.intensityFactor")) return false;
3222  this->intensityFactor = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3223  break;
3224  case 37: // See Profile.xlsx::Messages:session.leftRightBalance
3225  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.leftRightBalance")) return false;
3226  this->leftRightBalance = static_cast<LeftRightBalance100>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3227  break;
3228  case 41: // See Profile.xlsx::Messages:session.avgStrokeCount
3229  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.avgStrokeCount")) return false;
3230  this->avgStrokeCount = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3231  break;
3232  case 42: // See Profile.xlsx::Messages:session.avgStrokeDistance
3233  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgStrokeDistance")) return false;
3234  this->avgStrokeDistance = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3235  break;
3236  case 43: // See Profile.xlsx::Messages:session.swimStroke
3237  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.swimStroke")) return false;
3238  this->swimStroke = static_cast<SwimStroke>(data.at(0));
3239  break;
3240  case 44: // See Profile.xlsx::Messages:session.poolLength
3241  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.poolLength")) return false;
3242  this->poolLength = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3243  break;
3244  case 45: // See Profile.xlsx::Messages:session.thresholdPower
3245  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.thresholdPower")) return false;
3246  this->thresholdPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3247  break;
3248  case 46: // See Profile.xlsx::Messages:session.poolLengthUnit
3249  if (!verify(data, baseType, 1, FitBaseType::Enum, "session.poolLengthUnit")) return false;
3250  this->poolLengthUnit = static_cast<DisplayMeasure>(data.at(0));
3251  break;
3252  case 47: // See Profile.xlsx::Messages:session.numActiveLengths
3253  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.numActiveLengths")) return false;
3254  this->numActiveLengths = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3255  break;
3256  case 48: // See Profile.xlsx::Messages:session.totalWork
3257  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalWork")) return false;
3258  this->totalWork = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3259  break;
3260  case 49: // See Profile.xlsx::Messages:session.avgAltitude
3261  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgAltitude")) return false;
3262  this->avgAltitude = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3263  break;
3264  case 50: // See Profile.xlsx::Messages:session.maxAltitude
3265  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxAltitude")) return false;
3266  this->maxAltitude = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3267  break;
3268  case 51: // See Profile.xlsx::Messages:session.gpsAccuracy
3269  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.gpsAccuracy")) return false;
3270  this->gpsAccuracy = static_cast<quint8>(data.at(0));
3271  break;
3272  case 52: // See Profile.xlsx::Messages:session.avgGrade
3273  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.avgGrade")) return false;
3274  this->avgGrade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3275  break;
3276  case 53: // See Profile.xlsx::Messages:session.avgPosGrade
3277  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.avgPosGrade")) return false;
3278  this->avgPosGrade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3279  break;
3280  case 54: // See Profile.xlsx::Messages:session.avgNegGrade
3281  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.avgNegGrade")) return false;
3282  this->avgNegGrade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3283  break;
3284  case 55: // See Profile.xlsx::Messages:session.maxPosGrade
3285  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.maxPosGrade")) return false;
3286  this->maxPosGrade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3287  break;
3288  case 56: // See Profile.xlsx::Messages:session.maxNegGrade
3289  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.maxNegGrade")) return false;
3290  this->maxNegGrade = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3291  break;
3292  case 57: // See Profile.xlsx::Messages:session.avgTemperature
3293  if (!verify(data, baseType, 1, FitBaseType::Sint8, "session.avgTemperature")) return false;
3294  this->avgTemperature = static_cast<qint8>(data.at(0));
3295  break;
3296  case 58: // See Profile.xlsx::Messages:session.maxTemperature
3297  if (!verify(data, baseType, 1, FitBaseType::Sint8, "session.maxTemperature")) return false;
3298  this->maxTemperature = static_cast<qint8>(data.at(0));
3299  break;
3300  case 59: // See Profile.xlsx::Messages:session.totalMovingTime
3301  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.totalMovingTime")) return false;
3302  this->totalMovingTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3303  break;
3304  case 60: // See Profile.xlsx::Messages:session.avgPosVerticalSpeed
3305  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.avgPosVerticalSpeed")) return false;
3306  this->avgPosVerticalSpeed = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3307  break;
3308  case 61: // See Profile.xlsx::Messages:session.avgNegVerticalSpeed
3309  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.avgNegVerticalSpeed")) return false;
3310  this->avgNegVerticalSpeed = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3311  break;
3312  case 62: // See Profile.xlsx::Messages:session.maxPosVerticalSpeed
3313  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.maxPosVerticalSpeed")) return false;
3314  this->maxPosVerticalSpeed = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3315  break;
3316  case 63: // See Profile.xlsx::Messages:session.maxNegVerticalSpeed
3317  if (!verify(data, baseType, 2, FitBaseType::Sint16, "session.maxNegVerticalSpeed")) return false;
3318  this->maxNegVerticalSpeed = static_cast<qint16>(bigEndian ? qFromBigEndian< qint16>(data) : qFromLittleEndian< qint16>(data));
3319  break;
3320  case 64: // See Profile.xlsx::Messages:session.minHeartRate
3321  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.minHeartRate")) return false;
3322  this->minHeartRate = static_cast<quint8>(data.at(0));
3323  break;
3324  case 65: // See Profile.xlsx::Messages:session.timeInHrZone
3325  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timeInHrZone")) return false;
3326  this->timeInHrZone = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3327  break;
3328  case 66: // See Profile.xlsx::Messages:session.timeInSpeedZone
3329  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timeInSpeedZone")) return false;
3330  this->timeInSpeedZone = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3331  break;
3332  case 67: // See Profile.xlsx::Messages:session.timeInCadenceZone
3333  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timeInCadenceZone")) return false;
3334  this->timeInCadenceZone = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3335  break;
3336  case 68: // See Profile.xlsx::Messages:session.timeInPowerZone
3337  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timeInPowerZone")) return false;
3338  this->timeInPowerZone = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3339  break;
3340  case 69: // See Profile.xlsx::Messages:session.avgLapTime
3341  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.avgLapTime")) return false;
3342  this->avgLapTime = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3343  break;
3344  case 70: // See Profile.xlsx::Messages:session.bestLapIndex
3345  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.bestLapIndex")) return false;
3346  this->bestLapIndex = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3347  break;
3348  case 71: // See Profile.xlsx::Messages:session.minAltitude
3349  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.minAltitude")) return false;
3350  this->minAltitude = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3351  break;
3352  case 82: // See Profile.xlsx::Messages:session.playerScore
3353  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.playerScore")) return false;
3354  this->playerScore = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3355  break;
3356  case 83: // See Profile.xlsx::Messages:session.opponentScore
3357  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.opponentScore")) return false;
3358  this->opponentScore = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3359  break;
3360  case 84: // See Profile.xlsx::Messages:session.opponentName
3361  if (!verify(data, baseType, 1, FitBaseType::String, "session.opponentName")) return false;
3362  this->opponentName = QString::fromUtf8(data);
3363  break;
3364  case 85: // See Profile.xlsx::Messages:session.strokeCount
3365  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.strokeCount")) return false;
3366  this->strokeCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3367  break;
3368  case 86: // See Profile.xlsx::Messages:session.zoneCount
3369  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.zoneCount")) return false;
3370  this->zoneCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3371  break;
3372  case 87: // See Profile.xlsx::Messages:session.maxBallSpeed
3373  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxBallSpeed")) return false;
3374  this->maxBallSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3375  break;
3376  case 88: // See Profile.xlsx::Messages:session.avgBallSpeed
3377  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgBallSpeed")) return false;
3378  this->avgBallSpeed = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3379  break;
3380  case 89: // See Profile.xlsx::Messages:session.avgVerticalOscillation
3381  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgVerticalOscillation")) return false;
3382  this->avgVerticalOscillation = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3383  break;
3384  case 90: // See Profile.xlsx::Messages:session.avgStanceTimePercent
3385  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgStanceTimePercent")) return false;
3386  this->avgStanceTimePercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3387  break;
3388  case 91: // See Profile.xlsx::Messages:session.avgStanceTime
3389  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgStanceTime")) return false;
3390  this->avgStanceTime = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3391  break;
3392  case 92: // See Profile.xlsx::Messages:session.avgFractionalCadence
3393  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgFractionalCadence")) return false;
3394  this->avgFractionalCadence = static_cast<quint8>(data.at(0));
3395  break;
3396  case 93: // See Profile.xlsx::Messages:session.maxFractionalCadence
3397  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.maxFractionalCadence")) return false;
3398  this->maxFractionalCadence = static_cast<quint8>(data.at(0));
3399  break;
3400  case 94: // See Profile.xlsx::Messages:session.totalFractionalCycles
3401  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.totalFractionalCycles")) return false;
3402  this->totalFractionalCycles = static_cast<quint8>(data.at(0));
3403  break;
3404  case 95: // See Profile.xlsx::Messages:session.avgTotalHemoglobinConc
3405  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgTotalHemoglobinConc")) return false;
3406  this->avgTotalHemoglobinConc = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3407  break;
3408  case 96: // See Profile.xlsx::Messages:session.minTotalHemoglobinConc
3409  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.minTotalHemoglobinConc")) return false;
3410  this->minTotalHemoglobinConc = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3411  break;
3412  case 97: // See Profile.xlsx::Messages:session.maxTotalHemoglobinConc
3413  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxTotalHemoglobinConc")) return false;
3414  this->maxTotalHemoglobinConc = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3415  break;
3416  case 98: // See Profile.xlsx::Messages:session.avgSaturatedHemoglobinPercent
3417  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgSaturatedHemoglobinPercent")) return false;
3418  this->avgSaturatedHemoglobinPercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3419  break;
3420  case 99: // See Profile.xlsx::Messages:session.minSaturatedHemoglobinPercent
3421  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.minSaturatedHemoglobinPercent")) return false;
3422  this->minSaturatedHemoglobinPercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3423  break;
3424  case 100: // See Profile.xlsx::Messages:session.maxSaturatedHemoglobinPercent
3425  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxSaturatedHemoglobinPercent")) return false;
3426  this->maxSaturatedHemoglobinPercent = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3427  break;
3428  case 101: // See Profile.xlsx::Messages:session.avgLeftTorqueEffectiveness
3429  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgLeftTorqueEffectiveness")) return false;
3430  this->avgLeftTorqueEffectiveness = static_cast<quint8>(data.at(0));
3431  break;
3432  case 102: // See Profile.xlsx::Messages:session.avgRightTorqueEffectiveness
3433  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgRightTorqueEffectiveness")) return false;
3434  this->avgRightTorqueEffectiveness = static_cast<quint8>(data.at(0));
3435  break;
3436  case 103: // See Profile.xlsx::Messages:session.avgLeftPedalSmoothness
3437  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgLeftPedalSmoothness")) return false;
3438  this->avgLeftPedalSmoothness = static_cast<quint8>(data.at(0));
3439  break;
3440  case 104: // See Profile.xlsx::Messages:session.avgRightPedalSmoothness
3441  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgRightPedalSmoothness")) return false;
3442  this->avgRightPedalSmoothness = static_cast<quint8>(data.at(0));
3443  break;
3444  case 105: // See Profile.xlsx::Messages:session.avgCombinedPedalSmoothness
3445  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgCombinedPedalSmoothness")) return false;
3446  this->avgCombinedPedalSmoothness = static_cast<quint8>(data.at(0));
3447  break;
3448  case 111: // See Profile.xlsx::Messages:session.sportIndex
3449  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.sportIndex")) return false;
3450  this->sportIndex = static_cast<quint8>(data.at(0));
3451  break;
3452  case 112: // See Profile.xlsx::Messages:session.timeStanding
3453  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.timeStanding")) return false;
3454  this->timeStanding = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3455  break;
3456  case 113: // See Profile.xlsx::Messages:session.standCount
3457  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.standCount")) return false;
3458  this->standCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3459  break;
3460  case 114: // See Profile.xlsx::Messages:session.avgLeftPco
3461  if (!verify(data, baseType, 1, FitBaseType::Sint8, "session.avgLeftPco")) return false;
3462  this->avgLeftPco = static_cast<qint8>(data.at(0));
3463  break;
3464  case 115: // See Profile.xlsx::Messages:session.avgRightPco
3465  if (!verify(data, baseType, 1, FitBaseType::Sint8, "session.avgRightPco")) return false;
3466  this->avgRightPco = static_cast<qint8>(data.at(0));
3467  break;
3468  case 116: // See Profile.xlsx::Messages:session.avgLeftPowerPhase
3469  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgLeftPowerPhase")) return false;
3470  this->avgLeftPowerPhase = static_cast<quint8>(data.at(0));
3471  break;
3472  case 117: // See Profile.xlsx::Messages:session.avgLeftPowerPhasePeak
3473  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgLeftPowerPhasePeak")) return false;
3474  this->avgLeftPowerPhasePeak = static_cast<quint8>(data.at(0));
3475  break;
3476  case 118: // See Profile.xlsx::Messages:session.avgRightPowerPhase
3477  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgRightPowerPhase")) return false;
3478  this->avgRightPowerPhase = static_cast<quint8>(data.at(0));
3479  break;
3480  case 119: // See Profile.xlsx::Messages:session.avgRightPowerPhasePeak
3481  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgRightPowerPhasePeak")) return false;
3482  this->avgRightPowerPhasePeak = static_cast<quint8>(data.at(0));
3483  break;
3484  case 120: // See Profile.xlsx::Messages:session.avgPowerPosition
3485  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgPowerPosition")) return false;
3486  this->avgPowerPosition = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3487  break;
3488  case 121: // See Profile.xlsx::Messages:session.maxPowerPosition
3489  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxPowerPosition")) return false;
3490  this->maxPowerPosition = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3491  break;
3492  case 122: // See Profile.xlsx::Messages:session.avgCadencePosition
3493  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.avgCadencePosition")) return false;
3494  this->avgCadencePosition = static_cast<quint8>(data.at(0));
3495  break;
3496  case 123: // See Profile.xlsx::Messages:session.maxCadencePosition
3497  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.maxCadencePosition")) return false;
3498  this->maxCadencePosition = static_cast<quint8>(data.at(0));
3499  break;
3500  case 124: // See Profile.xlsx::Messages:session.enhancedAvgSpeed
3501  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.enhancedAvgSpeed")) return false;
3502  this->enhancedAvgSpeed = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3503  break;
3504  case 125: // See Profile.xlsx::Messages:session.enhancedMaxSpeed
3505  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.enhancedMaxSpeed")) return false;
3506  this->enhancedMaxSpeed = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3507  break;
3508  case 126: // See Profile.xlsx::Messages:session.enhancedAvgAltitude
3509  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.enhancedAvgAltitude")) return false;
3510  this->enhancedAvgAltitude = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3511  break;
3512  case 127: // See Profile.xlsx::Messages:session.enhancedMinAltitude
3513  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.enhancedMinAltitude")) return false;
3514  this->enhancedMinAltitude = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3515  break;
3516  case 128: // See Profile.xlsx::Messages:session.enhancedMaxAltitude
3517  if (!verify(data, baseType, 4, FitBaseType::Uint32, "session.enhancedMaxAltitude")) return false;
3518  this->enhancedMaxAltitude = static_cast<quint32>(bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data));
3519  break;
3520  case 129: // See Profile.xlsx::Messages:session.avgLevMotorPower
3521  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgLevMotorPower")) return false;
3522  this->avgLevMotorPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3523  break;
3524  case 130: // See Profile.xlsx::Messages:session.maxLevMotorPower
3525  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxLevMotorPower")) return false;
3526  this->maxLevMotorPower = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3527  break;
3528  case 131: // See Profile.xlsx::Messages:session.levBatteryConsumption
3529  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.levBatteryConsumption")) return false;
3530  this->levBatteryConsumption = static_cast<quint8>(data.at(0));
3531  break;
3532  case 132: // See Profile.xlsx::Messages:session.avgVerticalRatio
3533  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgVerticalRatio")) return false;
3534  this->avgVerticalRatio = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3535  break;
3536  case 133: // See Profile.xlsx::Messages:session.avgStanceTimeBalance
3537  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgStanceTimeBalance")) return false;
3538  this->avgStanceTimeBalance = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3539  break;
3540  case 134: // See Profile.xlsx::Messages:session.avgStepLength
3541  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgStepLength")) return false;
3542  this->avgStepLength = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3543  break;
3544  case 137: // See Profile.xlsx::Messages:session.totalAnaerobicTrainingEffect
3545  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.totalAnaerobicTrainingEffect")) return false;
3546  this->totalAnaerobicTrainingEffect = static_cast<quint8>(data.at(0));
3547  break;
3548  case 139: // See Profile.xlsx::Messages:session.avgVam
3549  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgVam")) return false;
3550  this->avgVam = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3551  break;
3552  case 181: // See Profile.xlsx::Messages:session.totalGrit
3553  if (!verify(data, baseType, 4, FitBaseType::Float32, "session.totalGrit")) return false;
3554  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
3555  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
3556  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
3557  static_assert(sizeof(localEndian) == 4, "src not expected size");
3558  static_assert(sizeof(this->totalGrit) == 4, "src and dst not the same size");
3559  memcpy(&this->totalGrit, &localEndian, data.size());
3560  }
3561  #else
3562  this->totalGrit = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
3563  #endif
3564  break;
3565  case 182: // See Profile.xlsx::Messages:session.totalFlow
3566  if (!verify(data, baseType, 4, FitBaseType::Float32, "session.totalFlow")) return false;
3567  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
3568  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
3569  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
3570  static_assert(sizeof(localEndian) == 4, "src not expected size");
3571  static_assert(sizeof(this->totalFlow) == 4, "src and dst not the same size");
3572  memcpy(&this->totalFlow, &localEndian, data.size());
3573  }
3574  #else
3575  this->totalFlow = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
3576  #endif
3577  break;
3578  case 183: // See Profile.xlsx::Messages:session.jumpCount
3579  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.jumpCount")) return false;
3580  this->jumpCount = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3581  break;
3582  case 186: // See Profile.xlsx::Messages:session.avgGrit
3583  if (!verify(data, baseType, 4, FitBaseType::Float32, "session.avgGrit")) return false;
3584  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
3585  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
3586  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
3587  static_assert(sizeof(localEndian) == 4, "src not expected size");
3588  static_assert(sizeof(this->avgGrit) == 4, "src and dst not the same size");
3589  memcpy(&this->avgGrit, &localEndian, data.size());
3590  }
3591  #else
3592  this->avgGrit = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
3593  #endif
3594  break;
3595  case 187: // See Profile.xlsx::Messages:session.avgFlow
3596  if (!verify(data, baseType, 4, FitBaseType::Float32, "session.avgFlow")) return false;
3597  #if QT_VERSION < QT_VERSION_CHECK(5, 12, 0)
3598  { // Qt's from-endian functions have no float/double specialisations prior to Qt 5.12.
3599  const quint32 localEndian = bigEndian ? qFromBigEndian<quint32>(data) : qFromLittleEndian<quint32>(data);
3600  static_assert(sizeof(localEndian) == 4, "src not expected size");
3601  static_assert(sizeof(this->avgFlow) == 4, "src and dst not the same size");
3602  memcpy(&this->avgFlow, &localEndian, data.size());
3603  }
3604  #else
3605  this->avgFlow = static_cast<float>(bigEndian ? qFromBigEndian<float>(data) : qFromLittleEndian<float>(data));
3606  #endif
3607  break;
3608  case 199: // See Profile.xlsx::Messages:session.totalFractionalAscent
3609  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.totalFractionalAscent")) return false;
3610  this->totalFractionalAscent = static_cast<quint8>(data.at(0));
3611  break;
3612  case 200: // See Profile.xlsx::Messages:session.totalFractionalDescent
3613  if (!verify(data, baseType, 1, FitBaseType::Uint8, "session.totalFractionalDescent")) return false;
3614  this->totalFractionalDescent = static_cast<quint8>(data.at(0));
3615  break;
3616  case 208: // See Profile.xlsx::Messages:session.avgCoreTemperature
3617  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.avgCoreTemperature")) return false;
3618  this->avgCoreTemperature = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3619  break;
3620  case 209: // See Profile.xlsx::Messages:session.minCoreTemperature
3621  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.minCoreTemperature")) return false;
3622  this->minCoreTemperature = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3623  break;
3624  case 210: // See Profile.xlsx::Messages:session.maxCoreTemperature
3625  if (!verify(data, baseType, 2, FitBaseType::Uint16, "session.maxCoreTemperature")) return false;
3626  this->maxCoreTemperature = static_cast<quint16>(bigEndian ? qFromBigEndian<quint16>(data) : qFromLittleEndian<quint16>(data));
3627  break;
3628  default:
3629  qWarning() << "ignoring unknown session message field number" << fieldId << bigEndian;
3630  // Fall through to return true, as its still 'safe' to continue parsing data messages.
3631  }
3632  return true;
3633 }
bool verify(const QByteArray &data, const FitBaseType actualType, const int expectedSize, const FitBaseType expectedType, const char *messageFieldName)
QString opponentName
The SessionMessage FIT message's opponentName field.

References AbstractDataMessagePrivate::verify().

Here is the call graph for this function:

Member Data Documentation

◆ avgCadence

quint8 SessionMessagePrivate::avgCadence

The SessionMessage FIT message's avgCadence field.

total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time

Definition at line 158 of file sessionmessage_p.h.

◆ avgCadencePosition

quint8 SessionMessagePrivate::avgCadencePosition

The SessionMessage FIT message's avgCadencePosition field.

Average cadence by position. Data value indexes defined by rider_position_type.

Definition at line 647 of file sessionmessage_p.h.

◆ avgFlow

float SessionMessagePrivate::avgFlow

The SessionMessage FIT message's avgFlow field.

The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals.

Definition at line 764 of file sessionmessage_p.h.

◆ avgFractionalCadence

quint8 SessionMessagePrivate::avgFractionalCadence

The SessionMessage FIT message's avgFractionalCadence field.

fractional part of the avg_cadence

Definition at line 484 of file sessionmessage_p.h.

◆ avgGrit

float SessionMessagePrivate::avgGrit

The SessionMessage FIT message's avgGrit field.

The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes.

Definition at line 756 of file sessionmessage_p.h.

◆ avgHeartRate

quint8 SessionMessagePrivate::avgHeartRate

The SessionMessage FIT message's avgHeartRate field.

average heart rate (excludes pause time)

Definition at line 145 of file sessionmessage_p.h.

◆ avgLeftPco

qint8 SessionMessagePrivate::avgLeftPco

The SessionMessage FIT message's avgLeftPco field.

Average platform center offset Left

Definition at line 591 of file sessionmessage_p.h.

◆ avgLeftPowerPhase

quint8 SessionMessagePrivate::avgLeftPowerPhase

The SessionMessage FIT message's avgLeftPowerPhase field.

Average left power phase angles. Indexes defined by power_phase_type.

Definition at line 605 of file sessionmessage_p.h.

◆ avgLeftPowerPhasePeak

quint8 SessionMessagePrivate::avgLeftPowerPhasePeak

The SessionMessage FIT message's avgLeftPowerPhasePeak field.

Average left power phase peak angles. Data value indexes defined by power_phase_type.

Definition at line 612 of file sessionmessage_p.h.

◆ avgLevMotorPower

quint16 SessionMessagePrivate::avgLevMotorPower

The SessionMessage FIT message's avgLevMotorPower field.

lev average motor power during session

Definition at line 688 of file sessionmessage_p.h.

◆ avgPower

quint16 SessionMessagePrivate::avgPower

The SessionMessage FIT message's avgPower field.

total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time

Definition at line 171 of file sessionmessage_p.h.

◆ avgPowerPosition

quint16 SessionMessagePrivate::avgPowerPosition

The SessionMessage FIT message's avgPowerPosition field.

Average power by position. Data value indexes defined by rider_position_type.

Definition at line 633 of file sessionmessage_p.h.

◆ avgRightPco

qint8 SessionMessagePrivate::avgRightPco

The SessionMessage FIT message's avgRightPco field.

Average platform center offset Right

Definition at line 598 of file sessionmessage_p.h.

◆ avgRightPowerPhase

quint8 SessionMessagePrivate::avgRightPowerPhase

The SessionMessage FIT message's avgRightPowerPhase field.

Average right power phase angles. Data value indexes defined by power_phase_type.

Definition at line 619 of file sessionmessage_p.h.

◆ avgRightPowerPhasePeak

quint8 SessionMessagePrivate::avgRightPowerPhasePeak

The SessionMessage FIT message's avgRightPowerPhasePeak field.

Average right power phase peak angles data value indexes defined by power_phase_type.

Definition at line 626 of file sessionmessage_p.h.

◆ avgSaturatedHemoglobinPercent

quint16 SessionMessagePrivate::avgSaturatedHemoglobinPercent

The SessionMessage FIT message's avgSaturatedHemoglobinPercent field.

Avg percentage of hemoglobin saturated with oxygen

Definition at line 526 of file sessionmessage_p.h.

◆ avgSpeed

quint16 SessionMessagePrivate::avgSpeed

The SessionMessage FIT message's avgSpeed field.

total_distance / total_timer_time

Definition at line 133 of file sessionmessage_p.h.

◆ avgTotalHemoglobinConc

quint16 SessionMessagePrivate::avgTotalHemoglobinConc

The SessionMessage FIT message's avgTotalHemoglobinConc field.

Avg saturated and unsaturated hemoglobin

Definition at line 505 of file sessionmessage_p.h.

◆ enhancedAvgSpeed

quint32 SessionMessagePrivate::enhancedAvgSpeed

The SessionMessage FIT message's enhancedAvgSpeed field.

total_distance / total_timer_time

Definition at line 661 of file sessionmessage_p.h.

◆ event

Event SessionMessagePrivate::event

The SessionMessage FIT message's event field.

session

Definition at line 60 of file sessionmessage_p.h.

◆ eventType

EventType SessionMessagePrivate::eventType

The SessionMessage FIT message's eventType field.

stop

Definition at line 67 of file sessionmessage_p.h.

◆ levBatteryConsumption

quint8 SessionMessagePrivate::levBatteryConsumption

The SessionMessage FIT message's levBatteryConsumption field.

lev battery consumption during session

Definition at line 702 of file sessionmessage_p.h.

◆ maxCadencePosition

quint8 SessionMessagePrivate::maxCadencePosition

The SessionMessage FIT message's maxCadencePosition field.

Maximum cadence by position. Data value indexes defined by rider_position_type.

Definition at line 654 of file sessionmessage_p.h.

◆ maxFractionalCadence

quint8 SessionMessagePrivate::maxFractionalCadence

The SessionMessage FIT message's maxFractionalCadence field.

fractional part of the max_cadence

Definition at line 491 of file sessionmessage_p.h.

◆ maxLevMotorPower

quint16 SessionMessagePrivate::maxLevMotorPower

The SessionMessage FIT message's maxLevMotorPower field.

lev maximum motor power during session

Definition at line 695 of file sessionmessage_p.h.

◆ maxPowerPosition

quint16 SessionMessagePrivate::maxPowerPosition

The SessionMessage FIT message's maxPowerPosition field.

Maximum power by position. Data value indexes defined by rider_position_type.

Definition at line 640 of file sessionmessage_p.h.

◆ maxSaturatedHemoglobinPercent

quint16 SessionMessagePrivate::maxSaturatedHemoglobinPercent

The SessionMessage FIT message's maxSaturatedHemoglobinPercent field.

Max percentage of hemoglobin saturated with oxygen

Definition at line 540 of file sessionmessage_p.h.

◆ maxTotalHemoglobinConc

quint16 SessionMessagePrivate::maxTotalHemoglobinConc

The SessionMessage FIT message's maxTotalHemoglobinConc field.

Max saturated and unsaturated hemoglobin

Definition at line 519 of file sessionmessage_p.h.

◆ messageIndex

MessageIndex SessionMessagePrivate::messageIndex

The SessionMessage FIT message's messageIndex field.

Selected bit is set for the current session.

Definition at line 46 of file sessionmessage_p.h.

◆ minSaturatedHemoglobinPercent

quint16 SessionMessagePrivate::minSaturatedHemoglobinPercent

The SessionMessage FIT message's minSaturatedHemoglobinPercent field.

Min percentage of hemoglobin saturated with oxygen

Definition at line 533 of file sessionmessage_p.h.

◆ minTotalHemoglobinConc

quint16 SessionMessagePrivate::minTotalHemoglobinConc

The SessionMessage FIT message's minTotalHemoglobinConc field.

Min saturated and unsaturated hemoglobin

Definition at line 512 of file sessionmessage_p.h.

◆ necLat

qint32 SessionMessagePrivate::necLat

The SessionMessage FIT message's necLat field.

North east corner latitude

Definition at line 218 of file sessionmessage_p.h.

◆ necLong

qint32 SessionMessagePrivate::necLong

The SessionMessage FIT message's necLong field.

North east corner longitude

Definition at line 225 of file sessionmessage_p.h.

◆ numActiveLengths

quint16 SessionMessagePrivate::numActiveLengths

The SessionMessage FIT message's numActiveLengths field.

of active lengths of swim pool

Definition at line 303 of file sessionmessage_p.h.

◆ numLengths

quint16 SessionMessagePrivate::numLengths

The SessionMessage FIT message's numLengths field.

of lengths of swim pool

Definition at line 246 of file sessionmessage_p.h.

◆ standCount

quint16 SessionMessagePrivate::standCount

The SessionMessage FIT message's standCount field.

Number of transitions to the standing state

Definition at line 584 of file sessionmessage_p.h.

◆ strokeCount

quint16 SessionMessagePrivate::strokeCount

The SessionMessage FIT message's strokeCount field.

stroke_type enum used as the index

Definition at line 445 of file sessionmessage_p.h.

◆ swcLat

qint32 SessionMessagePrivate::swcLat

The SessionMessage FIT message's swcLat field.

South west corner latitude

Definition at line 232 of file sessionmessage_p.h.

◆ swcLong

qint32 SessionMessagePrivate::swcLong

The SessionMessage FIT message's swcLong field.

South west corner longitude

Definition at line 239 of file sessionmessage_p.h.

◆ timestamp

DateTime SessionMessagePrivate::timestamp

The SessionMessage FIT message's timestamp field.

Sesson end time.

Definition at line 53 of file sessionmessage_p.h.

◆ timeStanding

quint32 SessionMessagePrivate::timeStanding

The SessionMessage FIT message's timeStanding field.

Total time spend in the standing position

Definition at line 577 of file sessionmessage_p.h.

◆ totalElapsedTime

quint32 SessionMessagePrivate::totalElapsedTime

The SessionMessage FIT message's totalElapsedTime field.

Time (includes pauses)

Definition at line 99 of file sessionmessage_p.h.

◆ totalFlow

float SessionMessagePrivate::totalFlow

The SessionMessage FIT message's totalFlow field.

The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals.

Definition at line 743 of file sessionmessage_p.h.

◆ totalFractionalAscent

quint8 SessionMessagePrivate::totalFractionalAscent

The SessionMessage FIT message's totalFractionalAscent field.

fractional part of total_ascent

Definition at line 771 of file sessionmessage_p.h.

◆ totalFractionalCycles

quint8 SessionMessagePrivate::totalFractionalCycles

The SessionMessage FIT message's totalFractionalCycles field.

fractional part of the total_cycles

Definition at line 498 of file sessionmessage_p.h.

◆ totalFractionalDescent

quint8 SessionMessagePrivate::totalFractionalDescent

The SessionMessage FIT message's totalFractionalDescent field.

fractional part of total_descent

Definition at line 778 of file sessionmessage_p.h.

◆ totalGrit

float SessionMessagePrivate::totalGrit

The SessionMessage FIT message's totalGrit field.

The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes.

Definition at line 735 of file sessionmessage_p.h.

◆ totalTimerTime

quint32 SessionMessagePrivate::totalTimerTime

The SessionMessage FIT message's totalTimerTime field.

Timer Time (excludes pauses)

Definition at line 106 of file sessionmessage_p.h.

◆ zoneCount

quint16 SessionMessagePrivate::zoneCount

The SessionMessage FIT message's zoneCount field.

zone number used as the index

Definition at line 452 of file sessionmessage_p.h.


The documentation for this class was generated from the following files: