The activity message wraps up a whole activity file. It is usually written once, at the end, and tells how many sessions the activity contains (several for a triathlon or any multisport activity) and the total timer time. Its localTimestamp is the easiest way to know the time zone the activity was recorded in.
timestampDateTimeMoment the activity ended, in UTC.
Duration during which the timer was running over the whole activity, pauses excluded.
numSessionsUint16Number of session messages in the activity: 1 for a single sport activity, more for multisport ones.
typeEnumWhether the activity is a manual one or an automatic multisport one.
manualautoMultiSporteventEnumKind of event: timer, lap, session, activity, workout step, course point, battery, gear change, rider position change…
lengthsessionactivityworkoutlapworkoutStepcoursePointbatteryfitnessEquipmenttimerpowerDownpowerUpoffCoursevirtualPartnerPacehrHighAlerthrLowAlertspeedHighAlertspeedLowAlertcadHighAlertcadLowAlertpowerHighAlertpowerLowAlertrecoveryHrbatteryLowtimeDurationAlertdistanceDurationAlertcalorieDurationAlertuserMarkersportPointcalibrationfrontGearChangerearGearChangeriderPositionChangeelevHighAlertelevLowAlertcommTimeoutautoActivityDetectdiveAlertdiveGasSwitchedtankPressureReservetankPressureCriticaltankLostradarThreatAlerttankBatteryLowtankPodConnectedtankPodDisconnectedeventTypeEnumWhat happened for the event: start, stop, stopAll, marker, begin or end of a depreciated range…
stopstartmarkerconsecutiveDepreciatedstopAllbeginDepreciatedendDepreciatedendAllDepreciatedstopDisablestopDisableAlllocalTimestampLocalDateTimeSame instant as the timestamp, but expressed in local time. The difference between both gives the UTC offset (time zone and daylight saving time) at the time of recording.
eventGroupUint8Groups related events together, so that start and stop events of the same group can be paired.
mesgNumStringGlobal message number identifying the kind of message. Decoders use it to know which profile to apply to the data.