Documentation
¶
Overview ¶
Package fit implements decoding of the Flexible and Interoperable Data Transfer (FIT) Protocol. For more information see https://github.com/tormoder/fit.
Example ¶
package main
import (
"bytes"
"fmt"
"io/ioutil"
"path/filepath"
"github.com/tormoder/fit"
)
func main() {
// Read our FIT test file data
testFile := filepath.Join("testdata", "fitsdk", "Activity.fit")
testData, err := ioutil.ReadFile(testFile)
if err != nil {
fmt.Println(err)
return
}
// Decode the FIT file data
fit, err := fit.Decode(bytes.NewReader(testData))
if err != nil {
fmt.Println(err)
return
}
// Inspect the TimeCreated field in the FileId message
fmt.Println(fit.FileId.TimeCreated)
// Inspect the dynamic Product field in the FileId message
fmt.Println(fit.FileId.GetProduct())
// Inspect the FIT file type
fmt.Println(fit.FileType())
// Get the actual activity
activity, err := fit.Activity()
if err != nil {
fmt.Println(err)
return
}
// Print the latitude and longitude of the first Record message
for _, record := range activity.Records {
fmt.Println(record.PositionLat)
fmt.Println(record.PositionLong)
break
}
// Print the sport of the first Session message
for _, session := range activity.Sessions {
fmt.Println(session.Sport)
break
}
}
Output: 2012-04-09 21:22:26 +0000 UTC Hrm1 Activity 41.51393 -73.14859 Running
Index ¶
- func CheckIntegrity(r io.Reader, headerOnly bool) error
- func DecodeHeaderAndFileID(r io.Reader) (*Header, *FileIdMsg, error)
- type AccelerometerDataMsg
- type ActivityClass
- type ActivityFile
- type ActivityLevel
- type ActivityMode
- type ActivityMsg
- type ActivitySubtype
- type ActivitySummaryFile
- type ActivityType
- type AntNetwork
- type AntplusDeviceType
- type AttitudeStage
- type AttitudeValidity
- type AutolapTrigger
- type AviationAttitudeMsg
- func (x *AviationAttitudeMsg) GetAccelLateralScaled() []float64
- func (x *AviationAttitudeMsg) GetAccelNormalScaled() []float64
- func (x *AviationAttitudeMsg) GetPitchScaled() []float64
- func (x *AviationAttitudeMsg) GetRollScaled() []float64
- func (x *AviationAttitudeMsg) GetTrackScaled() []float64
- func (x *AviationAttitudeMsg) GetTurnRateScaled() []float64
- type BatteryStatus
- type BikeProfileMsg
- func (x *BikeProfileMsg) GetAutoWheelsizeScaled() float64
- func (x *BikeProfileMsg) GetBikeWeightScaled() float64
- func (x *BikeProfileMsg) GetCrankLengthScaled() float64
- func (x *BikeProfileMsg) GetCustomWheelsizeScaled() float64
- func (x *BikeProfileMsg) GetOdometerScaled() float64
- func (x *BikeProfileMsg) GetPowerCalFactorScaled() float64
- type BloodPressureFile
- type BloodPressureMsg
- type BodyLocation
- type Bool
- type BpStatus
- type CadenceZoneMsg
- type CameraEventMsg
- type CameraEventType
- type CameraOrientationType
- type CapabilitiesMsg
- type Checksum
- type CommTimeoutType
- type ConnectivityCapabilities
- type CourseCapabilities
- type CourseFile
- type CourseMsg
- type CoursePoint
- type CoursePointMsg
- type DeviceFile
- type DeviceIndex
- type DeviceInfoMsg
- type DeviceSettingsMsg
- type DisplayHeart
- type DisplayMeasure
- type DisplayPosition
- type DisplayPower
- type Event
- type EventMsg
- type EventType
- type FieldCapabilitiesMsg
- type File
- type FileCapabilitiesMsg
- type FileCreatorMsg
- type FileFlags
- type FileIdMsg
- type Fit
- func (f *Fit) Activity() (*ActivityFile, error)
- func (f *Fit) ActivitySummary() (*ActivitySummaryFile, error)
- func (f *Fit) BloodPressure() (*BloodPressureFile, error)
- func (f *Fit) Course() (*CourseFile, error)
- func (f *Fit) Device() (*DeviceFile, error)
- func (f *Fit) FileType() File
- func (f *Fit) Goals() (*GoalsFile, error)
- func (f *Fit) MonitoringA() (*MonitoringAFile, error)
- func (f *Fit) MonitoringB() (*MonitoringBFile, error)
- func (f *Fit) MonitoringDaily() (*MonitoringDailyFile, error)
- func (f *Fit) Schedules() (*SchedulesFile, error)
- func (f *Fit) Segment() (*SegmentFile, error)
- func (f *Fit) SegmentList() (*SegmentListFile, error)
- func (f *Fit) Settings() (*SettingsFile, error)
- func (f *Fit) Sport() (*SportFile, error)
- func (f *Fit) Totals() (*TotalsFile, error)
- func (f *Fit) Weight() (*WeightFile, error)
- func (f *Fit) Workout() (*WorkoutFile, error)
- type FitnessEquipmentState
- type FormatError
- type GarminProduct
- type Gender
- type Goal
- type GoalMsg
- type GoalRecurrence
- type GoalsFile
- type GyroscopeDataMsg
- type Header
- type HrType
- type HrZoneCalc
- type HrZoneMsg
- type HrmProfileMsg
- type HrvMsg
- type IntegrityError
- type Intensity
- type Language
- type LapMsg
- func (x *LapMsg) GetAvgAltitudeScaled() float64
- func (x *LapMsg) GetAvgCadence() interface{}
- func (x *LapMsg) GetAvgFractionalCadenceScaled() float64
- func (x *LapMsg) GetAvgGradeScaled() float64
- func (x *LapMsg) GetAvgNegGradeScaled() float64
- func (x *LapMsg) GetAvgNegVerticalSpeedScaled() float64
- func (x *LapMsg) GetAvgPosGradeScaled() float64
- func (x *LapMsg) GetAvgPosVerticalSpeedScaled() float64
- func (x *LapMsg) GetAvgSaturatedHemoglobinPercentScaled() []float64
- func (x *LapMsg) GetAvgSpeedScaled() float64
- func (x *LapMsg) GetAvgStanceTimePercentScaled() float64
- func (x *LapMsg) GetAvgStanceTimeScaled() float64
- func (x *LapMsg) GetAvgStrokeDistanceScaled() float64
- func (x *LapMsg) GetAvgTotalHemoglobinConcScaled() []float64
- func (x *LapMsg) GetAvgVerticalOscillationScaled() float64
- func (x *LapMsg) GetEnhancedAvgAltitudeScaled() float64
- func (x *LapMsg) GetEnhancedAvgSpeedScaled() float64
- func (x *LapMsg) GetEnhancedMaxAltitudeScaled() float64
- func (x *LapMsg) GetEnhancedMaxSpeedScaled() float64
- func (x *LapMsg) GetEnhancedMinAltitudeScaled() float64
- func (x *LapMsg) GetMaxAltitudeScaled() float64
- func (x *LapMsg) GetMaxCadence() interface{}
- func (x *LapMsg) GetMaxFractionalCadenceScaled() float64
- func (x *LapMsg) GetMaxNegGradeScaled() float64
- func (x *LapMsg) GetMaxNegVerticalSpeedScaled() float64
- func (x *LapMsg) GetMaxPosGradeScaled() float64
- func (x *LapMsg) GetMaxPosVerticalSpeedScaled() float64
- func (x *LapMsg) GetMaxSaturatedHemoglobinPercentScaled() []float64
- func (x *LapMsg) GetMaxSpeedScaled() float64
- func (x *LapMsg) GetMaxTotalHemoglobinConcScaled() []float64
- func (x *LapMsg) GetMinAltitudeScaled() float64
- func (x *LapMsg) GetMinSaturatedHemoglobinPercentScaled() []float64
- func (x *LapMsg) GetMinTotalHemoglobinConcScaled() []float64
- func (x *LapMsg) GetTimeInCadenceZoneScaled() []float64
- func (x *LapMsg) GetTimeInHrZoneScaled() []float64
- func (x *LapMsg) GetTimeInPowerZoneScaled() []float64
- func (x *LapMsg) GetTimeInSpeedZoneScaled() []float64
- func (x *LapMsg) GetTotalCycles() interface{}
- func (x *LapMsg) GetTotalDistanceScaled() float64
- func (x *LapMsg) GetTotalElapsedTimeScaled() float64
- func (x *LapMsg) GetTotalFractionalCyclesScaled() float64
- func (x *LapMsg) GetTotalMovingTimeScaled() float64
- func (x *LapMsg) GetTotalTimerTimeScaled() float64
- type LapTrigger
- type Latitude
- type LeftRightBalance
- type LeftRightBalance100
- type LengthMsg
- type LengthType
- type Longitude
- type Manufacturer
- type MemoGlobMsg
- type MesgCapabilitiesMsg
- type MesgCount
- type MesgNum
- type MessageIndex
- type MetZoneMsg
- type MonitoringAFile
- type MonitoringBFile
- type MonitoringDailyFile
- type MonitoringInfoMsg
- type MonitoringMsg
- type NmeaSentenceMsg
- type NotSupportedError
- type ObdiiDataMsg
- type PowerPhaseType
- type PowerZoneMsg
- type PwrZoneCalc
- type RecordMsg
- func (x *RecordMsg) GetAltitudeScaled() float64
- func (x *RecordMsg) GetBallSpeedScaled() float64
- func (x *RecordMsg) GetCadence256Scaled() float64
- func (x *RecordMsg) GetCombinedPedalSmoothnessScaled() float64
- func (x *RecordMsg) GetCycleLengthScaled() float64
- func (x *RecordMsg) GetDistanceFromCompressedSpeedDistance() float64
- func (x *RecordMsg) GetDistanceScaled() float64
- func (x *RecordMsg) GetEnhancedAltitudeScaled() float64
- func (x *RecordMsg) GetEnhancedSpeedScaled() float64
- func (x *RecordMsg) GetFractionalCadenceScaled() float64
- func (x *RecordMsg) GetGradeScaled() float64
- func (x *RecordMsg) GetLeftPedalSmoothnessScaled() float64
- func (x *RecordMsg) GetLeftTorqueEffectivenessScaled() float64
- func (x *RecordMsg) GetRightPedalSmoothnessScaled() float64
- func (x *RecordMsg) GetRightTorqueEffectivenessScaled() float64
- func (x *RecordMsg) GetSaturatedHemoglobinPercentMaxScaled() float64
- func (x *RecordMsg) GetSaturatedHemoglobinPercentMinScaled() float64
- func (x *RecordMsg) GetSaturatedHemoglobinPercentScaled() float64
- func (x *RecordMsg) GetSpeed1sScaled() []float64
- func (x *RecordMsg) GetSpeedFromCompressedSpeedDistance() float64
- func (x *RecordMsg) GetSpeedScaled() float64
- func (x *RecordMsg) GetStanceTimePercentScaled() float64
- func (x *RecordMsg) GetStanceTimeScaled() float64
- func (x *RecordMsg) GetTime128Scaled() float64
- func (x *RecordMsg) GetTimeFromCourseScaled() float64
- func (x *RecordMsg) GetTotalHemoglobinConcMaxScaled() float64
- func (x *RecordMsg) GetTotalHemoglobinConcMinScaled() float64
- func (x *RecordMsg) GetTotalHemoglobinConcScaled() float64
- func (x *RecordMsg) GetVerticalOscillationScaled() float64
- func (x *RecordMsg) GetVerticalSpeedScaled() float64
- type RiderPositionType
- type Schedule
- type ScheduleMsg
- type SchedulesFile
- type SdmProfileMsg
- type SegmentDeleteStatus
- type SegmentFile
- type SegmentFileMsg
- type SegmentIdMsg
- type SegmentLapMsg
- func (x *SegmentLapMsg) GetActiveTimeScaled() float64
- func (x *SegmentLapMsg) GetAvgAltitudeScaled() float64
- func (x *SegmentLapMsg) GetAvgCombinedPedalSmoothnessScaled() float64
- func (x *SegmentLapMsg) GetAvgFractionalCadenceScaled() float64
- func (x *SegmentLapMsg) GetAvgGradeScaled() float64
- func (x *SegmentLapMsg) GetAvgLeftPedalSmoothnessScaled() float64
- func (x *SegmentLapMsg) GetAvgLeftTorqueEffectivenessScaled() float64
- func (x *SegmentLapMsg) GetAvgNegGradeScaled() float64
- func (x *SegmentLapMsg) GetAvgNegVerticalSpeedScaled() float64
- func (x *SegmentLapMsg) GetAvgPosGradeScaled() float64
- func (x *SegmentLapMsg) GetAvgPosVerticalSpeedScaled() float64
- func (x *SegmentLapMsg) GetAvgRightPedalSmoothnessScaled() float64
- func (x *SegmentLapMsg) GetAvgRightTorqueEffectivenessScaled() float64
- func (x *SegmentLapMsg) GetAvgSpeedScaled() float64
- func (x *SegmentLapMsg) GetMaxAltitudeScaled() float64
- func (x *SegmentLapMsg) GetMaxFractionalCadenceScaled() float64
- func (x *SegmentLapMsg) GetMaxNegGradeScaled() float64
- func (x *SegmentLapMsg) GetMaxNegVerticalSpeedScaled() float64
- func (x *SegmentLapMsg) GetMaxPosGradeScaled() float64
- func (x *SegmentLapMsg) GetMaxPosVerticalSpeedScaled() float64
- func (x *SegmentLapMsg) GetMaxSpeedScaled() float64
- func (x *SegmentLapMsg) GetMinAltitudeScaled() float64
- func (x *SegmentLapMsg) GetTimeInCadenceZoneScaled() []float64
- func (x *SegmentLapMsg) GetTimeInHrZoneScaled() []float64
- func (x *SegmentLapMsg) GetTimeInPowerZoneScaled() []float64
- func (x *SegmentLapMsg) GetTimeInSpeedZoneScaled() []float64
- func (x *SegmentLapMsg) GetTotalCycles() interface{}
- func (x *SegmentLapMsg) GetTotalDistanceScaled() float64
- func (x *SegmentLapMsg) GetTotalElapsedTimeScaled() float64
- func (x *SegmentLapMsg) GetTotalFractionalCyclesScaled() float64
- func (x *SegmentLapMsg) GetTotalMovingTimeScaled() float64
- func (x *SegmentLapMsg) GetTotalTimerTimeScaled() float64
- type SegmentLapStatus
- type SegmentLeaderboardEntryMsg
- type SegmentLeaderboardType
- type SegmentListFile
- type SegmentPointMsg
- type SegmentSelectionType
- type SensorType
- type SessionMsg
- func (x *SessionMsg) GetAvgAltitudeScaled() float64
- func (x *SessionMsg) GetAvgBallSpeedScaled() float64
- func (x *SessionMsg) GetAvgCadence() interface{}
- func (x *SessionMsg) GetAvgFractionalCadenceScaled() float64
- func (x *SessionMsg) GetAvgGradeScaled() float64
- func (x *SessionMsg) GetAvgLapTimeScaled() float64
- func (x *SessionMsg) GetAvgNegGradeScaled() float64
- func (x *SessionMsg) GetAvgNegVerticalSpeedScaled() float64
- func (x *SessionMsg) GetAvgPosGradeScaled() float64
- func (x *SessionMsg) GetAvgPosVerticalSpeedScaled() float64
- func (x *SessionMsg) GetAvgSpeedScaled() float64
- func (x *SessionMsg) GetAvgStanceTimePercentScaled() float64
- func (x *SessionMsg) GetAvgStanceTimeScaled() float64
- func (x *SessionMsg) GetAvgStrokeCountScaled() float64
- func (x *SessionMsg) GetAvgStrokeDistanceScaled() float64
- func (x *SessionMsg) GetAvgVerticalOscillationScaled() float64
- func (x *SessionMsg) GetEnhancedAvgAltitudeScaled() float64
- func (x *SessionMsg) GetEnhancedAvgSpeedScaled() float64
- func (x *SessionMsg) GetEnhancedMaxAltitudeScaled() float64
- func (x *SessionMsg) GetEnhancedMaxSpeedScaled() float64
- func (x *SessionMsg) GetEnhancedMinAltitudeScaled() float64
- func (x *SessionMsg) GetIntensityFactorScaled() float64
- func (x *SessionMsg) GetMaxAltitudeScaled() float64
- func (x *SessionMsg) GetMaxBallSpeedScaled() float64
- func (x *SessionMsg) GetMaxCadence() interface{}
- func (x *SessionMsg) GetMaxFractionalCadenceScaled() float64
- func (x *SessionMsg) GetMaxNegGradeScaled() float64
- func (x *SessionMsg) GetMaxNegVerticalSpeedScaled() float64
- func (x *SessionMsg) GetMaxPosGradeScaled() float64
- func (x *SessionMsg) GetMaxPosVerticalSpeedScaled() float64
- func (x *SessionMsg) GetMaxSpeedScaled() float64
- func (x *SessionMsg) GetMinAltitudeScaled() float64
- func (x *SessionMsg) GetPoolLengthScaled() float64
- func (x *SessionMsg) GetTimeInCadenceZoneScaled() []float64
- func (x *SessionMsg) GetTimeInHrZoneScaled() []float64
- func (x *SessionMsg) GetTimeInPowerZoneScaled() []float64
- func (x *SessionMsg) GetTimeInSpeedZoneScaled() []float64
- func (x *SessionMsg) GetTotalCycles() interface{}
- func (x *SessionMsg) GetTotalDistanceScaled() float64
- func (x *SessionMsg) GetTotalElapsedTimeScaled() float64
- func (x *SessionMsg) GetTotalFractionalCyclesScaled() float64
- func (x *SessionMsg) GetTotalMovingTimeScaled() float64
- func (x *SessionMsg) GetTotalTimerTimeScaled() float64
- func (x *SessionMsg) GetTotalTrainingEffectScaled() float64
- func (x *SessionMsg) GetTrainingStressScoreScaled() float64
- type SessionTrigger
- type SettingsFile
- type SlaveDeviceMsg
- type SoftwareMsg
- type SourceType
- type SpeedZoneMsg
- type Sport
- type SportBits0
- type SportBits1
- type SportBits2
- type SportBits3
- type SportBits4
- type SportBits5
- type SportEvent
- type SportFile
- type SportMsg
- type StrokeType
- type SubSport
- type SwimStroke
- type ThreeDSensorCalibrationMsg
- type TimeZone
- type TimerTrigger
- type TimestampCorrelationMsg
- type TotalsFile
- type TotalsMsg
- type TrainingFileMsg
- type UnknownField
- type UserLocalId
- type UserProfileMsg
- type VideoClipMsg
- type VideoDescriptionMsg
- type VideoFrameMsg
- type VideoMsg
- type VideoTitleMsg
- type Weight
- type WeightFile
- type WeightScaleMsg
- func (x *WeightScaleMsg) GetActiveMetScaled() float64
- func (x *WeightScaleMsg) GetBasalMetScaled() float64
- func (x *WeightScaleMsg) GetBoneMassScaled() float64
- func (x *WeightScaleMsg) GetMuscleMassScaled() float64
- func (x *WeightScaleMsg) GetPercentFatScaled() float64
- func (x *WeightScaleMsg) GetPercentHydrationScaled() float64
- func (x *WeightScaleMsg) GetVisceralFatMassScaled() float64
- func (x *WeightScaleMsg) GetWeightScaled() float64
- type WktStepDuration
- type WktStepTarget
- type WorkoutCapabilities
- type WorkoutFile
- type WorkoutHr
- type WorkoutMsg
- type WorkoutPower
- type WorkoutStepMsg
- type ZonesTargetMsg
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CheckIntegrity ¶
CheckIntegrity verifies the FIT header and file CRC. Only the header CRC is verified if headerOnly is true.
Types ¶
type AccelerometerDataMsg ¶
type AccelerometerDataMsg struct {
}
AccelerometerDataMsg represents the accelerometer_data FIT message type.
type ActivityClass ¶
type ActivityClass byte
ActivityClass represents the activity_class FIT type.
const ( ActivityClassLevel ActivityClass = 0x7F // 0 to 100 ActivityClassLevelMax ActivityClass = 100 ActivityClassAthlete ActivityClass = 0x80 ActivityClassInvalid ActivityClass = 0xFF )
func (ActivityClass) String ¶
func (i ActivityClass) String() string
type ActivityFile ¶
type ActivityFile struct {
Activity *ActivityMsg
Sessions []*SessionMsg
Laps []*LapMsg
Lengths []*LengthMsg
Records []*RecordMsg
Events []*EventMsg
Hrvs []*HrvMsg
}
ActivityFile represents the Activity FIT file type. Records sensor data and events from active sessions.
type ActivityLevel ¶
type ActivityLevel byte
ActivityLevel represents the activity_level FIT type.
const ( ActivityLevelLow ActivityLevel = 0 ActivityLevelMedium ActivityLevel = 1 ActivityLevelHigh ActivityLevel = 2 ActivityLevelInvalid ActivityLevel = 0xFF )
func (ActivityLevel) String ¶
func (i ActivityLevel) String() string
type ActivityMode ¶
type ActivityMode byte
ActivityMode represents the activity FIT type.
const ( ActivityModeManual ActivityMode = 0 ActivityModeAutoMultiSport ActivityMode = 1 ActivityModeInvalid ActivityMode = 0xFF )
func (ActivityMode) String ¶
func (i ActivityMode) String() string
type ActivityMsg ¶
type ActivityMsg struct {
Timestamp time.Time
TotalTimerTime uint32 // Exclude pauses
NumSessions uint16
Type ActivityMode
Event Event
EventType EventType
LocalTimestamp time.Time // timestamp epoch expressed in local time, used to convert activity timestamps to local time
EventGroup uint8
}
ActivityMsg represents the activity FIT message type.
func (*ActivityMsg) GetTotalTimerTimeScaled ¶ added in v0.2.0
func (x *ActivityMsg) GetTotalTimerTimeScaled() float64
GetTotalTimerTimeScaled returns TotalTimerTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
type ActivitySubtype ¶
type ActivitySubtype byte
ActivitySubtype represents the activity_subtype FIT type.
const ( ActivitySubtypeGeneric ActivitySubtype = 0 ActivitySubtypeTreadmill ActivitySubtype = 1 // Run ActivitySubtypeStreet ActivitySubtype = 2 // Run ActivitySubtypeTrail ActivitySubtype = 3 // Run ActivitySubtypeTrack ActivitySubtype = 4 // Run ActivitySubtypeSpin ActivitySubtype = 5 // Cycling ActivitySubtypeIndoorCycling ActivitySubtype = 6 // Cycling ActivitySubtypeRoad ActivitySubtype = 7 // Cycling ActivitySubtypeMountain ActivitySubtype = 8 // Cycling ActivitySubtypeDownhill ActivitySubtype = 9 // Cycling ActivitySubtypeRecumbent ActivitySubtype = 10 // Cycling ActivitySubtypeCyclocross ActivitySubtype = 11 // Cycling ActivitySubtypeHandCycling ActivitySubtype = 12 // Cycling ActivitySubtypeTrackCycling ActivitySubtype = 13 // Cycling ActivitySubtypeIndoorRowing ActivitySubtype = 14 // Fitness Equipment ActivitySubtypeElliptical ActivitySubtype = 15 // Fitness Equipment ActivitySubtypeStairClimbing ActivitySubtype = 16 // Fitness Equipment ActivitySubtypeLapSwimming ActivitySubtype = 17 // Swimming ActivitySubtypeOpenWater ActivitySubtype = 18 // Swimming ActivitySubtypeAll ActivitySubtype = 254 ActivitySubtypeInvalid ActivitySubtype = 0xFF )
func (ActivitySubtype) String ¶
func (i ActivitySubtype) String() string
type ActivitySummaryFile ¶
type ActivitySummaryFile struct {
Activity *ActivityMsg
Sessions []*SessionMsg
Laps []*LapMsg
}
ActivitySummaryFile represents the Activity Summary FIT file type. Similar to Activity file, contains summary information only.
type ActivityType ¶
type ActivityType byte
ActivityType represents the activity_type FIT type.
const ( ActivityTypeGeneric ActivityType = 0 ActivityTypeRunning ActivityType = 1 ActivityTypeCycling ActivityType = 2 ActivityTypeTransition ActivityType = 3 // Mulitsport transition ActivityTypeFitnessEquipment ActivityType = 4 ActivityTypeSwimming ActivityType = 5 ActivityTypeWalking ActivityType = 6 ActivityTypeAll ActivityType = 254 // All is for goals only to include all sports. ActivityTypeInvalid ActivityType = 0xFF )
func (ActivityType) String ¶
func (i ActivityType) String() string
type AntNetwork ¶
type AntNetwork byte
AntNetwork represents the ant_network FIT type.
const ( AntNetworkPublic AntNetwork = 0 AntNetworkAntplus AntNetwork = 1 AntNetworkAntfs AntNetwork = 2 AntNetworkPrivate AntNetwork = 3 AntNetworkInvalid AntNetwork = 0xFF )
func (AntNetwork) String ¶
func (i AntNetwork) String() string
type AntplusDeviceType ¶
type AntplusDeviceType uint8
AntplusDeviceType represents the antplus_device_type FIT type.
const ( AntplusDeviceTypeAntfs AntplusDeviceType = 1 AntplusDeviceTypeBikePower AntplusDeviceType = 11 AntplusDeviceTypeEnvironmentSensorLegacy AntplusDeviceType = 12 AntplusDeviceTypeMultiSportSpeedDistance AntplusDeviceType = 15 AntplusDeviceTypeControl AntplusDeviceType = 16 AntplusDeviceTypeFitnessEquipment AntplusDeviceType = 17 AntplusDeviceTypeBloodPressure AntplusDeviceType = 18 AntplusDeviceTypeGeocacheNode AntplusDeviceType = 19 AntplusDeviceTypeLightElectricVehicle AntplusDeviceType = 20 AntplusDeviceTypeEnvSensor AntplusDeviceType = 25 AntplusDeviceTypeRacquet AntplusDeviceType = 26 AntplusDeviceTypeWeightScale AntplusDeviceType = 119 AntplusDeviceTypeHeartRate AntplusDeviceType = 120 AntplusDeviceTypeBikeSpeedCadence AntplusDeviceType = 121 AntplusDeviceTypeBikeCadence AntplusDeviceType = 122 AntplusDeviceTypeBikeSpeed AntplusDeviceType = 123 AntplusDeviceTypeStrideSpeedDistance AntplusDeviceType = 124 AntplusDeviceTypeInvalid AntplusDeviceType = 0xFF )
func (AntplusDeviceType) String ¶
func (i AntplusDeviceType) String() string
type AttitudeStage ¶
type AttitudeStage byte
AttitudeStage represents the attitude_stage FIT type.
const ( AttitudeStageFailed AttitudeStage = 0 AttitudeStageAligning AttitudeStage = 1 AttitudeStageDegraded AttitudeStage = 2 AttitudeStageValid AttitudeStage = 3 AttitudeStageInvalid AttitudeStage = 0xFF )
func (AttitudeStage) String ¶
func (i AttitudeStage) String() string
type AttitudeValidity ¶
type AttitudeValidity uint16
AttitudeValidity represents the attitude_validity FIT type.
const ( AttitudeValidityTrackAngleHeadingValid AttitudeValidity = 0x0001 AttitudeValidityPitchValid AttitudeValidity = 0x0002 AttitudeValidityRollValid AttitudeValidity = 0x0004 AttitudeValidityLateralBodyAccelValid AttitudeValidity = 0x0008 AttitudeValidityNormalBodyAccelValid AttitudeValidity = 0x0010 AttitudeValidityTurnRateValid AttitudeValidity = 0x0020 AttitudeValidityHwFail AttitudeValidity = 0x0040 AttitudeValidityMagInvalid AttitudeValidity = 0x0080 AttitudeValidityNoGps AttitudeValidity = 0x0100 AttitudeValidityGpsInvalid AttitudeValidity = 0x0200 AttitudeValiditySolutionCoasting AttitudeValidity = 0x0400 AttitudeValidityTrueTrackAngle AttitudeValidity = 0x0800 AttitudeValidityMagneticHeading AttitudeValidity = 0x1000 AttitudeValidityInvalid AttitudeValidity = 0xFFFF )
func (AttitudeValidity) String ¶
func (i AttitudeValidity) String() string
type AutolapTrigger ¶
type AutolapTrigger byte
AutolapTrigger represents the autolap_trigger FIT type.
const ( AutolapTriggerTime AutolapTrigger = 0 AutolapTriggerDistance AutolapTrigger = 1 AutolapTriggerPositionStart AutolapTrigger = 2 AutolapTriggerPositionLap AutolapTrigger = 3 AutolapTriggerPositionWaypoint AutolapTrigger = 4 AutolapTriggerPositionMarked AutolapTrigger = 5 AutolapTriggerOff AutolapTrigger = 6 AutolapTriggerInvalid AutolapTrigger = 0xFF )
func (AutolapTrigger) String ¶
func (i AutolapTrigger) String() string
type AviationAttitudeMsg ¶
type AviationAttitudeMsg struct {
Timestamp time.Time // Timestamp message was output
TimestampMs uint16 // Fractional part of timestamp, added to timestamp
SystemTime []uint32 // System time associated with sample expressed in ms.
Pitch []int16 // Range -PI/2 to +PI/2
Roll []int16 // Range -PI to +PI
AccelLateral []int16 // Range -78.4 to +78.4 (-8 Gs to 8 Gs)
AccelNormal []int16 // Range -78.4 to +78.4 (-8 Gs to 8 Gs)
TurnRate []int16 // Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec)
Stage []AttitudeStage
AttitudeStageComplete []uint8 // The percent complete of the current attitude stage. Set to 0 for attitude stages 0, 1 and 2 and to 100 for attitude stage 3 by AHRS modules that do not support it. Range - 100
Track []uint16 // Track Angle/Heading Range 0 - 2pi
Validity []AttitudeValidity
}
AviationAttitudeMsg represents the aviation_attitude FIT message type.
func (*AviationAttitudeMsg) GetAccelLateralScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetAccelLateralScaled() []float64
GetAccelLateralScaled returns AccelLateral as a slice with scale and any offset applied to every element. Units: m/s^2
func (*AviationAttitudeMsg) GetAccelNormalScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetAccelNormalScaled() []float64
GetAccelNormalScaled returns AccelNormal as a slice with scale and any offset applied to every element. Units: m/s^2
func (*AviationAttitudeMsg) GetPitchScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetPitchScaled() []float64
GetPitchScaled returns Pitch as a slice with scale and any offset applied to every element. Units: radians
func (*AviationAttitudeMsg) GetRollScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetRollScaled() []float64
GetRollScaled returns Roll as a slice with scale and any offset applied to every element. Units: radians
func (*AviationAttitudeMsg) GetTrackScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetTrackScaled() []float64
GetTrackScaled returns Track as a slice with scale and any offset applied to every element. Units: radians
func (*AviationAttitudeMsg) GetTurnRateScaled ¶ added in v0.2.0
func (x *AviationAttitudeMsg) GetTurnRateScaled() []float64
GetTurnRateScaled returns TurnRate as a slice with scale and any offset applied to every element. Units: radians/second
type BatteryStatus ¶
type BatteryStatus uint8
BatteryStatus represents the battery_status FIT type.
const ( BatteryStatusNew BatteryStatus = 1 BatteryStatusGood BatteryStatus = 2 BatteryStatusOk BatteryStatus = 3 BatteryStatusLow BatteryStatus = 4 BatteryStatusCritical BatteryStatus = 5 BatteryStatusUnknown BatteryStatus = 7 BatteryStatusInvalid BatteryStatus = 0xFF )
func (BatteryStatus) String ¶
func (i BatteryStatus) String() string
type BikeProfileMsg ¶
type BikeProfileMsg struct {
MessageIndex MessageIndex
Name string
Sport Sport
SubSport SubSport
Odometer uint32
BikeSpdAntId uint16
BikeCadAntId uint16
BikeSpdcadAntId uint16
BikePowerAntId uint16
CustomWheelsize uint16
AutoWheelsize uint16
BikeWeight uint16
PowerCalFactor uint16
AutoWheelCal Bool
AutoPowerZero Bool
Id uint8
SpdEnabled Bool
CadEnabled Bool
SpdcadEnabled Bool
PowerEnabled Bool
CrankLength uint8
Enabled Bool
BikeSpdAntIdTransType uint8
BikeCadAntIdTransType uint8
BikeSpdcadAntIdTransType uint8
BikePowerAntIdTransType uint8
OdometerRollover uint8 // Rollover counter that can be used to extend the odometer
FrontGearNum uint8 // Number of front gears
FrontGear []uint8 // Number of teeth on each gear 0 is innermost
RearGearNum uint8 // Number of rear gears
RearGear []uint8 // Number of teeth on each gear 0 is innermost
ShimanoDi2Enabled Bool
}
BikeProfileMsg represents the bike_profile FIT message type.
func (*BikeProfileMsg) GetAutoWheelsizeScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetAutoWheelsizeScaled() float64
GetAutoWheelsizeScaled returns AutoWheelsize with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*BikeProfileMsg) GetBikeWeightScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetBikeWeightScaled() float64
GetBikeWeightScaled returns BikeWeight with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
func (*BikeProfileMsg) GetCrankLengthScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetCrankLengthScaled() float64
GetCrankLengthScaled returns CrankLength with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: mm
func (*BikeProfileMsg) GetCustomWheelsizeScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetCustomWheelsizeScaled() float64
GetCustomWheelsizeScaled returns CustomWheelsize with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*BikeProfileMsg) GetOdometerScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetOdometerScaled() float64
GetOdometerScaled returns Odometer with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*BikeProfileMsg) GetPowerCalFactorScaled ¶ added in v0.2.0
func (x *BikeProfileMsg) GetPowerCalFactorScaled() float64
GetPowerCalFactorScaled returns PowerCalFactor with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
type BloodPressureFile ¶
type BloodPressureFile struct {
UserProfile *UserProfileMsg
BloodPressures []*BloodPressureMsg
}
BloodPressureFile represents the Bload Pressure FIT file type. Records blood pressure data.
type BloodPressureMsg ¶
type BloodPressureMsg struct {
Timestamp time.Time
SystolicPressure uint16
DiastolicPressure uint16
MeanArterialPressure uint16
Map3SampleMean uint16
MapMorningValues uint16
MapEveningValues uint16
HeartRate uint8
HeartRateType HrType
Status BpStatus
UserProfileIndex MessageIndex // Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file.
}
BloodPressureMsg represents the blood_pressure FIT message type.
type BodyLocation ¶
type BodyLocation byte
BodyLocation represents the body_location FIT type.
const ( BodyLocationLeftLeg BodyLocation = 0 BodyLocationLeftCalf BodyLocation = 1 BodyLocationLeftShin BodyLocation = 2 BodyLocationLeftHamstring BodyLocation = 3 BodyLocationLeftQuad BodyLocation = 4 BodyLocationLeftGlute BodyLocation = 5 BodyLocationRightLeg BodyLocation = 6 BodyLocationRightCalf BodyLocation = 7 BodyLocationRightShin BodyLocation = 8 BodyLocationRightHamstring BodyLocation = 9 BodyLocationRightQuad BodyLocation = 10 BodyLocationRightGlute BodyLocation = 11 BodyLocationTorsoBack BodyLocation = 12 BodyLocationLeftLowerBack BodyLocation = 13 BodyLocationLeftUpperBack BodyLocation = 14 BodyLocationRightLowerBack BodyLocation = 15 BodyLocationRightUpperBack BodyLocation = 16 BodyLocationTorsoFront BodyLocation = 17 BodyLocationLeftAbdomen BodyLocation = 18 BodyLocationLeftChest BodyLocation = 19 BodyLocationRightAbdomen BodyLocation = 20 BodyLocationRightChest BodyLocation = 21 BodyLocationLeftArm BodyLocation = 22 BodyLocationLeftShoulder BodyLocation = 23 BodyLocationLeftBicep BodyLocation = 24 BodyLocationLeftTricep BodyLocation = 25 BodyLocationLeftBrachioradialis BodyLocation = 26 // Left anterior forearm BodyLocationLeftForearmExtensors BodyLocation = 27 // Left posterior forearm BodyLocationRightArm BodyLocation = 28 BodyLocationRightShoulder BodyLocation = 29 BodyLocationRightBicep BodyLocation = 30 BodyLocationRightTricep BodyLocation = 31 BodyLocationRightBrachioradialis BodyLocation = 32 // Right anterior forearm BodyLocationRightForearmExtensors BodyLocation = 33 // Right posterior forearm BodyLocationNeck BodyLocation = 34 BodyLocationThroat BodyLocation = 35 BodyLocationInvalid BodyLocation = 0xFF )
func (BodyLocation) String ¶
func (i BodyLocation) String() string
type CadenceZoneMsg ¶
type CadenceZoneMsg struct {
MessageIndex MessageIndex
HighValue uint8
Name string
}
CadenceZoneMsg represents the cadence_zone FIT message type.
type CameraEventMsg ¶
type CameraEventMsg struct {
}
CameraEventMsg represents the camera_event FIT message type.
type CameraEventType ¶
type CameraEventType byte
CameraEventType represents the camera_event_type FIT type.
const ( CameraEventTypeVideoStart CameraEventType = 0 // Start of video recording CameraEventTypeVideoSplit CameraEventType = 1 // Mark of video file split (end of one file, beginning of the other) CameraEventTypeVideoEnd CameraEventType = 2 // End of video recording CameraEventTypePhotoTaken CameraEventType = 3 // Still photo taken CameraEventTypeVideoSecondStreamStart CameraEventType = 4 CameraEventTypeVideoSecondStreamSplit CameraEventType = 5 CameraEventTypeVideoSecondStreamEnd CameraEventType = 6 CameraEventTypeVideoSplitStart CameraEventType = 7 // Mark of video file split start CameraEventTypeVideoSecondStreamSplitStart CameraEventType = 8 CameraEventTypeInvalid CameraEventType = 0xFF )
func (CameraEventType) String ¶
func (i CameraEventType) String() string
type CameraOrientationType ¶
type CameraOrientationType byte
CameraOrientationType represents the camera_orientation_type FIT type.
const ( CameraOrientationTypeCameraOrientation0 CameraOrientationType = 0 CameraOrientationTypeCameraOrientation90 CameraOrientationType = 1 CameraOrientationTypeCameraOrientation180 CameraOrientationType = 2 CameraOrientationTypeCameraOrientation270 CameraOrientationType = 3 CameraOrientationTypeInvalid CameraOrientationType = 0xFF )
func (CameraOrientationType) String ¶
func (i CameraOrientationType) String() string
type CapabilitiesMsg ¶
type CapabilitiesMsg struct {
Languages []uint8 // Use language_bits_x types where x is index of array.
Sports []SportBits0 // Use sport_bits_x types where x is index of array.
WorkoutsSupported WorkoutCapabilities
ConnectivitySupported ConnectivityCapabilities
}
CapabilitiesMsg represents the capabilities FIT message type.
type Checksum ¶
type Checksum uint8
Checksum represents the checksum FIT type.
const ( ChecksumClear Checksum = 0 // Allows clear of checksum for flash memory where can only write 1 to 0 without erasing sector. ChecksumOk Checksum = 1 // Set to mark checksum as valid if computes to invalid values 0 or 0xFF. Checksum can also be set to ok to save encoding computation time. ChecksumInvalid Checksum = 0xFF )
type CommTimeoutType ¶
type CommTimeoutType uint16
CommTimeoutType represents the comm_timeout_type FIT type.
const ( CommTimeoutTypeWildcardPairingTimeout CommTimeoutType = 0 // Timeout pairing to any device CommTimeoutTypePairingTimeout CommTimeoutType = 1 // Timeout pairing to previously paired device CommTimeoutTypeConnectionLost CommTimeoutType = 2 // Temporary loss of communications CommTimeoutTypeConnectionTimeout CommTimeoutType = 3 // Connection closed due to extended bad communications CommTimeoutTypeInvalid CommTimeoutType = 0xFFFF )
func (CommTimeoutType) String ¶
func (i CommTimeoutType) String() string
type ConnectivityCapabilities ¶
type ConnectivityCapabilities uint32
ConnectivityCapabilities represents the connectivity_capabilities FIT type.
const ( ConnectivityCapabilitiesBluetooth ConnectivityCapabilities = 0x00000001 ConnectivityCapabilitiesBluetoothLe ConnectivityCapabilities = 0x00000002 ConnectivityCapabilitiesAnt ConnectivityCapabilities = 0x00000004 ConnectivityCapabilitiesActivityUpload ConnectivityCapabilities = 0x00000008 ConnectivityCapabilitiesCourseDownload ConnectivityCapabilities = 0x00000010 ConnectivityCapabilitiesWorkoutDownload ConnectivityCapabilities = 0x00000020 ConnectivityCapabilitiesLiveTrack ConnectivityCapabilities = 0x00000040 ConnectivityCapabilitiesWeatherConditions ConnectivityCapabilities = 0x00000080 ConnectivityCapabilitiesWeatherAlerts ConnectivityCapabilities = 0x00000100 ConnectivityCapabilitiesGpsEphemerisDownload ConnectivityCapabilities = 0x00000200 ConnectivityCapabilitiesExplicitArchive ConnectivityCapabilities = 0x00000400 ConnectivityCapabilitiesSetupIncomplete ConnectivityCapabilities = 0x00000800 ConnectivityCapabilitiesContinueSyncAfterSoftwareUpdate ConnectivityCapabilities = 0x00001000 ConnectivityCapabilitiesConnectIqAppDownload ConnectivityCapabilities = 0x00002000 ConnectivityCapabilitiesInvalid ConnectivityCapabilities = 0x00000000 )
func (ConnectivityCapabilities) String ¶
func (i ConnectivityCapabilities) String() string
type CourseCapabilities ¶
type CourseCapabilities uint32
CourseCapabilities represents the course_capabilities FIT type.
const ( CourseCapabilitiesProcessed CourseCapabilities = 0x00000001 CourseCapabilitiesValid CourseCapabilities = 0x00000002 CourseCapabilitiesTime CourseCapabilities = 0x00000004 CourseCapabilitiesDistance CourseCapabilities = 0x00000008 CourseCapabilitiesPosition CourseCapabilities = 0x00000010 CourseCapabilitiesHeartRate CourseCapabilities = 0x00000020 CourseCapabilitiesPower CourseCapabilities = 0x00000040 CourseCapabilitiesCadence CourseCapabilities = 0x00000080 CourseCapabilitiesTraining CourseCapabilities = 0x00000100 CourseCapabilitiesBikeway CourseCapabilities = 0x00000400 CourseCapabilitiesInvalid CourseCapabilities = 0x00000000 )
func (CourseCapabilities) String ¶
func (i CourseCapabilities) String() string
type CourseFile ¶
type CourseFile struct {
Course *CourseMsg
Laps []*LapMsg
CoursePoints []*CoursePointMsg
Records []*RecordMsg
}
CourseFile represents the Course FIT file type. Uses data from an activity to recreate a course.
type CourseMsg ¶
type CourseMsg struct {
Sport Sport
Name string
Capabilities CourseCapabilities
}
CourseMsg represents the course FIT message type.
type CoursePoint ¶
type CoursePoint byte
CoursePoint represents the course_point FIT type.
const ( CoursePointGeneric CoursePoint = 0 CoursePointSummit CoursePoint = 1 CoursePointValley CoursePoint = 2 CoursePointWater CoursePoint = 3 CoursePointFood CoursePoint = 4 CoursePointDanger CoursePoint = 5 CoursePointLeft CoursePoint = 6 CoursePointRight CoursePoint = 7 CoursePointStraight CoursePoint = 8 CoursePointFirstAid CoursePoint = 9 CoursePointFourthCategory CoursePoint = 10 CoursePointThirdCategory CoursePoint = 11 CoursePointSecondCategory CoursePoint = 12 CoursePointFirstCategory CoursePoint = 13 CoursePointHorsCategory CoursePoint = 14 CoursePointSprint CoursePoint = 15 CoursePointLeftFork CoursePoint = 16 CoursePointRightFork CoursePoint = 17 CoursePointMiddleFork CoursePoint = 18 CoursePointSlightLeft CoursePoint = 19 CoursePointSharpLeft CoursePoint = 20 CoursePointSlightRight CoursePoint = 21 CoursePointSharpRight CoursePoint = 22 CoursePointUTurn CoursePoint = 23 CoursePointInvalid CoursePoint = 0xFF )
func (CoursePoint) String ¶
func (i CoursePoint) String() string
type CoursePointMsg ¶
type CoursePointMsg struct {
MessageIndex MessageIndex
Timestamp time.Time
PositionLat Latitude
PositionLong Longitude
Distance uint32
Type CoursePoint
Name string
Favorite Bool
}
CoursePointMsg represents the course_point FIT message type.
func (*CoursePointMsg) GetDistanceScaled ¶ added in v0.2.0
func (x *CoursePointMsg) GetDistanceScaled() float64
GetDistanceScaled returns Distance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
type DeviceFile ¶
type DeviceFile struct {
Softwares []*SoftwareMsg
Capabilities []*CapabilitiesMsg
FileCapabilities []*FileCapabilitiesMsg
MesgCapabilities []*MesgCapabilitiesMsg
FieldCapabilities []*FieldCapabilitiesMsg
}
DeviceFile represents the Device FIT file type. Describes a device's file structure and capabilities.
type DeviceIndex ¶
type DeviceIndex uint8
DeviceIndex represents the device_index FIT type.
const ( DeviceIndexCreator DeviceIndex = 0 // Creator of the file is always device index 0. DeviceIndexInvalid DeviceIndex = 0xFF )
func (DeviceIndex) String ¶
func (i DeviceIndex) String() string
type DeviceInfoMsg ¶
type DeviceInfoMsg struct {
Timestamp time.Time
DeviceIndex DeviceIndex
DeviceType uint8
Manufacturer Manufacturer
SerialNumber uint32
Product uint16
SoftwareVersion uint16
HardwareVersion uint8
CumOperatingTime uint32 // Reset by new battery or charge.
BatteryVoltage uint16
BatteryStatus BatteryStatus
SensorPosition BodyLocation // Indicates the location of the sensor
Descriptor string // Used to describe the sensor or location
AntTransmissionType uint8
AntDeviceNumber uint16
AntNetwork AntNetwork
SourceType SourceType
ProductName string // Optional free form string to indicate the devices name or model
}
DeviceInfoMsg represents the device_info FIT message type.
func (*DeviceInfoMsg) GetBatteryVoltageScaled ¶ added in v0.2.0
func (x *DeviceInfoMsg) GetBatteryVoltageScaled() float64
GetBatteryVoltageScaled returns BatteryVoltage with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: V
func (*DeviceInfoMsg) GetDeviceType ¶
func (x *DeviceInfoMsg) GetDeviceType() interface{}
GetDeviceType returns the appropriate DeviceType subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*DeviceInfoMsg) GetProduct ¶
func (x *DeviceInfoMsg) GetProduct() interface{}
GetProduct returns the appropriate Product subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*DeviceInfoMsg) GetSoftwareVersionScaled ¶ added in v0.2.0
func (x *DeviceInfoMsg) GetSoftwareVersionScaled() float64
GetSoftwareVersionScaled returns SoftwareVersion with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set).
type DeviceSettingsMsg ¶
type DeviceSettingsMsg struct {
ActiveTimeZone uint8 // Index into time zone arrays.
UtcOffset uint32 // Offset from system time. Required to convert timestamp from system time to UTC.
TimeZoneOffset []int8 // timezone offset in 1/4 hour increments
}
DeviceSettingsMsg represents the device_settings FIT message type.
func (*DeviceSettingsMsg) GetTimeZoneOffsetScaled ¶ added in v0.2.0
func (x *DeviceSettingsMsg) GetTimeZoneOffsetScaled() []float64
GetTimeZoneOffsetScaled returns TimeZoneOffset as a slice with scale and any offset applied to every element. Units: hr
type DisplayHeart ¶
type DisplayHeart byte
DisplayHeart represents the display_heart FIT type.
const ( DisplayHeartBpm DisplayHeart = 0 DisplayHeartMax DisplayHeart = 1 DisplayHeartReserve DisplayHeart = 2 DisplayHeartInvalid DisplayHeart = 0xFF )
func (DisplayHeart) String ¶
func (i DisplayHeart) String() string
type DisplayMeasure ¶
type DisplayMeasure byte
DisplayMeasure represents the display_measure FIT type.
const ( DisplayMeasureMetric DisplayMeasure = 0 DisplayMeasureStatute DisplayMeasure = 1 DisplayMeasureInvalid DisplayMeasure = 0xFF )
func (DisplayMeasure) String ¶
func (i DisplayMeasure) String() string
type DisplayPosition ¶
type DisplayPosition byte
DisplayPosition represents the display_position FIT type.
const ( DisplayPositionDegree DisplayPosition = 0 // dd.dddddd DisplayPositionDegreeMinute DisplayPosition = 1 // dddmm.mmm DisplayPositionDegreeMinuteSecond DisplayPosition = 2 // dddmmss DisplayPositionAustrianGrid DisplayPosition = 3 // Austrian Grid (BMN) DisplayPositionBritishGrid DisplayPosition = 4 // British National Grid DisplayPositionDutchGrid DisplayPosition = 5 // Dutch grid system DisplayPositionHungarianGrid DisplayPosition = 6 // Hungarian grid system DisplayPositionFinnishGrid DisplayPosition = 7 // Finnish grid system Zone3 KKJ27 DisplayPositionGermanGrid DisplayPosition = 8 // Gausss Krueger (German) DisplayPositionIcelandicGrid DisplayPosition = 9 // Icelandic Grid DisplayPositionIndonesianEquatorial DisplayPosition = 10 // Indonesian Equatorial LCO DisplayPositionIndonesianIrian DisplayPosition = 11 // Indonesian Irian LCO DisplayPositionIndonesianSouthern DisplayPosition = 12 // Indonesian Southern LCO DisplayPositionIndiaZone0 DisplayPosition = 13 // India zone 0 DisplayPositionIndiaZoneIA DisplayPosition = 14 // India zone IA DisplayPositionIndiaZoneIB DisplayPosition = 15 // India zone IB DisplayPositionIndiaZoneIIA DisplayPosition = 16 // India zone IIA DisplayPositionIndiaZoneIIB DisplayPosition = 17 // India zone IIB DisplayPositionIndiaZoneIIIA DisplayPosition = 18 // India zone IIIA DisplayPositionIndiaZoneIIIB DisplayPosition = 19 // India zone IIIB DisplayPositionIndiaZoneIVA DisplayPosition = 20 // India zone IVA DisplayPositionIndiaZoneIVB DisplayPosition = 21 // India zone IVB DisplayPositionIrishTransverse DisplayPosition = 22 // Irish Transverse Mercator DisplayPositionIrishGrid DisplayPosition = 23 // Irish Grid DisplayPositionLoran DisplayPosition = 24 // Loran TD DisplayPositionMaidenheadGrid DisplayPosition = 25 // Maidenhead grid system DisplayPositionMgrsGrid DisplayPosition = 26 // MGRS grid system DisplayPositionNewZealandGrid DisplayPosition = 27 // New Zealand grid system DisplayPositionNewZealandTransverse DisplayPosition = 28 // New Zealand Transverse Mercator DisplayPositionQatarGrid DisplayPosition = 29 // Qatar National Grid DisplayPositionModifiedSwedishGrid DisplayPosition = 30 // Modified RT-90 (Sweden) DisplayPositionSwedishGrid DisplayPosition = 31 // RT-90 (Sweden) DisplayPositionSouthAfricanGrid DisplayPosition = 32 // South African Grid DisplayPositionSwissGrid DisplayPosition = 33 // Swiss CH-1903 grid DisplayPositionTaiwanGrid DisplayPosition = 34 // Taiwan Grid DisplayPositionUnitedStatesGrid DisplayPosition = 35 // United States National Grid DisplayPositionUtmUpsGrid DisplayPosition = 36 // UTM/UPS grid system DisplayPositionWestMalayan DisplayPosition = 37 // West Malayan RSO DisplayPositionBorneoRso DisplayPosition = 38 // Borneo RSO DisplayPositionEstonianGrid DisplayPosition = 39 // Estonian grid system DisplayPositionLatvianGrid DisplayPosition = 40 // Latvian Transverse Mercator DisplayPositionSwedishRef99Grid DisplayPosition = 41 // Reference Grid 99 TM (Swedish) DisplayPositionInvalid DisplayPosition = 0xFF )
func (DisplayPosition) String ¶
func (i DisplayPosition) String() string
type DisplayPower ¶
type DisplayPower byte
DisplayPower represents the display_power FIT type.
const ( DisplayPowerWatts DisplayPower = 0 DisplayPowerPercentFtp DisplayPower = 1 DisplayPowerInvalid DisplayPower = 0xFF )
func (DisplayPower) String ¶
func (i DisplayPower) String() string
type Event ¶
type Event byte
Event represents the event FIT type.
const ( EventTimer Event = 0 // Group 0. Start / stop_all EventWorkout Event = 3 // start / stop EventWorkoutStep Event = 4 // Start at beginning of workout. Stop at end of each step. EventPowerDown Event = 5 // stop_all group 0 EventPowerUp Event = 6 // stop_all group 0 EventOffCourse Event = 7 // start / stop group 0 EventSession Event = 8 // Stop at end of each session. EventLap Event = 9 // Stop at end of each lap. EventCoursePoint Event = 10 // marker EventBattery Event = 11 // marker EventVirtualPartnerPace Event = 12 // Group 1. Start at beginning of activity if VP enabled, when VP pace is changed during activity or VP enabled mid activity. stop_disable when VP disabled. EventHrHighAlert Event = 13 // Group 0. Start / stop when in alert condition. EventHrLowAlert Event = 14 // Group 0. Start / stop when in alert condition. EventSpeedHighAlert Event = 15 // Group 0. Start / stop when in alert condition. EventSpeedLowAlert Event = 16 // Group 0. Start / stop when in alert condition. EventCadHighAlert Event = 17 // Group 0. Start / stop when in alert condition. EventCadLowAlert Event = 18 // Group 0. Start / stop when in alert condition. EventPowerHighAlert Event = 19 // Group 0. Start / stop when in alert condition. EventPowerLowAlert Event = 20 // Group 0. Start / stop when in alert condition. EventRecoveryHr Event = 21 // marker EventBatteryLow Event = 22 // marker EventTimeDurationAlert Event = 23 // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled. EventDistanceDurationAlert Event = 24 // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled. EventCalorieDurationAlert Event = 25 // Group 1. Start if enabled mid activity (not required at start of activity). Stop when duration is reached. stop_disable if disabled. EventActivity Event = 26 // Group 1.. Stop at end of activity. EventFitnessEquipment Event = 27 // marker EventLength Event = 28 // Stop at end of each length. EventUserMarker Event = 32 // marker EventSportPoint Event = 33 // marker EventCalibration Event = 36 // start/stop/marker EventFrontGearChange Event = 42 // marker EventRearGearChange Event = 43 // marker EventRiderPositionChange Event = 44 // marker EventElevHighAlert Event = 45 // Group 0. Start / stop when in alert condition. EventElevLowAlert Event = 46 // Group 0. Start / stop when in alert condition. EventCommTimeout Event = 47 // marker EventInvalid Event = 0xFF )
type EventMsg ¶
type EventMsg struct {
Timestamp time.Time
Event Event
EventType EventType
Data16 uint16
Data uint32
EventGroup uint8
Score uint16 // Do not populate directly. Autogenerated by decoder for sport_point subfield components
OpponentScore uint16 // Do not populate directly. Autogenerated by decoder for sport_point subfield components
FrontGearNum uint8 // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Front gear number. 1 is innermost.
FrontGear uint8 // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth.
RearGearNum uint8 // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Rear gear number. 1 is innermost.
RearGear uint8 // Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth.
}
EventMsg represents the event FIT message type.
type EventType ¶
type EventType byte
EventType represents the event_type FIT type.
const ( EventTypeStart EventType = 0 EventTypeStop EventType = 1 EventTypeConsecutiveDepreciated EventType = 2 EventTypeMarker EventType = 3 EventTypeStopAll EventType = 4 EventTypeBeginDepreciated EventType = 5 EventTypeEndDepreciated EventType = 6 EventTypeEndAllDepreciated EventType = 7 EventTypeStopDisable EventType = 8 EventTypeStopDisableAll EventType = 9 EventTypeInvalid EventType = 0xFF )
type FieldCapabilitiesMsg ¶
type FieldCapabilitiesMsg struct {
MessageIndex MessageIndex
File File
MesgNum MesgNum
FieldNum uint8
Count uint16
}
FieldCapabilitiesMsg represents the field_capabilities FIT message type.
type File ¶
type File byte
File represents the file FIT type.
const ( FileDevice File = 1 // Read only, single file. Must be in root directory. FileSettings File = 2 // Read/write, single file. Directory=Settings FileSport File = 3 // Read/write, multiple files, file number = sport type. Directory=Sports FileActivity File = 4 // Read/erase, multiple files. Directory=Activities FileWorkout File = 5 // Read/write/erase, multiple files. Directory=Workouts FileCourse File = 6 // Read/write/erase, multiple files. Directory=Courses FileSchedules File = 7 // Read/write, single file. Directory=Schedules FileWeight File = 9 // Read only, single file. Circular buffer. All message definitions at start of file. Directory=Weight FileTotals File = 10 // Read only, single file. Directory=Totals FileGoals File = 11 // Read/write, single file. Directory=Goals FileBloodPressure File = 14 // Read only. Directory=Blood Pressure FileMonitoringA File = 15 // Read only. Directory=Monitoring. File number=sub type. FileActivitySummary File = 20 // Read/erase, multiple files. Directory=Activities FileMonitoringDaily File = 28 FileMonitoringB File = 32 // Read only. Directory=Monitoring. File number=identifier FileSegment File = 34 // Read/write/erase. Multiple Files. Directory=Segments FileSegmentList File = 35 // Read/write/erase. Single File. Directory=Segments FileMfgRangeMin File = 0xF7 // 0xF7 - 0xFE reserved for manufacturer specific file types FileMfgRangeMax File = 0xFE // 0xF7 - 0xFE reserved for manufacturer specific file types FileInvalid File = 0xFF )
type FileCapabilitiesMsg ¶
type FileCapabilitiesMsg struct {
MessageIndex MessageIndex
Type File
Flags FileFlags
Directory string
MaxCount uint16
MaxSize uint32
}
FileCapabilitiesMsg represents the file_capabilities FIT message type.
type FileCreatorMsg ¶
FileCreatorMsg represents the file_creator FIT message type.
type FileIdMsg ¶
type FileIdMsg struct {
Type File
Manufacturer Manufacturer
Product uint16
SerialNumber uint32
TimeCreated time.Time // Only set for files that are can be created/erased.
Number uint16 // Only set for files that are not created/erased.
ProductName string // Optional free form string to indicate the devices name or model
}
FileIdMsg represents the file_id FIT message type.
func (*FileIdMsg) GetProduct ¶
func (x *FileIdMsg) GetProduct() interface{}
GetProduct returns the appropriate Product subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type Fit ¶
type Fit struct {
// Header is the FIT file header.
Header *Header
// CRC is the FIT file CRC.
CRC uint16
// Common messages for all FIT file types.
FileId FileIdMsg
FileCreator FileCreatorMsg
TimestampCorrelation TimestampCorrelationMsg
DeviceInfo DeviceInfoMsg
// UnknownMessages is a map that maps an unknown message number to how
// many times the message was encountered during encoding.
UnknownMessages map[MesgNum]int
// UnknownFields is a map that maps an unknown field to how many times
// the field was encountered during encoding.
UnknownFields map[UnknownField]int
// contains filtered or unexported fields
}
Fit represents a decoded FIT file.
func (*Fit) Activity ¶
func (f *Fit) Activity() (*ActivityFile, error)
Activity returns f's Activity file. An error is returned if the FIT file is not of type activity.
func (*Fit) ActivitySummary ¶
func (f *Fit) ActivitySummary() (*ActivitySummaryFile, error)
ActivitySummary returns f's ActivitySummary file. An error is returned if the FIT file is not of type activity summary.
func (*Fit) BloodPressure ¶
func (f *Fit) BloodPressure() (*BloodPressureFile, error)
BloodPressure returns f's BloodPressure file. An error is returned if the FIT file is not of type blood pressure.
func (*Fit) Course ¶
func (f *Fit) Course() (*CourseFile, error)
Course returns f's Course file. An error is returned if the FIT file is not of type course.
func (*Fit) Device ¶
func (f *Fit) Device() (*DeviceFile, error)
Device returns f's Device file. An error is returned if the FIT file is not of type device.
func (*Fit) Goals ¶
Goals returns f's Goals file. An error is returned if the FIT file is not of type goals.
func (*Fit) MonitoringA ¶
func (f *Fit) MonitoringA() (*MonitoringAFile, error)
MonitoringA returns f's MonitoringA file. An error is returned if the FIT file is not of type monitoring A.
func (*Fit) MonitoringB ¶
func (f *Fit) MonitoringB() (*MonitoringBFile, error)
MonitoringB returns f's MonitoringB file. An error is returned if the FIT file is not of type monitoring B.
func (*Fit) MonitoringDaily ¶
func (f *Fit) MonitoringDaily() (*MonitoringDailyFile, error)
MonitoringDaily returns f's MonitoringDaily file. An error is returned if the FIT file is not of type monitoring daily.
func (*Fit) Schedules ¶
func (f *Fit) Schedules() (*SchedulesFile, error)
Schedules returns f's Schedules file. An error is returned if the FIT file is not of type schedules.
func (*Fit) Segment ¶
func (f *Fit) Segment() (*SegmentFile, error)
Segment returns f's Segment file. An error is returned if the FIT file is not of type segment.
func (*Fit) SegmentList ¶
func (f *Fit) SegmentList() (*SegmentListFile, error)
SegmentList returns f's SegmentList file. An error is returned if the FIT file is not of type segment list.
func (*Fit) Settings ¶
func (f *Fit) Settings() (*SettingsFile, error)
Settings returns f's Settings file. An error is returned if the FIT file is not of type settings.
func (*Fit) Sport ¶
Sport returns f's Sport file. An error is returned if the FIT file is not of type sport.
func (*Fit) Totals ¶
func (f *Fit) Totals() (*TotalsFile, error)
Totals returns f's Totals file. An error is returned if the FIT file is not of type totals.
func (*Fit) Weight ¶
func (f *Fit) Weight() (*WeightFile, error)
Weight returns f's Weight file. An error is returned if the FIT file is not of type weight.
func (*Fit) Workout ¶
func (f *Fit) Workout() (*WorkoutFile, error)
Workout returns f's Workout file. An error is returned if the FIT file is not of type workout.
type FitnessEquipmentState ¶
type FitnessEquipmentState byte
FitnessEquipmentState represents the fitness_equipment_state FIT type.
const ( FitnessEquipmentStateReady FitnessEquipmentState = 0 FitnessEquipmentStateInUse FitnessEquipmentState = 1 FitnessEquipmentStatePaused FitnessEquipmentState = 2 FitnessEquipmentStateUnknown FitnessEquipmentState = 3 // lost connection to fitness equipment FitnessEquipmentStateInvalid FitnessEquipmentState = 0xFF )
func (FitnessEquipmentState) String ¶
func (i FitnessEquipmentState) String() string
type FormatError ¶
type FormatError string
A FormatError reports that the input is not valid FIT.
func (FormatError) Error ¶
func (e FormatError) Error() string
type GarminProduct ¶
type GarminProduct uint16
GarminProduct represents the garmin_product FIT type.
const ( GarminProductHrm1 GarminProduct = 1 GarminProductAxh01 GarminProduct = 2 // AXH01 HRM chipset GarminProductAxb01 GarminProduct = 3 GarminProductAxb02 GarminProduct = 4 GarminProductHrm2ss GarminProduct = 5 GarminProductDsiAlf02 GarminProduct = 6 GarminProductHrm3ss GarminProduct = 7 GarminProductHrmRunSingleByteProductId GarminProduct = 8 // hrm_run model for HRM ANT+ messaging GarminProductBsm GarminProduct = 9 // BSM model for ANT+ messaging GarminProductBcm GarminProduct = 10 // BCM model for ANT+ messaging GarminProductAxs01 GarminProduct = 11 // AXS01 HRM Bike Chipset model for ANT+ messaging GarminProductHrmTriSingleByteProductId GarminProduct = 12 // hrm_tri model for HRM ANT+ messaging GarminProductFr225SingleByteProductId GarminProduct = 14 // fr225 model for HRM ANT+ messaging GarminProductFr301China GarminProduct = 473 GarminProductFr301Japan GarminProduct = 474 GarminProductFr301Korea GarminProduct = 475 GarminProductFr301Taiwan GarminProduct = 494 GarminProductFr405 GarminProduct = 717 // Forerunner 405 GarminProductFr50 GarminProduct = 782 // Forerunner 50 GarminProductFr405Japan GarminProduct = 987 GarminProductFr60 GarminProduct = 988 // Forerunner 60 GarminProductDsiAlf01 GarminProduct = 1011 GarminProductFr310xt GarminProduct = 1018 // Forerunner 310 GarminProductEdge500 GarminProduct = 1036 GarminProductFr110 GarminProduct = 1124 // Forerunner 110 GarminProductEdge800 GarminProduct = 1169 GarminProductEdge500Taiwan GarminProduct = 1199 GarminProductEdge500Japan GarminProduct = 1213 GarminProductChirp GarminProduct = 1253 GarminProductFr110Japan GarminProduct = 1274 GarminProductEdge200 GarminProduct = 1325 GarminProductFr910xt GarminProduct = 1328 GarminProductEdge800Taiwan GarminProduct = 1333 GarminProductEdge800Japan GarminProduct = 1334 GarminProductAlf04 GarminProduct = 1341 GarminProductFr610 GarminProduct = 1345 GarminProductFr210Japan GarminProduct = 1360 GarminProductVectorSs GarminProduct = 1380 GarminProductVectorCp GarminProduct = 1381 GarminProductEdge800China GarminProduct = 1386 GarminProductEdge500China GarminProduct = 1387 GarminProductFr610Japan GarminProduct = 1410 GarminProductEdge500Korea GarminProduct = 1422 GarminProductFr70 GarminProduct = 1436 GarminProductFr310xt4t GarminProduct = 1446 GarminProductAmx GarminProduct = 1461 GarminProductFr10 GarminProduct = 1482 GarminProductEdge800Korea GarminProduct = 1497 GarminProductSwim GarminProduct = 1499 GarminProductFr910xtChina GarminProduct = 1537 GarminProductFenix GarminProduct = 1551 GarminProductEdge200Taiwan GarminProduct = 1555 GarminProductEdge510 GarminProduct = 1561 GarminProductEdge810 GarminProduct = 1567 GarminProductTempe GarminProduct = 1570 GarminProductFr910xtJapan GarminProduct = 1600 GarminProductFr620 GarminProduct = 1623 GarminProductFr220 GarminProduct = 1632 GarminProductFr910xtKorea GarminProduct = 1664 GarminProductFr10Japan GarminProduct = 1688 GarminProductEdge810Japan GarminProduct = 1721 GarminProductVirbElite GarminProduct = 1735 GarminProductEdgeTouring GarminProduct = 1736 // Also Edge Touring Plus GarminProductEdge510Japan GarminProduct = 1742 GarminProductHrmTri GarminProduct = 1743 GarminProductHrmRun GarminProduct = 1752 GarminProductFr920xt GarminProduct = 1765 GarminProductEdge510Asia GarminProduct = 1821 GarminProductEdge810China GarminProduct = 1822 GarminProductEdge810Taiwan GarminProduct = 1823 GarminProductEdge1000 GarminProduct = 1836 GarminProductVivoFit GarminProduct = 1837 GarminProductVirbRemote GarminProduct = 1853 GarminProductVivoKi GarminProduct = 1885 GarminProductFr15 GarminProduct = 1903 GarminProductVivoActive GarminProduct = 1907 GarminProductEdge510Korea GarminProduct = 1918 GarminProductFr620Japan GarminProduct = 1928 GarminProductFr620China GarminProduct = 1929 GarminProductFr220Japan GarminProduct = 1930 GarminProductFr220China GarminProduct = 1931 GarminProductApproachS6 GarminProduct = 1936 GarminProductVivoSmart GarminProduct = 1956 GarminProductFenix2 GarminProduct = 1967 GarminProductEpix GarminProduct = 1988 GarminProductFenix3 GarminProduct = 2050 GarminProductEdge1000Taiwan GarminProduct = 2052 GarminProductEdge1000Japan GarminProduct = 2053 GarminProductFr15Japan GarminProduct = 2061 GarminProductEdge520 GarminProduct = 2067 GarminProductEdge1000China GarminProduct = 2070 GarminProductFr620Russia GarminProduct = 2072 GarminProductFr220Russia GarminProduct = 2073 GarminProductVectorS GarminProduct = 2079 GarminProductEdge1000Korea GarminProduct = 2100 GarminProductFr920xtTaiwan GarminProduct = 2130 GarminProductFr920xtChina GarminProduct = 2131 GarminProductFr920xtJapan GarminProduct = 2132 GarminProductVirbx GarminProduct = 2134 GarminProductVivoSmartApac GarminProduct = 2135 GarminProductEtrexTouch GarminProduct = 2140 GarminProductEdge25 GarminProduct = 2147 GarminProductVivoFit2 GarminProduct = 2150 GarminProductFr225 GarminProduct = 2153 GarminProductVivoActiveApac GarminProduct = 2160 GarminProductVector2 GarminProduct = 2161 GarminProductVector2s GarminProduct = 2162 GarminProductVirbxe GarminProduct = 2172 GarminProductFr620Taiwan GarminProduct = 2173 GarminProductFr220Taiwan GarminProduct = 2174 GarminProductFenix3China GarminProduct = 2188 GarminProductFenix3Twn GarminProduct = 2189 GarminProductVariaHeadlight GarminProduct = 2192 GarminProductVariaTaillightOld GarminProduct = 2193 GarminProductFr225Asia GarminProduct = 2219 GarminProductVariaRadarTaillight GarminProduct = 2225 GarminProductVariaRadarDisplay GarminProduct = 2226 GarminProductEdge20 GarminProduct = 2238 GarminProductD2Bravo GarminProduct = 2262 GarminProductVariaRemote GarminProduct = 2276 GarminProductSdm4 GarminProduct = 10007 // SDM4 footpod GarminProductEdgeRemote GarminProduct = 10014 GarminProductTrainingCenter GarminProduct = 20119 GarminProductAndroidAntplusPlugin GarminProduct = 65532 GarminProductConnect GarminProduct = 65534 // Garmin Connect website GarminProductInvalid GarminProduct = 0xFFFF )
func (GarminProduct) String ¶
func (i GarminProduct) String() string
type GoalMsg ¶
type GoalMsg struct {
MessageIndex MessageIndex
Sport Sport
SubSport SubSport
StartDate time.Time
EndDate time.Time
Type Goal
Value uint32
Repeat Bool
TargetValue uint32
Recurrence GoalRecurrence
RecurrenceValue uint16
Enabled Bool
}
GoalMsg represents the goal FIT message type.
type GoalRecurrence ¶
type GoalRecurrence byte
GoalRecurrence represents the goal_recurrence FIT type.
const ( GoalRecurrenceOff GoalRecurrence = 0 GoalRecurrenceDaily GoalRecurrence = 1 GoalRecurrenceWeekly GoalRecurrence = 2 GoalRecurrenceMonthly GoalRecurrence = 3 GoalRecurrenceYearly GoalRecurrence = 4 GoalRecurrenceCustom GoalRecurrence = 5 GoalRecurrenceInvalid GoalRecurrence = 0xFF )
func (GoalRecurrence) String ¶
func (i GoalRecurrence) String() string
type GoalsFile ¶
type GoalsFile struct {
Goals []*GoalMsg
}
GoalsFile represents the Goals FIT file type. Describes a user’s exercise/health goals.
type GyroscopeDataMsg ¶
type GyroscopeDataMsg struct {
}
GyroscopeDataMsg represents the gyroscope_data FIT message type.
type Header ¶
type Header struct {
Size byte
ProtocolVersion byte
ProfileVersion uint16
DataSize uint32
DataType [4]byte
CRC uint16
}
Header represents a FIT file header.
func DecodeHeader ¶
DecodeHeader returns the FIT file header without decoding the entire FIT file.
func (*Header) CheckIntegrity ¶
CheckIntegrity verifies the FIT header CRC.
func (*Header) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface.
type HrZoneCalc ¶
type HrZoneCalc byte
HrZoneCalc represents the hr_zone_calc FIT type.
const ( HrZoneCalcCustom HrZoneCalc = 0 HrZoneCalcPercentMaxHr HrZoneCalc = 1 HrZoneCalcPercentHrr HrZoneCalc = 2 HrZoneCalcInvalid HrZoneCalc = 0xFF )
func (HrZoneCalc) String ¶
func (i HrZoneCalc) String() string
type HrZoneMsg ¶
type HrZoneMsg struct {
MessageIndex MessageIndex
HighBpm uint8
Name string
}
HrZoneMsg represents the hr_zone FIT message type.
type HrmProfileMsg ¶
type HrmProfileMsg struct {
MessageIndex MessageIndex
Enabled Bool
HrmAntId uint16
LogHrv Bool
HrmAntIdTransType uint8
}
HrmProfileMsg represents the hrm_profile FIT message type.
type HrvMsg ¶
type HrvMsg struct {
Time []uint16 // Time between beats
}
HrvMsg represents the hrv FIT message type.
func (*HrvMsg) GetTimeScaled ¶ added in v0.2.0
GetTimeScaled returns Time as a slice with scale and any offset applied to every element. Units: s
type IntegrityError ¶
type IntegrityError string
An IntegrityError reports that a header or file CRC check failed.
func (IntegrityError) Error ¶
func (e IntegrityError) Error() string
type Language ¶
type Language byte
Language represents the language FIT type.
const ( LanguageEnglish Language = 0 LanguageFrench Language = 1 LanguageItalian Language = 2 LanguageGerman Language = 3 LanguageSpanish Language = 4 LanguageCroatian Language = 5 LanguageCzech Language = 6 LanguageDanish Language = 7 LanguageDutch Language = 8 LanguageFinnish Language = 9 LanguageGreek Language = 10 LanguageHungarian Language = 11 LanguageNorwegian Language = 12 LanguagePolish Language = 13 LanguagePortuguese Language = 14 LanguageSlovakian Language = 15 LanguageSlovenian Language = 16 LanguageSwedish Language = 17 LanguageRussian Language = 18 LanguageTurkish Language = 19 LanguageLatvian Language = 20 LanguageUkrainian Language = 21 LanguageArabic Language = 22 LanguageFarsi Language = 23 LanguageBulgarian Language = 24 LanguageRomanian Language = 25 LanguageCustom Language = 254 LanguageInvalid Language = 0xFF )
type LapMsg ¶
type LapMsg struct {
MessageIndex MessageIndex
Timestamp time.Time // Lap end time.
Event Event
EventType EventType
StartTime time.Time
StartPositionLat Latitude
StartPositionLong Longitude
EndPositionLat Latitude
EndPositionLong Longitude
TotalElapsedTime uint32 // Time (includes pauses)
TotalTimerTime uint32 // Timer Time (excludes pauses)
TotalDistance uint32
TotalCycles uint32
TotalCalories uint16
TotalFatCalories uint16 // If New Leaf
AvgSpeed uint16
MaxSpeed uint16
AvgHeartRate uint8
MaxHeartRate uint8
AvgCadence uint8 // total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
MaxCadence uint8
AvgPower uint16 // total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
MaxPower uint16
TotalAscent uint16
TotalDescent uint16
Intensity Intensity
LapTrigger LapTrigger
Sport Sport
EventGroup uint8
NumLengths uint16 // # of lengths of swim pool
NormalizedPower uint16
LeftRightBalance LeftRightBalance100
FirstLengthIndex uint16
AvgStrokeDistance uint16
SwimStroke SwimStroke
SubSport SubSport
NumActiveLengths uint16 // # of active lengths of swim pool
TotalWork uint32
AvgAltitude uint16
MaxAltitude uint16
GpsAccuracy uint8
AvgGrade int16
AvgPosGrade int16
AvgNegGrade int16
MaxPosGrade int16
MaxNegGrade int16
AvgTemperature int8
MaxTemperature int8
TotalMovingTime uint32
AvgPosVerticalSpeed int16
AvgNegVerticalSpeed int16
MaxPosVerticalSpeed int16
MaxNegVerticalSpeed int16
TimeInHrZone []uint32
TimeInSpeedZone []uint32
TimeInCadenceZone []uint32
TimeInPowerZone []uint32
RepetitionNum uint16
MinAltitude uint16
MinHeartRate uint8
WktStepIndex MessageIndex
OpponentScore uint16
StrokeCount []uint16 // stroke_type enum used as the index
ZoneCount []uint16 // zone number used as the index
AvgVerticalOscillation uint16
AvgStanceTimePercent uint16
AvgStanceTime uint16
AvgFractionalCadence uint8 // fractional part of the avg_cadence
MaxFractionalCadence uint8 // fractional part of the max_cadence
TotalFractionalCycles uint8 // fractional part of the total_cycles
PlayerScore uint16
AvgTotalHemoglobinConc []uint16 // Avg saturated and unsaturated hemoglobin
MinTotalHemoglobinConc []uint16 // Min saturated and unsaturated hemoglobin
MaxTotalHemoglobinConc []uint16 // Max saturated and unsaturated hemoglobin
AvgSaturatedHemoglobinPercent []uint16 // Avg percentage of hemoglobin saturated with oxygen
MinSaturatedHemoglobinPercent []uint16 // Min percentage of hemoglobin saturated with oxygen
MaxSaturatedHemoglobinPercent []uint16 // Max percentage of hemoglobin saturated with oxygen
EnhancedAvgSpeed uint32
EnhancedMaxSpeed uint32
EnhancedAvgAltitude uint32
EnhancedMinAltitude uint32
EnhancedMaxAltitude uint32
}
LapMsg represents the lap FIT message type.
func (*LapMsg) GetAvgAltitudeScaled ¶ added in v0.2.0
GetAvgAltitudeScaled returns AvgAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetAvgCadence ¶
func (x *LapMsg) GetAvgCadence() interface{}
GetAvgCadence returns the appropriate AvgCadence subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*LapMsg) GetAvgFractionalCadenceScaled ¶ added in v0.2.0
GetAvgFractionalCadenceScaled returns AvgFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*LapMsg) GetAvgGradeScaled ¶ added in v0.2.0
GetAvgGradeScaled returns AvgGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*LapMsg) GetAvgNegGradeScaled ¶ added in v0.2.0
GetAvgNegGradeScaled returns AvgNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*LapMsg) GetAvgNegVerticalSpeedScaled ¶ added in v0.2.0
GetAvgNegVerticalSpeedScaled returns AvgNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetAvgPosGradeScaled ¶ added in v0.2.0
GetAvgPosGradeScaled returns AvgPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*LapMsg) GetAvgPosVerticalSpeedScaled ¶ added in v0.2.0
GetAvgPosVerticalSpeedScaled returns AvgPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetAvgSaturatedHemoglobinPercentScaled ¶ added in v0.2.0
GetAvgSaturatedHemoglobinPercentScaled returns AvgSaturatedHemoglobinPercent as a slice with scale and any offset applied to every element. Units: %
func (*LapMsg) GetAvgSpeedScaled ¶ added in v0.2.0
GetAvgSpeedScaled returns AvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetAvgStanceTimePercentScaled ¶ added in v0.2.0
GetAvgStanceTimePercentScaled returns AvgStanceTimePercent with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*LapMsg) GetAvgStanceTimeScaled ¶ added in v0.2.0
GetAvgStanceTimeScaled returns AvgStanceTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: ms
func (*LapMsg) GetAvgStrokeDistanceScaled ¶ added in v0.2.0
GetAvgStrokeDistanceScaled returns AvgStrokeDistance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetAvgTotalHemoglobinConcScaled ¶ added in v0.2.0
GetAvgTotalHemoglobinConcScaled returns AvgTotalHemoglobinConc as a slice with scale and any offset applied to every element. Units: g/dL
func (*LapMsg) GetAvgVerticalOscillationScaled ¶ added in v0.2.0
GetAvgVerticalOscillationScaled returns AvgVerticalOscillation with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: mm
func (*LapMsg) GetEnhancedAvgAltitudeScaled ¶ added in v0.2.0
GetEnhancedAvgAltitudeScaled returns EnhancedAvgAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetEnhancedAvgSpeedScaled ¶ added in v0.2.0
GetEnhancedAvgSpeedScaled returns EnhancedAvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetEnhancedMaxAltitudeScaled ¶ added in v0.2.0
GetEnhancedMaxAltitudeScaled returns EnhancedMaxAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetEnhancedMaxSpeedScaled ¶ added in v0.2.0
GetEnhancedMaxSpeedScaled returns EnhancedMaxSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetEnhancedMinAltitudeScaled ¶ added in v0.2.0
GetEnhancedMinAltitudeScaled returns EnhancedMinAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetMaxAltitudeScaled ¶ added in v0.2.0
GetMaxAltitudeScaled returns MaxAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetMaxCadence ¶
func (x *LapMsg) GetMaxCadence() interface{}
GetMaxCadence returns the appropriate MaxCadence subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*LapMsg) GetMaxFractionalCadenceScaled ¶ added in v0.2.0
GetMaxFractionalCadenceScaled returns MaxFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*LapMsg) GetMaxNegGradeScaled ¶ added in v0.2.0
GetMaxNegGradeScaled returns MaxNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*LapMsg) GetMaxNegVerticalSpeedScaled ¶ added in v0.2.0
GetMaxNegVerticalSpeedScaled returns MaxNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetMaxPosGradeScaled ¶ added in v0.2.0
GetMaxPosGradeScaled returns MaxPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*LapMsg) GetMaxPosVerticalSpeedScaled ¶ added in v0.2.0
GetMaxPosVerticalSpeedScaled returns MaxPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetMaxSaturatedHemoglobinPercentScaled ¶ added in v0.2.0
GetMaxSaturatedHemoglobinPercentScaled returns MaxSaturatedHemoglobinPercent as a slice with scale and any offset applied to every element. Units: %
func (*LapMsg) GetMaxSpeedScaled ¶ added in v0.2.0
GetMaxSpeedScaled returns MaxSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LapMsg) GetMaxTotalHemoglobinConcScaled ¶ added in v0.2.0
GetMaxTotalHemoglobinConcScaled returns MaxTotalHemoglobinConc as a slice with scale and any offset applied to every element. Units: g/dL
func (*LapMsg) GetMinAltitudeScaled ¶ added in v0.2.0
GetMinAltitudeScaled returns MinAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetMinSaturatedHemoglobinPercentScaled ¶ added in v0.2.0
GetMinSaturatedHemoglobinPercentScaled returns MinSaturatedHemoglobinPercent as a slice with scale and any offset applied to every element. Units: %
func (*LapMsg) GetMinTotalHemoglobinConcScaled ¶ added in v0.2.0
GetMinTotalHemoglobinConcScaled returns MinTotalHemoglobinConc as a slice with scale and any offset applied to every element. Units: g/dL
func (*LapMsg) GetTimeInCadenceZoneScaled ¶ added in v0.2.0
GetTimeInCadenceZoneScaled returns TimeInCadenceZone as a slice with scale and any offset applied to every element. Units: s
func (*LapMsg) GetTimeInHrZoneScaled ¶ added in v0.2.0
GetTimeInHrZoneScaled returns TimeInHrZone as a slice with scale and any offset applied to every element. Units: s
func (*LapMsg) GetTimeInPowerZoneScaled ¶ added in v0.2.0
GetTimeInPowerZoneScaled returns TimeInPowerZone as a slice with scale and any offset applied to every element. Units: s
func (*LapMsg) GetTimeInSpeedZoneScaled ¶ added in v0.2.0
GetTimeInSpeedZoneScaled returns TimeInSpeedZone as a slice with scale and any offset applied to every element. Units: s
func (*LapMsg) GetTotalCycles ¶
func (x *LapMsg) GetTotalCycles() interface{}
GetTotalCycles returns the appropriate TotalCycles subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*LapMsg) GetTotalDistanceScaled ¶ added in v0.2.0
GetTotalDistanceScaled returns TotalDistance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*LapMsg) GetTotalElapsedTimeScaled ¶ added in v0.2.0
GetTotalElapsedTimeScaled returns TotalElapsedTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*LapMsg) GetTotalFractionalCyclesScaled ¶ added in v0.2.0
GetTotalFractionalCyclesScaled returns TotalFractionalCycles with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: cycles
func (*LapMsg) GetTotalMovingTimeScaled ¶ added in v0.2.0
GetTotalMovingTimeScaled returns TotalMovingTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*LapMsg) GetTotalTimerTimeScaled ¶ added in v0.2.0
GetTotalTimerTimeScaled returns TotalTimerTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
type LapTrigger ¶
type LapTrigger byte
LapTrigger represents the lap_trigger FIT type.
const ( LapTriggerManual LapTrigger = 0 LapTriggerTime LapTrigger = 1 LapTriggerDistance LapTrigger = 2 LapTriggerPositionStart LapTrigger = 3 LapTriggerPositionLap LapTrigger = 4 LapTriggerPositionWaypoint LapTrigger = 5 LapTriggerPositionMarked LapTrigger = 6 LapTriggerSessionEnd LapTrigger = 7 LapTriggerFitnessEquipment LapTrigger = 8 LapTriggerInvalid LapTrigger = 0xFF )
func (LapTrigger) String ¶
func (i LapTrigger) String() string
type Latitude ¶
type Latitude struct {
// contains filtered or unexported fields
}
Latitude represents the geographical coordinate latitude.
func NewLatitude ¶ added in v0.2.0
NewLatitude returns a new latitude from a semicircle. If semicircles is outside the range of a latitude, (math.MinInt32/2, math.MaxInt32/2) then an invalid latitude is returned.
func NewLatitudeDegrees ¶ added in v0.2.0
NewLatitudeDegrees returns a new latitude from a degree. If degrees is outside the range of a latitude (+/- 90°) then an invalid latitude is returned.
func NewLatitudeInvalid ¶ added in v0.2.0
func NewLatitudeInvalid() Latitude
NewLatitudeInvalid returns an invalid latitude. The underlying storage is set to the invalid value of the FIT base type (sint32) used to represent a latitude.
func (Latitude) Degrees ¶ added in v0.2.0
Degrees returns l in degrees. If l is invalid then NaN is returned.
func (Latitude) Semicircles ¶ added in v0.2.0
Semicircles returns l in semicircles.
type LeftRightBalance ¶
type LeftRightBalance uint8
LeftRightBalance represents the left_right_balance FIT type.
const ( LeftRightBalanceMask LeftRightBalance = 0x7F // % contribution LeftRightBalanceRight LeftRightBalance = 0x80 // data corresponds to right if set, otherwise unknown LeftRightBalanceInvalid LeftRightBalance = 0xFF )
func (LeftRightBalance) String ¶
func (i LeftRightBalance) String() string
type LeftRightBalance100 ¶
type LeftRightBalance100 uint16
LeftRightBalance100 represents the left_right_balance_100 FIT type.
const ( LeftRightBalance100Mask LeftRightBalance100 = 0x3FFF // % contribution scaled by 100 LeftRightBalance100Right LeftRightBalance100 = 0x8000 // data corresponds to right if set, otherwise unknown LeftRightBalance100Invalid LeftRightBalance100 = 0xFFFF )
func (LeftRightBalance100) String ¶
func (i LeftRightBalance100) String() string
type LengthMsg ¶
type LengthMsg struct {
MessageIndex MessageIndex
Timestamp time.Time
Event Event
EventType EventType
StartTime time.Time
TotalElapsedTime uint32
TotalTimerTime uint32
TotalStrokes uint16
AvgSpeed uint16
SwimStroke SwimStroke
AvgSwimmingCadence uint8
EventGroup uint8
TotalCalories uint16
LengthType LengthType
PlayerScore uint16
OpponentScore uint16
StrokeCount []uint16 // stroke_type enum used as the index
ZoneCount []uint16 // zone number used as the index
}
LengthMsg represents the length FIT message type.
func (*LengthMsg) GetAvgSpeedScaled ¶ added in v0.2.0
GetAvgSpeedScaled returns AvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*LengthMsg) GetTotalElapsedTimeScaled ¶ added in v0.2.0
GetTotalElapsedTimeScaled returns TotalElapsedTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*LengthMsg) GetTotalTimerTimeScaled ¶ added in v0.2.0
GetTotalTimerTimeScaled returns TotalTimerTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
type LengthType ¶
type LengthType byte
LengthType represents the length_type FIT type.
const ( LengthTypeIdle LengthType = 0 // Rest period. Length with no strokes LengthTypeActive LengthType = 1 // Length with strokes. LengthTypeInvalid LengthType = 0xFF )
func (LengthType) String ¶
func (i LengthType) String() string
type Longitude ¶
type Longitude struct {
// contains filtered or unexported fields
}
Longitude represents the geographical coordinate longitude.
func NewLongitude ¶ added in v0.2.0
NewLongitude returns a new longitude from a semicircle.
func NewLongitudeDegrees ¶ added in v0.2.0
NewLongitudeDegrees returns a new longitude from a degree. If degrees is outside the range of a longitude (+/- 180°) then an invalid longitude is returned.
func NewLongitudeInvalid ¶ added in v0.2.0
func NewLongitudeInvalid() Longitude
NewLongitudeInvalid returns an invalid longitude. The underlying storage is set to the invalid value of the FIT base type (sint32) used to represent a longitude.
func (Longitude) Degrees ¶ added in v0.2.0
Degrees returns l in degrees. If l is invalid then NaN is returned.
func (Longitude) Semicircles ¶ added in v0.2.0
Semicircles returns l in semicircles.
type Manufacturer ¶
type Manufacturer uint16
Manufacturer represents the manufacturer FIT type.
const ( ManufacturerGarmin Manufacturer = 1 ManufacturerGarminFr405Antfs Manufacturer = 2 // Do not use. Used by FR405 for ANTFS man id. ManufacturerZephyr Manufacturer = 3 ManufacturerDayton Manufacturer = 4 ManufacturerIdt Manufacturer = 5 ManufacturerSrm Manufacturer = 6 ManufacturerQuarq Manufacturer = 7 ManufacturerIbike Manufacturer = 8 ManufacturerSaris Manufacturer = 9 ManufacturerSparkHk Manufacturer = 10 ManufacturerTanita Manufacturer = 11 ManufacturerEchowell Manufacturer = 12 ManufacturerDynastreamOem Manufacturer = 13 ManufacturerNautilus Manufacturer = 14 ManufacturerDynastream Manufacturer = 15 ManufacturerTimex Manufacturer = 16 ManufacturerMetrigear Manufacturer = 17 ManufacturerXelic Manufacturer = 18 ManufacturerBeurer Manufacturer = 19 ManufacturerCardiosport Manufacturer = 20 ManufacturerAAndD Manufacturer = 21 ManufacturerHmm Manufacturer = 22 ManufacturerSuunto Manufacturer = 23 ManufacturerThitaElektronik Manufacturer = 24 ManufacturerGpulse Manufacturer = 25 ManufacturerCleanMobile Manufacturer = 26 ManufacturerPedalBrain Manufacturer = 27 ManufacturerPeaksware Manufacturer = 28 ManufacturerSaxonar Manufacturer = 29 ManufacturerLemondFitness Manufacturer = 30 ManufacturerDexcom Manufacturer = 31 ManufacturerWahooFitness Manufacturer = 32 ManufacturerOctaneFitness Manufacturer = 33 ManufacturerArchinoetics Manufacturer = 34 ManufacturerTheHurtBox Manufacturer = 35 ManufacturerCitizenSystems Manufacturer = 36 ManufacturerMagellan Manufacturer = 37 ManufacturerOsynce Manufacturer = 38 ManufacturerHolux Manufacturer = 39 ManufacturerConcept2 Manufacturer = 40 ManufacturerOneGiantLeap Manufacturer = 42 ManufacturerAceSensor Manufacturer = 43 ManufacturerBrimBrothers Manufacturer = 44 ManufacturerXplova Manufacturer = 45 ManufacturerPerceptionDigital Manufacturer = 46 ManufacturerBf1systems Manufacturer = 47 ManufacturerPioneer Manufacturer = 48 ManufacturerSpantec Manufacturer = 49 ManufacturerMetalogics Manufacturer = 50 Manufacturer4iiiis Manufacturer = 51 ManufacturerSeikoEpson Manufacturer = 52 ManufacturerSeikoEpsonOem Manufacturer = 53 ManufacturerIforPowell Manufacturer = 54 ManufacturerMaxwellGuider Manufacturer = 55 ManufacturerStarTrac Manufacturer = 56 ManufacturerBreakaway Manufacturer = 57 ManufacturerAlatechTechnologyLtd Manufacturer = 58 ManufacturerMioTechnologyEurope Manufacturer = 59 ManufacturerRotor Manufacturer = 60 ManufacturerGeonaute Manufacturer = 61 ManufacturerIdBike Manufacturer = 62 ManufacturerSpecialized Manufacturer = 63 ManufacturerWtek Manufacturer = 64 ManufacturerPhysicalEnterprises Manufacturer = 65 ManufacturerNorthPoleEngineering Manufacturer = 66 ManufacturerBkool Manufacturer = 67 ManufacturerCateye Manufacturer = 68 ManufacturerStagesCycling Manufacturer = 69 ManufacturerSigmasport Manufacturer = 70 ManufacturerTomtom Manufacturer = 71 ManufacturerPeripedal Manufacturer = 72 ManufacturerWattbike Manufacturer = 73 ManufacturerMoxy Manufacturer = 76 ManufacturerCiclosport Manufacturer = 77 ManufacturerPowerbahn Manufacturer = 78 ManufacturerAcornProjectsAps Manufacturer = 79 ManufacturerLifebeam Manufacturer = 80 ManufacturerBontrager Manufacturer = 81 ManufacturerWellgo Manufacturer = 82 ManufacturerScosche Manufacturer = 83 ManufacturerMagura Manufacturer = 84 ManufacturerWoodway Manufacturer = 85 ManufacturerElite Manufacturer = 86 ManufacturerNielsenKellerman Manufacturer = 87 ManufacturerDkCity Manufacturer = 88 ManufacturerTacx Manufacturer = 89 ManufacturerDirectionTechnology Manufacturer = 90 ManufacturerMagtonic Manufacturer = 91 Manufacturer1partcarbon Manufacturer = 92 ManufacturerInsideRideTechnologies Manufacturer = 93 ManufacturerSoundOfMotion Manufacturer = 94 ManufacturerStryd Manufacturer = 95 ManufacturerIcg Manufacturer = 96 // Indoorcycling Group ManufacturerMiPulse Manufacturer = 97 ManufacturerBsxAthletics Manufacturer = 98 ManufacturerLook Manufacturer = 99 ManufacturerDevelopment Manufacturer = 255 ManufacturerHealthandlife Manufacturer = 257 ManufacturerLezyne Manufacturer = 258 ManufacturerScribeLabs Manufacturer = 259 ManufacturerZwift Manufacturer = 260 ManufacturerWatteam Manufacturer = 261 ManufacturerRecon Manufacturer = 262 ManufacturerFaveroElectronics Manufacturer = 263 ManufacturerDynovelo Manufacturer = 264 ManufacturerStrava Manufacturer = 265 ManufacturerActigraphcorp Manufacturer = 5759 ManufacturerInvalid Manufacturer = 0xFFFF )
func (Manufacturer) String ¶
func (i Manufacturer) String() string
type MemoGlobMsg ¶
type MemoGlobMsg struct {
}
MemoGlobMsg represents the memo_glob FIT message type.
type MesgCapabilitiesMsg ¶
type MesgCapabilitiesMsg struct {
MessageIndex MessageIndex
File File
MesgNum MesgNum
CountType MesgCount
Count uint16
}
MesgCapabilitiesMsg represents the mesg_capabilities FIT message type.
func (*MesgCapabilitiesMsg) GetCount ¶
func (x *MesgCapabilitiesMsg) GetCount() interface{}
GetCount returns the appropriate Count subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type MesgNum ¶
type MesgNum uint16
MesgNum represents the mesg_num FIT type.
const ( MesgNumFileId MesgNum = 0 MesgNumCapabilities MesgNum = 1 MesgNumDeviceSettings MesgNum = 2 MesgNumUserProfile MesgNum = 3 MesgNumHrmProfile MesgNum = 4 MesgNumSdmProfile MesgNum = 5 MesgNumBikeProfile MesgNum = 6 MesgNumZonesTarget MesgNum = 7 MesgNumHrZone MesgNum = 8 MesgNumPowerZone MesgNum = 9 MesgNumMetZone MesgNum = 10 MesgNumSport MesgNum = 12 MesgNumGoal MesgNum = 15 MesgNumSession MesgNum = 18 MesgNumLap MesgNum = 19 MesgNumRecord MesgNum = 20 MesgNumEvent MesgNum = 21 MesgNumDeviceInfo MesgNum = 23 MesgNumWorkout MesgNum = 26 MesgNumWorkoutStep MesgNum = 27 MesgNumSchedule MesgNum = 28 MesgNumWeightScale MesgNum = 30 MesgNumCourse MesgNum = 31 MesgNumCoursePoint MesgNum = 32 MesgNumTotals MesgNum = 33 MesgNumActivity MesgNum = 34 MesgNumSoftware MesgNum = 35 MesgNumFileCapabilities MesgNum = 37 MesgNumMesgCapabilities MesgNum = 38 MesgNumFieldCapabilities MesgNum = 39 MesgNumFileCreator MesgNum = 49 MesgNumBloodPressure MesgNum = 51 MesgNumSpeedZone MesgNum = 53 MesgNumMonitoring MesgNum = 55 MesgNumTrainingFile MesgNum = 72 MesgNumHrv MesgNum = 78 MesgNumLength MesgNum = 101 MesgNumMonitoringInfo MesgNum = 103 MesgNumPad MesgNum = 105 MesgNumSlaveDevice MesgNum = 106 MesgNumCadenceZone MesgNum = 131 MesgNumSegmentLap MesgNum = 142 MesgNumMemoGlob MesgNum = 145 MesgNumSegmentId MesgNum = 148 MesgNumSegmentLeaderboardEntry MesgNum = 149 MesgNumSegmentPoint MesgNum = 150 MesgNumSegmentFile MesgNum = 151 MesgNumGpsMetadata MesgNum = 160 MesgNumCameraEvent MesgNum = 161 MesgNumTimestampCorrelation MesgNum = 162 MesgNumGyroscopeData MesgNum = 164 MesgNumAccelerometerData MesgNum = 165 MesgNumThreeDSensorCalibration MesgNum = 167 MesgNumVideoFrame MesgNum = 169 MesgNumObdiiData MesgNum = 174 MesgNumNmeaSentence MesgNum = 177 MesgNumAviationAttitude MesgNum = 178 MesgNumVideo MesgNum = 184 MesgNumVideoTitle MesgNum = 185 MesgNumVideoDescription MesgNum = 186 MesgNumVideoClip MesgNum = 187 MesgNumMfgRangeMin MesgNum = 0xFF00 // 0xFF00 - 0xFFFE reserved for manufacturer specific messages MesgNumMfgRangeMax MesgNum = 0xFFFE // 0xFF00 - 0xFFFE reserved for manufacturer specific messages MesgNumInvalid MesgNum = 0xFFFF )
type MessageIndex ¶
type MessageIndex uint16
MessageIndex represents the message_index FIT type.
const ( MessageIndexSelected MessageIndex = 0x8000 // message is selected if set MessageIndexReserved MessageIndex = 0x7000 // reserved (default 0) MessageIndexMask MessageIndex = 0x0FFF // index MessageIndexInvalid MessageIndex = 0xFFFF )
func (MessageIndex) String ¶
func (i MessageIndex) String() string
type MetZoneMsg ¶
type MetZoneMsg struct {
MessageIndex MessageIndex
HighBpm uint8
Calories uint16
FatCalories uint8
}
MetZoneMsg represents the met_zone FIT message type.
func (*MetZoneMsg) GetCaloriesScaled ¶ added in v0.2.0
func (x *MetZoneMsg) GetCaloriesScaled() float64
GetCaloriesScaled returns Calories with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kcal / min
func (*MetZoneMsg) GetFatCaloriesScaled ¶ added in v0.2.0
func (x *MetZoneMsg) GetFatCaloriesScaled() float64
GetFatCaloriesScaled returns FatCalories with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kcal / min
type MonitoringAFile ¶
type MonitoringAFile struct {
MonitoringInfo *MonitoringInfoMsg
Monitorings []*MonitoringMsg
}
MonitoringAFile represents the MonitoringA FIT file type. Records detailed monitoring data (i.e. logging interval < 24 Hr).
type MonitoringBFile ¶
type MonitoringBFile struct {
MonitoringInfo *MonitoringInfoMsg
Monitorings []*MonitoringMsg
}
MonitoringBFile represents the MonitoringB FIT file type. Records detailed monitoring data (i.e. logging interval < 24 Hr).
type MonitoringDailyFile ¶
type MonitoringDailyFile struct {
MonitoringInfo *MonitoringInfoMsg
Monitorings []*MonitoringMsg
}
MonitoringDailyFile represents the Daily Monitoring FIT file type. Records daily summary monitoring data (i.e. logging interval = 24 hour).
type MonitoringInfoMsg ¶
type MonitoringInfoMsg struct {
Timestamp time.Time
LocalTimestamp time.Time // Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction.
}
MonitoringInfoMsg represents the monitoring_info FIT message type.
type MonitoringMsg ¶
type MonitoringMsg struct {
Timestamp time.Time // Must align to logging interval, for example, time must be 00:00:00 for daily log.
DeviceIndex DeviceIndex // Associates this data to device_info message. Not required for file with single device (sensor).
Calories uint16 // Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation
Distance uint32 // Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation.
Cycles uint32 // Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation.
ActiveTime uint32
ActivityType ActivityType
ActivitySubtype ActivitySubtype
Distance16 uint16
Cycles16 uint16
ActiveTime16 uint16
LocalTimestamp time.Time // Must align to logging interval, for example, time must be 00:00:00 for daily log.
}
MonitoringMsg represents the monitoring FIT message type.
func (*MonitoringMsg) GetActiveTimeScaled ¶ added in v0.2.0
func (x *MonitoringMsg) GetActiveTimeScaled() float64
GetActiveTimeScaled returns ActiveTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*MonitoringMsg) GetCycles ¶
func (x *MonitoringMsg) GetCycles() interface{}
GetCycles returns the appropriate Cycles subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*MonitoringMsg) GetCyclesScaled ¶ added in v0.2.0
func (x *MonitoringMsg) GetCyclesScaled() float64
GetCyclesScaled returns Cycles with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: cycles
func (*MonitoringMsg) GetDistanceScaled ¶ added in v0.2.0
func (x *MonitoringMsg) GetDistanceScaled() float64
GetDistanceScaled returns Distance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
type NmeaSentenceMsg ¶
type NmeaSentenceMsg struct {
Timestamp time.Time // Timestamp message was output
TimestampMs uint16 // Fractional part of timestamp, added to timestamp
Sentence string // NMEA sentence
}
NmeaSentenceMsg represents the nmea_sentence FIT message type.
type NotSupportedError ¶
type NotSupportedError string
A NotSupportedError reports that the input uses a valid but unimplemented FIT feature.
func (NotSupportedError) Error ¶
func (e NotSupportedError) Error() string
type ObdiiDataMsg ¶
type ObdiiDataMsg struct {
}
ObdiiDataMsg represents the obdii_data FIT message type.
type PowerPhaseType ¶
type PowerPhaseType byte
PowerPhaseType represents the power_phase_type FIT type.
const ( PowerPhaseTypePowerPhaseStartAngle PowerPhaseType = 0 PowerPhaseTypePowerPhaseEndAngle PowerPhaseType = 1 PowerPhaseTypePowerPhaseArcLength PowerPhaseType = 2 PowerPhaseTypePowerPhaseCenter PowerPhaseType = 3 PowerPhaseTypeInvalid PowerPhaseType = 0xFF )
func (PowerPhaseType) String ¶
func (i PowerPhaseType) String() string
type PowerZoneMsg ¶
type PowerZoneMsg struct {
MessageIndex MessageIndex
HighValue uint16
Name string
}
PowerZoneMsg represents the power_zone FIT message type.
type PwrZoneCalc ¶
type PwrZoneCalc byte
PwrZoneCalc represents the pwr_zone_calc FIT type.
const ( PwrZoneCalcCustom PwrZoneCalc = 0 PwrZoneCalcPercentFtp PwrZoneCalc = 1 PwrZoneCalcInvalid PwrZoneCalc = 0xFF )
func (PwrZoneCalc) String ¶
func (i PwrZoneCalc) String() string
type RecordMsg ¶
type RecordMsg struct {
Timestamp time.Time
PositionLat Latitude
PositionLong Longitude
Altitude uint16
HeartRate uint8
Cadence uint8
Distance uint32
Speed uint16
Power uint16
CompressedSpeedDistance []byte
Grade int16
Resistance uint8 // Relative. 0 is none 254 is Max.
TimeFromCourse int32
CycleLength uint8
Temperature int8
Speed1s []uint8 // Speed at 1s intervals. Timestamp field indicates time of last array element.
Cycles uint8
TotalCycles uint32
CompressedAccumulatedPower uint16
AccumulatedPower uint32
LeftRightBalance LeftRightBalance
GpsAccuracy uint8
VerticalSpeed int16
Calories uint16
VerticalOscillation uint16
StanceTimePercent uint16
StanceTime uint16
ActivityType ActivityType
LeftTorqueEffectiveness uint8
RightTorqueEffectiveness uint8
LeftPedalSmoothness uint8
RightPedalSmoothness uint8
CombinedPedalSmoothness uint8
Time128 uint8
StrokeType StrokeType
Zone uint8
BallSpeed uint16
Cadence256 uint16 // Log cadence and fractional cadence for backwards compatability
FractionalCadence uint8
TotalHemoglobinConc uint16 // Total saturated and unsaturated hemoglobin
TotalHemoglobinConcMin uint16 // Min saturated and unsaturated hemoglobin
TotalHemoglobinConcMax uint16 // Max saturated and unsaturated hemoglobin
SaturatedHemoglobinPercent uint16 // Percentage of hemoglobin saturated with oxygen
SaturatedHemoglobinPercentMin uint16 // Min percentage of hemoglobin saturated with oxygen
SaturatedHemoglobinPercentMax uint16 // Max percentage of hemoglobin saturated with oxygen
DeviceIndex DeviceIndex
EnhancedSpeed uint32
EnhancedAltitude uint32
}
RecordMsg represents the record FIT message type.
func (*RecordMsg) GetAltitudeScaled ¶ added in v0.2.0
GetAltitudeScaled returns Altitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*RecordMsg) GetBallSpeedScaled ¶ added in v0.2.0
GetBallSpeedScaled returns BallSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*RecordMsg) GetCadence256Scaled ¶ added in v0.2.0
GetCadence256Scaled returns Cadence256 with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*RecordMsg) GetCombinedPedalSmoothnessScaled ¶ added in v0.2.0
GetCombinedPedalSmoothnessScaled returns CombinedPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetCycleLengthScaled ¶ added in v0.2.0
GetCycleLengthScaled returns CycleLength with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*RecordMsg) GetDistanceFromCompressedSpeedDistance ¶ added in v0.2.0
GetDistanceFromCompressedSpeedDistance returns Distance with the scale and offset defined by the "Distance" component in the CompressedSpeedDistance field. NaN is if the field has an invalid value (i.e. has not been set).
func (*RecordMsg) GetDistanceScaled ¶ added in v0.2.0
GetDistanceScaled returns Distance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*RecordMsg) GetEnhancedAltitudeScaled ¶ added in v0.2.0
GetEnhancedAltitudeScaled returns EnhancedAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*RecordMsg) GetEnhancedSpeedScaled ¶ added in v0.2.0
GetEnhancedSpeedScaled returns EnhancedSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*RecordMsg) GetFractionalCadenceScaled ¶ added in v0.2.0
GetFractionalCadenceScaled returns FractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*RecordMsg) GetGradeScaled ¶ added in v0.2.0
GetGradeScaled returns Grade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*RecordMsg) GetLeftPedalSmoothnessScaled ¶ added in v0.2.0
GetLeftPedalSmoothnessScaled returns LeftPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetLeftTorqueEffectivenessScaled ¶ added in v0.2.0
GetLeftTorqueEffectivenessScaled returns LeftTorqueEffectiveness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetRightPedalSmoothnessScaled ¶ added in v0.2.0
GetRightPedalSmoothnessScaled returns RightPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetRightTorqueEffectivenessScaled ¶ added in v0.2.0
GetRightTorqueEffectivenessScaled returns RightTorqueEffectiveness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetSaturatedHemoglobinPercentMaxScaled ¶ added in v0.2.0
GetSaturatedHemoglobinPercentMaxScaled returns SaturatedHemoglobinPercentMax with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*RecordMsg) GetSaturatedHemoglobinPercentMinScaled ¶ added in v0.2.0
GetSaturatedHemoglobinPercentMinScaled returns SaturatedHemoglobinPercentMin with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*RecordMsg) GetSaturatedHemoglobinPercentScaled ¶ added in v0.2.0
GetSaturatedHemoglobinPercentScaled returns SaturatedHemoglobinPercent with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*RecordMsg) GetSpeed1sScaled ¶ added in v0.2.0
GetSpeed1sScaled returns Speed1s as a slice with scale and any offset applied to every element. Units: m/s
func (*RecordMsg) GetSpeedFromCompressedSpeedDistance ¶ added in v0.2.0
GetSpeedFromCompressedSpeedDistance returns Speed with the scale and offset defined by the "Speed" component in the CompressedSpeedDistance field. NaN is if the field has an invalid value (i.e. has not been set).
func (*RecordMsg) GetSpeedScaled ¶ added in v0.2.0
GetSpeedScaled returns Speed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*RecordMsg) GetStanceTimePercentScaled ¶ added in v0.2.0
GetStanceTimePercentScaled returns StanceTimePercent with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*RecordMsg) GetStanceTimeScaled ¶ added in v0.2.0
GetStanceTimeScaled returns StanceTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: ms
func (*RecordMsg) GetTime128Scaled ¶ added in v0.2.0
GetTime128Scaled returns Time128 with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*RecordMsg) GetTimeFromCourseScaled ¶ added in v0.2.0
GetTimeFromCourseScaled returns TimeFromCourse with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*RecordMsg) GetTotalHemoglobinConcMaxScaled ¶ added in v0.2.0
GetTotalHemoglobinConcMaxScaled returns TotalHemoglobinConcMax with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: g/dL
func (*RecordMsg) GetTotalHemoglobinConcMinScaled ¶ added in v0.2.0
GetTotalHemoglobinConcMinScaled returns TotalHemoglobinConcMin with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: g/dL
func (*RecordMsg) GetTotalHemoglobinConcScaled ¶ added in v0.2.0
GetTotalHemoglobinConcScaled returns TotalHemoglobinConc with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: g/dL
func (*RecordMsg) GetVerticalOscillationScaled ¶ added in v0.2.0
GetVerticalOscillationScaled returns VerticalOscillation with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: mm
func (*RecordMsg) GetVerticalSpeedScaled ¶ added in v0.2.0
GetVerticalSpeedScaled returns VerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
type RiderPositionType ¶
type RiderPositionType byte
RiderPositionType represents the rider_position_type FIT type.
const ( RiderPositionTypeSeated RiderPositionType = 0 RiderPositionTypeStanding RiderPositionType = 1 RiderPositionTypeInvalid RiderPositionType = 0xFF )
func (RiderPositionType) String ¶
func (i RiderPositionType) String() string
type ScheduleMsg ¶
type ScheduleMsg struct {
Manufacturer Manufacturer // Corresponds to file_id of scheduled workout / course.
Product uint16 // Corresponds to file_id of scheduled workout / course.
SerialNumber uint32 // Corresponds to file_id of scheduled workout / course.
TimeCreated time.Time // Corresponds to file_id of scheduled workout / course.
Completed Bool // TRUE if this activity has been started
Type Schedule
ScheduledTime time.Time
}
ScheduleMsg represents the schedule FIT message type.
func (*ScheduleMsg) GetProduct ¶
func (x *ScheduleMsg) GetProduct() interface{}
GetProduct returns the appropriate Product subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type SchedulesFile ¶
type SchedulesFile struct {
Schedules []*ScheduleMsg
}
SchedulesFile represents the Schedules FIT file type. Provides scheduling of workouts and courses.
type SdmProfileMsg ¶
type SdmProfileMsg struct {
MessageIndex MessageIndex
Enabled Bool
SdmAntId uint16
SdmCalFactor uint16
Odometer uint32
SpeedSource Bool // Use footpod for speed source instead of GPS
SdmAntIdTransType uint8
OdometerRollover uint8 // Rollover counter that can be used to extend the odometer
}
SdmProfileMsg represents the sdm_profile FIT message type.
func (*SdmProfileMsg) GetOdometerScaled ¶ added in v0.2.0
func (x *SdmProfileMsg) GetOdometerScaled() float64
GetOdometerScaled returns Odometer with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SdmProfileMsg) GetSdmCalFactorScaled ¶ added in v0.2.0
func (x *SdmProfileMsg) GetSdmCalFactorScaled() float64
GetSdmCalFactorScaled returns SdmCalFactor with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
type SegmentDeleteStatus ¶
type SegmentDeleteStatus byte
SegmentDeleteStatus represents the segment_delete_status FIT type.
const ( SegmentDeleteStatusDoNotDelete SegmentDeleteStatus = 0 SegmentDeleteStatusDeleteOne SegmentDeleteStatus = 1 SegmentDeleteStatusDeleteAll SegmentDeleteStatus = 2 SegmentDeleteStatusInvalid SegmentDeleteStatus = 0xFF )
func (SegmentDeleteStatus) String ¶
func (i SegmentDeleteStatus) String() string
type SegmentFile ¶
type SegmentFile struct {
SegmentId *SegmentIdMsg
SegmentLeaderboardEntry *SegmentLeaderboardEntryMsg
SegmentLap *SegmentLapMsg
SegmentPoints []*SegmentPointMsg
}
SegmentFile represents the Segment FIT file type. Describes timing data for virtual races.
type SegmentFileMsg ¶
type SegmentFileMsg struct {
MessageIndex MessageIndex
FileUuid string // UUID of the segment file
Enabled Bool // Enabled state of the segment file
UserProfilePrimaryKey uint32 // Primary key of the user that created the segment file
LeaderType []SegmentLeaderboardType // Leader type of each leader in the segment file
LeaderGroupPrimaryKey []uint32 // Group primary key of each leader in the segment file
LeaderActivityId []uint32 // Activity ID of each leader in the segment file
}
SegmentFileMsg represents the segment_file FIT message type.
type SegmentIdMsg ¶
type SegmentIdMsg struct {
Name string // Friendly name assigned to segment
Uuid string // UUID of the segment
Sport Sport // Sport associated with the segment
Enabled Bool // Segment enabled for evaluation
UserProfilePrimaryKey uint32 // Primary key of the user that created the segment
DeviceId uint32 // ID of the device that created the segment
DefaultRaceLeader uint8 // Index for the Leader Board entry selected as the default race participant
DeleteStatus SegmentDeleteStatus // Indicates if any segments should be deleted
SelectionType SegmentSelectionType // Indicates how the segment was selected to be sent to the device
}
SegmentIdMsg represents the segment_id FIT message type.
type SegmentLapMsg ¶
type SegmentLapMsg struct {
MessageIndex MessageIndex
Timestamp time.Time // Lap end time.
Event Event
EventType EventType
StartTime time.Time
StartPositionLat Latitude
StartPositionLong Longitude
EndPositionLat Latitude
EndPositionLong Longitude
TotalElapsedTime uint32 // Time (includes pauses)
TotalTimerTime uint32 // Timer Time (excludes pauses)
TotalDistance uint32
TotalCycles uint32
TotalCalories uint16
TotalFatCalories uint16 // If New Leaf
AvgSpeed uint16
MaxSpeed uint16
AvgHeartRate uint8
MaxHeartRate uint8
AvgCadence uint8 // total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
MaxCadence uint8
AvgPower uint16 // total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
MaxPower uint16
TotalAscent uint16
TotalDescent uint16
Sport Sport
EventGroup uint8
NecLat Latitude // North east corner latitude.
NecLong Longitude // North east corner longitude.
SwcLat Latitude // South west corner latitude.
SwcLong Longitude // South west corner latitude.
Name string
NormalizedPower uint16
LeftRightBalance LeftRightBalance100
SubSport SubSport
TotalWork uint32
AvgAltitude uint16
MaxAltitude uint16
GpsAccuracy uint8
AvgGrade int16
AvgPosGrade int16
AvgNegGrade int16
MaxPosGrade int16
MaxNegGrade int16
AvgTemperature int8
MaxTemperature int8
TotalMovingTime uint32
AvgPosVerticalSpeed int16
AvgNegVerticalSpeed int16
MaxPosVerticalSpeed int16
MaxNegVerticalSpeed int16
TimeInHrZone []uint32
TimeInSpeedZone []uint32
TimeInCadenceZone []uint32
TimeInPowerZone []uint32
RepetitionNum uint16
MinAltitude uint16
MinHeartRate uint8
ActiveTime uint32
WktStepIndex MessageIndex
SportEvent SportEvent
AvgLeftTorqueEffectiveness uint8
AvgRightTorqueEffectiveness uint8
AvgLeftPedalSmoothness uint8
AvgRightPedalSmoothness uint8
AvgCombinedPedalSmoothness uint8
Status SegmentLapStatus
Uuid string
AvgFractionalCadence uint8 // fractional part of the avg_cadence
MaxFractionalCadence uint8 // fractional part of the max_cadence
TotalFractionalCycles uint8 // fractional part of the total_cycles
FrontGearShiftCount uint16
RearGearShiftCount uint16
}
SegmentLapMsg represents the segment_lap FIT message type.
func (*SegmentLapMsg) GetActiveTimeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetActiveTimeScaled() float64
GetActiveTimeScaled returns ActiveTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SegmentLapMsg) GetAvgAltitudeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgAltitudeScaled() float64
GetAvgAltitudeScaled returns AvgAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentLapMsg) GetAvgCombinedPedalSmoothnessScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgCombinedPedalSmoothnessScaled() float64
GetAvgCombinedPedalSmoothnessScaled returns AvgCombinedPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SegmentLapMsg) GetAvgFractionalCadenceScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgFractionalCadenceScaled() float64
GetAvgFractionalCadenceScaled returns AvgFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*SegmentLapMsg) GetAvgGradeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgGradeScaled() float64
GetAvgGradeScaled returns AvgGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SegmentLapMsg) GetAvgLeftPedalSmoothnessScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgLeftPedalSmoothnessScaled() float64
GetAvgLeftPedalSmoothnessScaled returns AvgLeftPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SegmentLapMsg) GetAvgLeftTorqueEffectivenessScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgLeftTorqueEffectivenessScaled() float64
GetAvgLeftTorqueEffectivenessScaled returns AvgLeftTorqueEffectiveness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SegmentLapMsg) GetAvgNegGradeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgNegGradeScaled() float64
GetAvgNegGradeScaled returns AvgNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SegmentLapMsg) GetAvgNegVerticalSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgNegVerticalSpeedScaled() float64
GetAvgNegVerticalSpeedScaled returns AvgNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetAvgPosGradeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgPosGradeScaled() float64
GetAvgPosGradeScaled returns AvgPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SegmentLapMsg) GetAvgPosVerticalSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgPosVerticalSpeedScaled() float64
GetAvgPosVerticalSpeedScaled returns AvgPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetAvgRightPedalSmoothnessScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgRightPedalSmoothnessScaled() float64
GetAvgRightPedalSmoothnessScaled returns AvgRightPedalSmoothness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SegmentLapMsg) GetAvgRightTorqueEffectivenessScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgRightTorqueEffectivenessScaled() float64
GetAvgRightTorqueEffectivenessScaled returns AvgRightTorqueEffectiveness with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SegmentLapMsg) GetAvgSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetAvgSpeedScaled() float64
GetAvgSpeedScaled returns AvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetMaxAltitudeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxAltitudeScaled() float64
GetMaxAltitudeScaled returns MaxAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentLapMsg) GetMaxFractionalCadenceScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxFractionalCadenceScaled() float64
GetMaxFractionalCadenceScaled returns MaxFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*SegmentLapMsg) GetMaxNegGradeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxNegGradeScaled() float64
GetMaxNegGradeScaled returns MaxNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SegmentLapMsg) GetMaxNegVerticalSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxNegVerticalSpeedScaled() float64
GetMaxNegVerticalSpeedScaled returns MaxNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetMaxPosGradeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxPosGradeScaled() float64
GetMaxPosGradeScaled returns MaxPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SegmentLapMsg) GetMaxPosVerticalSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxPosVerticalSpeedScaled() float64
GetMaxPosVerticalSpeedScaled returns MaxPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetMaxSpeedScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMaxSpeedScaled() float64
GetMaxSpeedScaled returns MaxSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SegmentLapMsg) GetMinAltitudeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetMinAltitudeScaled() float64
GetMinAltitudeScaled returns MinAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentLapMsg) GetTimeInCadenceZoneScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTimeInCadenceZoneScaled() []float64
GetTimeInCadenceZoneScaled returns TimeInCadenceZone as a slice with scale and any offset applied to every element. Units: s
func (*SegmentLapMsg) GetTimeInHrZoneScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTimeInHrZoneScaled() []float64
GetTimeInHrZoneScaled returns TimeInHrZone as a slice with scale and any offset applied to every element. Units: s
func (*SegmentLapMsg) GetTimeInPowerZoneScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTimeInPowerZoneScaled() []float64
GetTimeInPowerZoneScaled returns TimeInPowerZone as a slice with scale and any offset applied to every element. Units: s
func (*SegmentLapMsg) GetTimeInSpeedZoneScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTimeInSpeedZoneScaled() []float64
GetTimeInSpeedZoneScaled returns TimeInSpeedZone as a slice with scale and any offset applied to every element. Units: s
func (*SegmentLapMsg) GetTotalCycles ¶
func (x *SegmentLapMsg) GetTotalCycles() interface{}
GetTotalCycles returns the appropriate TotalCycles subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*SegmentLapMsg) GetTotalDistanceScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTotalDistanceScaled() float64
GetTotalDistanceScaled returns TotalDistance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentLapMsg) GetTotalElapsedTimeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTotalElapsedTimeScaled() float64
GetTotalElapsedTimeScaled returns TotalElapsedTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SegmentLapMsg) GetTotalFractionalCyclesScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTotalFractionalCyclesScaled() float64
GetTotalFractionalCyclesScaled returns TotalFractionalCycles with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: cycles
func (*SegmentLapMsg) GetTotalMovingTimeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTotalMovingTimeScaled() float64
GetTotalMovingTimeScaled returns TotalMovingTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SegmentLapMsg) GetTotalTimerTimeScaled ¶ added in v0.2.0
func (x *SegmentLapMsg) GetTotalTimerTimeScaled() float64
GetTotalTimerTimeScaled returns TotalTimerTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
type SegmentLapStatus ¶
type SegmentLapStatus byte
SegmentLapStatus represents the segment_lap_status FIT type.
const ( SegmentLapStatusEnd SegmentLapStatus = 0 SegmentLapStatusFail SegmentLapStatus = 1 SegmentLapStatusInvalid SegmentLapStatus = 0xFF )
func (SegmentLapStatus) String ¶
func (i SegmentLapStatus) String() string
type SegmentLeaderboardEntryMsg ¶
type SegmentLeaderboardEntryMsg struct {
MessageIndex MessageIndex
Name string // Friendly name assigned to leader
Type SegmentLeaderboardType // Leader classification
GroupPrimaryKey uint32 // Primary user ID of this leader
ActivityId uint32 // ID of the activity associated with this leader time
SegmentTime uint32 // Segment Time (includes pauses)
}
SegmentLeaderboardEntryMsg represents the segment_leaderboard_entry FIT message type.
func (*SegmentLeaderboardEntryMsg) GetSegmentTimeScaled ¶ added in v0.2.0
func (x *SegmentLeaderboardEntryMsg) GetSegmentTimeScaled() float64
GetSegmentTimeScaled returns SegmentTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
type SegmentLeaderboardType ¶
type SegmentLeaderboardType byte
SegmentLeaderboardType represents the segment_leaderboard_type FIT type.
const ( SegmentLeaderboardTypeOverall SegmentLeaderboardType = 0 SegmentLeaderboardTypePersonalBest SegmentLeaderboardType = 1 SegmentLeaderboardTypeConnections SegmentLeaderboardType = 2 SegmentLeaderboardTypeGroup SegmentLeaderboardType = 3 SegmentLeaderboardTypeChallenger SegmentLeaderboardType = 4 SegmentLeaderboardTypeKom SegmentLeaderboardType = 5 SegmentLeaderboardTypeQom SegmentLeaderboardType = 6 SegmentLeaderboardTypePr SegmentLeaderboardType = 7 SegmentLeaderboardTypeGoal SegmentLeaderboardType = 8 SegmentLeaderboardTypeRival SegmentLeaderboardType = 9 SegmentLeaderboardTypeClubLeader SegmentLeaderboardType = 10 SegmentLeaderboardTypeInvalid SegmentLeaderboardType = 0xFF )
func (SegmentLeaderboardType) String ¶
func (i SegmentLeaderboardType) String() string
type SegmentListFile ¶
type SegmentListFile struct {
SegmentFiles []*SegmentFileMsg
}
SegmentListFile represents the Segment List FIT file type. Describes available segments.
type SegmentPointMsg ¶
type SegmentPointMsg struct {
MessageIndex MessageIndex
PositionLat Latitude
PositionLong Longitude
Distance uint32 // Accumulated distance along the segment at the described point
Altitude uint16 // Accumulated altitude along the segment at the described point
LeaderTime []uint32 // Accumualted time each leader board member required to reach the described point. This value is zero for all leader board members at the starting point of the segment.
}
SegmentPointMsg represents the segment_point FIT message type.
func (*SegmentPointMsg) GetAltitudeScaled ¶ added in v0.2.0
func (x *SegmentPointMsg) GetAltitudeScaled() float64
GetAltitudeScaled returns Altitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentPointMsg) GetDistanceScaled ¶ added in v0.2.0
func (x *SegmentPointMsg) GetDistanceScaled() float64
GetDistanceScaled returns Distance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SegmentPointMsg) GetLeaderTimeScaled ¶ added in v0.2.0
func (x *SegmentPointMsg) GetLeaderTimeScaled() []float64
GetLeaderTimeScaled returns LeaderTime as a slice with scale and any offset applied to every element. Units: s
type SegmentSelectionType ¶
type SegmentSelectionType byte
SegmentSelectionType represents the segment_selection_type FIT type.
const ( SegmentSelectionTypeStarred SegmentSelectionType = 0 SegmentSelectionTypeSuggested SegmentSelectionType = 1 SegmentSelectionTypeInvalid SegmentSelectionType = 0xFF )
func (SegmentSelectionType) String ¶
func (i SegmentSelectionType) String() string
type SensorType ¶
type SensorType byte
SensorType represents the sensor_type FIT type.
const ( SensorTypeAccelerometer SensorType = 0 SensorTypeGyroscope SensorType = 1 SensorTypeCompass SensorType = 2 SensorTypeInvalid SensorType = 0xFF )
func (SensorType) String ¶
func (i SensorType) String() string
type SessionMsg ¶
type SessionMsg struct {
MessageIndex MessageIndex // Selected bit is set for the current session.
Timestamp time.Time // Sesson end time.
Event Event // session
EventType EventType // stop
StartTime time.Time
StartPositionLat Latitude
StartPositionLong Longitude
Sport Sport
SubSport SubSport
TotalElapsedTime uint32 // Time (includes pauses)
TotalTimerTime uint32 // Timer Time (excludes pauses)
TotalDistance uint32
TotalCycles uint32
TotalCalories uint16
TotalFatCalories uint16
AvgSpeed uint16 // total_distance / total_timer_time
MaxSpeed uint16
AvgHeartRate uint8 // average heart rate (excludes pause time)
MaxHeartRate uint8
AvgCadence uint8 // total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time
MaxCadence uint8
AvgPower uint16 // total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time
MaxPower uint16
TotalAscent uint16
TotalDescent uint16
TotalTrainingEffect uint8
FirstLapIndex uint16
NumLaps uint16
EventGroup uint8
Trigger SessionTrigger
NecLat Latitude
NecLong Longitude
SwcLat Latitude
SwcLong Longitude
NormalizedPower uint16
TrainingStressScore uint16
IntensityFactor uint16
LeftRightBalance LeftRightBalance100
AvgStrokeCount uint32
AvgStrokeDistance uint16
SwimStroke SwimStroke
PoolLength uint16
ThresholdPower uint16
PoolLengthUnit DisplayMeasure
NumActiveLengths uint16 // # of active lengths of swim pool
TotalWork uint32
AvgAltitude uint16
MaxAltitude uint16
GpsAccuracy uint8
AvgGrade int16
AvgPosGrade int16
AvgNegGrade int16
MaxPosGrade int16
MaxNegGrade int16
AvgTemperature int8
MaxTemperature int8
TotalMovingTime uint32
AvgPosVerticalSpeed int16
AvgNegVerticalSpeed int16
MaxPosVerticalSpeed int16
MaxNegVerticalSpeed int16
MinHeartRate uint8
TimeInHrZone []uint32
TimeInSpeedZone []uint32
TimeInCadenceZone []uint32
TimeInPowerZone []uint32
AvgLapTime uint32
BestLapIndex uint16
MinAltitude uint16
PlayerScore uint16
OpponentScore uint16
OpponentName string
StrokeCount []uint16 // stroke_type enum used as the index
ZoneCount []uint16 // zone number used as the index
MaxBallSpeed uint16
AvgBallSpeed uint16
AvgVerticalOscillation uint16
AvgStanceTimePercent uint16
AvgStanceTime uint16
AvgFractionalCadence uint8 // fractional part of the avg_cadence
MaxFractionalCadence uint8 // fractional part of the max_cadence
TotalFractionalCycles uint8 // fractional part of the total_cycles
SportIndex uint8
EnhancedAvgSpeed uint32 // total_distance / total_timer_time
EnhancedMaxSpeed uint32
EnhancedAvgAltitude uint32
EnhancedMinAltitude uint32
EnhancedMaxAltitude uint32
}
SessionMsg represents the session FIT message type.
func (*SessionMsg) GetAvgAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgAltitudeScaled() float64
GetAvgAltitudeScaled returns AvgAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetAvgBallSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgBallSpeedScaled() float64
GetAvgBallSpeedScaled returns AvgBallSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetAvgCadence ¶
func (x *SessionMsg) GetAvgCadence() interface{}
GetAvgCadence returns the appropriate AvgCadence subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*SessionMsg) GetAvgFractionalCadenceScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgFractionalCadenceScaled() float64
GetAvgFractionalCadenceScaled returns AvgFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*SessionMsg) GetAvgGradeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgGradeScaled() float64
GetAvgGradeScaled returns AvgGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SessionMsg) GetAvgLapTimeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgLapTimeScaled() float64
GetAvgLapTimeScaled returns AvgLapTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SessionMsg) GetAvgNegGradeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgNegGradeScaled() float64
GetAvgNegGradeScaled returns AvgNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SessionMsg) GetAvgNegVerticalSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgNegVerticalSpeedScaled() float64
GetAvgNegVerticalSpeedScaled returns AvgNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetAvgPosGradeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgPosGradeScaled() float64
GetAvgPosGradeScaled returns AvgPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SessionMsg) GetAvgPosVerticalSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgPosVerticalSpeedScaled() float64
GetAvgPosVerticalSpeedScaled returns AvgPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetAvgSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgSpeedScaled() float64
GetAvgSpeedScaled returns AvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetAvgStanceTimePercentScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgStanceTimePercentScaled() float64
GetAvgStanceTimePercentScaled returns AvgStanceTimePercent with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: percent
func (*SessionMsg) GetAvgStanceTimeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgStanceTimeScaled() float64
GetAvgStanceTimeScaled returns AvgStanceTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: ms
func (*SessionMsg) GetAvgStrokeCountScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgStrokeCountScaled() float64
GetAvgStrokeCountScaled returns AvgStrokeCount with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: strokes/lap
func (*SessionMsg) GetAvgStrokeDistanceScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgStrokeDistanceScaled() float64
GetAvgStrokeDistanceScaled returns AvgStrokeDistance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetAvgVerticalOscillationScaled ¶ added in v0.2.0
func (x *SessionMsg) GetAvgVerticalOscillationScaled() float64
GetAvgVerticalOscillationScaled returns AvgVerticalOscillation with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: mm
func (*SessionMsg) GetEnhancedAvgAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetEnhancedAvgAltitudeScaled() float64
GetEnhancedAvgAltitudeScaled returns EnhancedAvgAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetEnhancedAvgSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetEnhancedAvgSpeedScaled() float64
GetEnhancedAvgSpeedScaled returns EnhancedAvgSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetEnhancedMaxAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetEnhancedMaxAltitudeScaled() float64
GetEnhancedMaxAltitudeScaled returns EnhancedMaxAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetEnhancedMaxSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetEnhancedMaxSpeedScaled() float64
GetEnhancedMaxSpeedScaled returns EnhancedMaxSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetEnhancedMinAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetEnhancedMinAltitudeScaled() float64
GetEnhancedMinAltitudeScaled returns EnhancedMinAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetIntensityFactorScaled ¶ added in v0.2.0
func (x *SessionMsg) GetIntensityFactorScaled() float64
GetIntensityFactorScaled returns IntensityFactor with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: if
func (*SessionMsg) GetMaxAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxAltitudeScaled() float64
GetMaxAltitudeScaled returns MaxAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetMaxBallSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxBallSpeedScaled() float64
GetMaxBallSpeedScaled returns MaxBallSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetMaxCadence ¶
func (x *SessionMsg) GetMaxCadence() interface{}
GetMaxCadence returns the appropriate MaxCadence subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*SessionMsg) GetMaxFractionalCadenceScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxFractionalCadenceScaled() float64
GetMaxFractionalCadenceScaled returns MaxFractionalCadence with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: rpm
func (*SessionMsg) GetMaxNegGradeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxNegGradeScaled() float64
GetMaxNegGradeScaled returns MaxNegGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SessionMsg) GetMaxNegVerticalSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxNegVerticalSpeedScaled() float64
GetMaxNegVerticalSpeedScaled returns MaxNegVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetMaxPosGradeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxPosGradeScaled() float64
GetMaxPosGradeScaled returns MaxPosGrade with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*SessionMsg) GetMaxPosVerticalSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxPosVerticalSpeedScaled() float64
GetMaxPosVerticalSpeedScaled returns MaxPosVerticalSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetMaxSpeedScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMaxSpeedScaled() float64
GetMaxSpeedScaled returns MaxSpeed with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
func (*SessionMsg) GetMinAltitudeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetMinAltitudeScaled() float64
GetMinAltitudeScaled returns MinAltitude with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetPoolLengthScaled ¶ added in v0.2.0
func (x *SessionMsg) GetPoolLengthScaled() float64
GetPoolLengthScaled returns PoolLength with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetTimeInCadenceZoneScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTimeInCadenceZoneScaled() []float64
GetTimeInCadenceZoneScaled returns TimeInCadenceZone as a slice with scale and any offset applied to every element. Units: s
func (*SessionMsg) GetTimeInHrZoneScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTimeInHrZoneScaled() []float64
GetTimeInHrZoneScaled returns TimeInHrZone as a slice with scale and any offset applied to every element. Units: s
func (*SessionMsg) GetTimeInPowerZoneScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTimeInPowerZoneScaled() []float64
GetTimeInPowerZoneScaled returns TimeInPowerZone as a slice with scale and any offset applied to every element. Units: s
func (*SessionMsg) GetTimeInSpeedZoneScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTimeInSpeedZoneScaled() []float64
GetTimeInSpeedZoneScaled returns TimeInSpeedZone as a slice with scale and any offset applied to every element. Units: s
func (*SessionMsg) GetTotalCycles ¶
func (x *SessionMsg) GetTotalCycles() interface{}
GetTotalCycles returns the appropriate TotalCycles subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*SessionMsg) GetTotalDistanceScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalDistanceScaled() float64
GetTotalDistanceScaled returns TotalDistance with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*SessionMsg) GetTotalElapsedTimeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalElapsedTimeScaled() float64
GetTotalElapsedTimeScaled returns TotalElapsedTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SessionMsg) GetTotalFractionalCyclesScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalFractionalCyclesScaled() float64
GetTotalFractionalCyclesScaled returns TotalFractionalCycles with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: cycles
func (*SessionMsg) GetTotalMovingTimeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalMovingTimeScaled() float64
GetTotalMovingTimeScaled returns TotalMovingTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SessionMsg) GetTotalTimerTimeScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalTimerTimeScaled() float64
GetTotalTimerTimeScaled returns TotalTimerTime with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: s
func (*SessionMsg) GetTotalTrainingEffectScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTotalTrainingEffectScaled() float64
GetTotalTrainingEffectScaled returns TotalTrainingEffect with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set).
func (*SessionMsg) GetTrainingStressScoreScaled ¶ added in v0.2.0
func (x *SessionMsg) GetTrainingStressScoreScaled() float64
GetTrainingStressScoreScaled returns TrainingStressScore with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: tss
type SessionTrigger ¶
type SessionTrigger byte
SessionTrigger represents the session_trigger FIT type.
const ( SessionTriggerActivityEnd SessionTrigger = 0 SessionTriggerManual SessionTrigger = 1 // User changed sport. SessionTriggerAutoMultiSport SessionTrigger = 2 // Auto multi-sport feature is enabled and user pressed lap button to advance session. SessionTriggerFitnessEquipment SessionTrigger = 3 // Auto sport change caused by user linking to fitness equipment. SessionTriggerInvalid SessionTrigger = 0xFF )
func (SessionTrigger) String ¶
func (i SessionTrigger) String() string
type SettingsFile ¶
type SettingsFile struct {
UserProfiles []*UserProfileMsg
HrmProfiles []*HrmProfileMsg
SdmProfiles []*SdmProfileMsg
BikeProfiles []*BikeProfileMsg
DeviceSettings []*DeviceSettingsMsg
}
SettingsFile represents the Settings FIT file type. Describes a user’s parameters such as Age & Weight as well as device settings.
type SlaveDeviceMsg ¶
type SlaveDeviceMsg struct {
Manufacturer Manufacturer
Product uint16
}
SlaveDeviceMsg represents the slave_device FIT message type.
func (*SlaveDeviceMsg) GetProduct ¶
func (x *SlaveDeviceMsg) GetProduct() interface{}
GetProduct returns the appropriate Product subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type SoftwareMsg ¶
type SoftwareMsg struct {
MessageIndex MessageIndex
Version uint16
PartNumber string
}
SoftwareMsg represents the software FIT message type.
func (*SoftwareMsg) GetVersionScaled ¶ added in v0.2.0
func (x *SoftwareMsg) GetVersionScaled() float64
GetVersionScaled returns Version with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set).
type SourceType ¶
type SourceType byte
SourceType represents the source_type FIT type.
const ( SourceTypeAnt SourceType = 0 // External device connected with ANT SourceTypeAntplus SourceType = 1 // External device connected with ANT+ SourceTypeBluetooth SourceType = 2 // External device connected with BT SourceTypeBluetoothLowEnergy SourceType = 3 // External device connected with BLE SourceTypeWifi SourceType = 4 // External device connected with Wifi SourceTypeLocal SourceType = 5 // Onboard device SourceTypeInvalid SourceType = 0xFF )
func (SourceType) String ¶
func (i SourceType) String() string
type SpeedZoneMsg ¶
type SpeedZoneMsg struct {
MessageIndex MessageIndex
HighValue uint16
Name string
}
SpeedZoneMsg represents the speed_zone FIT message type.
func (*SpeedZoneMsg) GetHighValueScaled ¶ added in v0.2.0
func (x *SpeedZoneMsg) GetHighValueScaled() float64
GetHighValueScaled returns HighValue with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m/s
type Sport ¶
type Sport byte
Sport represents the sport FIT type.
const ( SportGeneric Sport = 0 SportRunning Sport = 1 SportCycling Sport = 2 SportTransition Sport = 3 // Mulitsport transition SportFitnessEquipment Sport = 4 SportSwimming Sport = 5 SportBasketball Sport = 6 SportSoccer Sport = 7 SportTennis Sport = 8 SportAmericanFootball Sport = 9 SportTraining Sport = 10 SportWalking Sport = 11 SportCrossCountrySkiing Sport = 12 SportAlpineSkiing Sport = 13 SportSnowboarding Sport = 14 SportRowing Sport = 15 SportMountaineering Sport = 16 SportHiking Sport = 17 SportMultisport Sport = 18 SportPaddling Sport = 19 SportFlying Sport = 20 SportEBiking Sport = 21 SportMotorcycling Sport = 22 SportBoating Sport = 23 SportDriving Sport = 24 SportGolf Sport = 25 SportHangGliding Sport = 26 SportHorsebackRiding Sport = 27 SportHunting Sport = 28 SportFishing Sport = 29 SportInlineSkating Sport = 30 SportRockClimbing Sport = 31 SportSailing Sport = 32 SportIceSkating Sport = 33 SportSkyDiving Sport = 34 SportSnowshoeing Sport = 35 SportSnowmobiling Sport = 36 SportStandUpPaddleboarding Sport = 37 SportSurfing Sport = 38 SportWakeboarding Sport = 39 SportWaterSkiing Sport = 40 SportKayaking Sport = 41 SportRafting Sport = 42 SportWindsurfing Sport = 43 SportKitesurfing Sport = 44 SportAll Sport = 254 // All is for goals only to include all sports. SportInvalid Sport = 0xFF )
type SportBits0 ¶
type SportBits0 uint8
SportBits0 represents the sport_bits_0 FIT type.
const ( SportBits0Generic SportBits0 = 0x01 SportBits0Running SportBits0 = 0x02 SportBits0Cycling SportBits0 = 0x04 SportBits0Transition SportBits0 = 0x08 // Mulitsport transition SportBits0FitnessEquipment SportBits0 = 0x10 SportBits0Swimming SportBits0 = 0x20 SportBits0Basketball SportBits0 = 0x40 SportBits0Soccer SportBits0 = 0x80 SportBits0Invalid SportBits0 = 0x00 )
func (SportBits0) String ¶
func (i SportBits0) String() string
type SportBits1 ¶
type SportBits1 uint8
SportBits1 represents the sport_bits_1 FIT type.
const ( SportBits1Tennis SportBits1 = 0x01 SportBits1AmericanFootball SportBits1 = 0x02 SportBits1Training SportBits1 = 0x04 SportBits1Walking SportBits1 = 0x08 SportBits1CrossCountrySkiing SportBits1 = 0x10 SportBits1AlpineSkiing SportBits1 = 0x20 SportBits1Snowboarding SportBits1 = 0x40 SportBits1Rowing SportBits1 = 0x80 SportBits1Invalid SportBits1 = 0x00 )
func (SportBits1) String ¶
func (i SportBits1) String() string
type SportBits2 ¶
type SportBits2 uint8
SportBits2 represents the sport_bits_2 FIT type.
const ( SportBits2Mountaineering SportBits2 = 0x01 SportBits2Hiking SportBits2 = 0x02 SportBits2Multisport SportBits2 = 0x04 SportBits2Paddling SportBits2 = 0x08 SportBits2Flying SportBits2 = 0x10 SportBits2EBiking SportBits2 = 0x20 SportBits2Motorcycling SportBits2 = 0x40 SportBits2Boating SportBits2 = 0x80 SportBits2Invalid SportBits2 = 0x00 )
func (SportBits2) String ¶
func (i SportBits2) String() string
type SportBits3 ¶
type SportBits3 uint8
SportBits3 represents the sport_bits_3 FIT type.
const ( SportBits3Driving SportBits3 = 0x01 SportBits3Golf SportBits3 = 0x02 SportBits3HangGliding SportBits3 = 0x04 SportBits3HorsebackRiding SportBits3 = 0x08 SportBits3Hunting SportBits3 = 0x10 SportBits3Fishing SportBits3 = 0x20 SportBits3InlineSkating SportBits3 = 0x40 SportBits3RockClimbing SportBits3 = 0x80 SportBits3Invalid SportBits3 = 0x00 )
func (SportBits3) String ¶
func (i SportBits3) String() string
type SportBits4 ¶
type SportBits4 uint8
SportBits4 represents the sport_bits_4 FIT type.
const ( SportBits4Sailing SportBits4 = 0x01 SportBits4IceSkating SportBits4 = 0x02 SportBits4SkyDiving SportBits4 = 0x04 SportBits4Snowshoeing SportBits4 = 0x08 SportBits4Snowmobiling SportBits4 = 0x10 SportBits4StandUpPaddleboarding SportBits4 = 0x20 SportBits4Surfing SportBits4 = 0x40 SportBits4Wakeboarding SportBits4 = 0x80 SportBits4Invalid SportBits4 = 0x00 )
func (SportBits4) String ¶
func (i SportBits4) String() string
type SportBits5 ¶
type SportBits5 uint8
SportBits5 represents the sport_bits_5 FIT type.
const ( SportBits5WaterSkiing SportBits5 = 0x01 SportBits5Kayaking SportBits5 = 0x02 SportBits5Rafting SportBits5 = 0x04 SportBits5Windsurfing SportBits5 = 0x08 SportBits5Kitesurfing SportBits5 = 0x10 SportBits5Invalid SportBits5 = 0x00 )
func (SportBits5) String ¶
func (i SportBits5) String() string
type SportEvent ¶
type SportEvent byte
SportEvent represents the sport_event FIT type.
const ( SportEventUncategorized SportEvent = 0 SportEventGeocaching SportEvent = 1 SportEventFitness SportEvent = 2 SportEventRecreation SportEvent = 3 SportEventRace SportEvent = 4 SportEventSpecialEvent SportEvent = 5 SportEventTraining SportEvent = 6 SportEventTransportation SportEvent = 7 SportEventTouring SportEvent = 8 SportEventInvalid SportEvent = 0xFF )
func (SportEvent) String ¶
func (i SportEvent) String() string
type SportFile ¶
type SportFile struct {
ZonesTarget *ZonesTargetMsg
Sport *SportMsg
HrZones []*HrZoneMsg
PowerZones []*PowerZoneMsg
MetZones []*MetZoneMsg
SpeedZones []*SpeedZoneMsg
CadenceZones []*CadenceZoneMsg
}
SportFile represents the Sport Settings FIT file type. Describes a user’s desired sport/zone settings.
type StrokeType ¶
type StrokeType byte
StrokeType represents the stroke_type FIT type.
const ( StrokeTypeNoEvent StrokeType = 0 StrokeTypeOther StrokeType = 1 // stroke was detected but cannot be identified StrokeTypeServe StrokeType = 2 StrokeTypeForehand StrokeType = 3 StrokeTypeBackhand StrokeType = 4 StrokeTypeSmash StrokeType = 5 StrokeTypeInvalid StrokeType = 0xFF )
func (StrokeType) String ¶
func (i StrokeType) String() string
type SubSport ¶
type SubSport byte
SubSport represents the sub_sport FIT type.
const ( SubSportGeneric SubSport = 0 SubSportTreadmill SubSport = 1 // Run/Fitness Equipment SubSportStreet SubSport = 2 // Run SubSportTrail SubSport = 3 // Run SubSportTrack SubSport = 4 // Run SubSportSpin SubSport = 5 // Cycling SubSportIndoorCycling SubSport = 6 // Cycling/Fitness Equipment SubSportRoad SubSport = 7 // Cycling SubSportMountain SubSport = 8 // Cycling SubSportDownhill SubSport = 9 // Cycling SubSportRecumbent SubSport = 10 // Cycling SubSportCyclocross SubSport = 11 // Cycling SubSportHandCycling SubSport = 12 // Cycling SubSportTrackCycling SubSport = 13 // Cycling SubSportIndoorRowing SubSport = 14 // Fitness Equipment SubSportElliptical SubSport = 15 // Fitness Equipment SubSportStairClimbing SubSport = 16 // Fitness Equipment SubSportLapSwimming SubSport = 17 // Swimming SubSportOpenWater SubSport = 18 // Swimming SubSportFlexibilityTraining SubSport = 19 // Training SubSportStrengthTraining SubSport = 20 // Training SubSportWarmUp SubSport = 21 // Tennis SubSportMatch SubSport = 22 // Tennis SubSportExercise SubSport = 23 // Tennis SubSportChallenge SubSport = 24 // Tennis SubSportIndoorSkiing SubSport = 25 // Fitness Equipment SubSportCardioTraining SubSport = 26 // Training SubSportIndoorWalking SubSport = 27 // Walking/Fitness Equipment SubSportEBikeFitness SubSport = 28 // E-Biking SubSportBmx SubSport = 29 // Cycling SubSportCasualWalking SubSport = 30 // Walking SubSportSpeedWalking SubSport = 31 // Walking SubSportBikeToRunTransition SubSport = 32 // Transition SubSportRunToBikeTransition SubSport = 33 // Transition SubSportSwimToBikeTransition SubSport = 34 // Transition SubSportAtv SubSport = 35 // Motorcycling SubSportMotocross SubSport = 36 // Motorcycling SubSportBackcountry SubSport = 37 // Alpine Skiing/Snowboarding SubSportResort SubSport = 38 // Alpine Skiing/Snowboarding SubSportRcDrone SubSport = 39 // Flying SubSportWingsuit SubSport = 40 // Flying SubSportWhitewater SubSport = 41 // Kayaking/Rafting SubSportAll SubSport = 254 SubSportInvalid SubSport = 0xFF )
type SwimStroke ¶
type SwimStroke byte
SwimStroke represents the swim_stroke FIT type.
const ( SwimStrokeFreestyle SwimStroke = 0 SwimStrokeBackstroke SwimStroke = 1 SwimStrokeBreaststroke SwimStroke = 2 SwimStrokeButterfly SwimStroke = 3 SwimStrokeDrill SwimStroke = 4 SwimStrokeMixed SwimStroke = 5 SwimStrokeIm SwimStroke = 6 // IM is a mixed interval containing the same number of lengths for each of: Butterfly, Backstroke, Breaststroke, Freestyle, swam in that order. SwimStrokeInvalid SwimStroke = 0xFF )
func (SwimStroke) String ¶
func (i SwimStroke) String() string
type ThreeDSensorCalibrationMsg ¶
type ThreeDSensorCalibrationMsg struct {
}
ThreeDSensorCalibrationMsg represents the three_d_sensor_calibration FIT message type.
type TimeZone ¶
type TimeZone byte
TimeZone represents the time_zone FIT type.
const ( TimeZoneAlmaty TimeZone = 0 TimeZoneBangkok TimeZone = 1 TimeZoneBombay TimeZone = 2 TimeZoneBrasilia TimeZone = 3 TimeZoneCairo TimeZone = 4 TimeZoneCapeVerdeIs TimeZone = 5 TimeZoneDarwin TimeZone = 6 TimeZoneEniwetok TimeZone = 7 TimeZoneFiji TimeZone = 8 TimeZoneHongKong TimeZone = 9 TimeZoneIslamabad TimeZone = 10 TimeZoneKabul TimeZone = 11 TimeZoneMagadan TimeZone = 12 TimeZoneMidAtlantic TimeZone = 13 TimeZoneMoscow TimeZone = 14 TimeZoneMuscat TimeZone = 15 TimeZoneNewfoundland TimeZone = 16 TimeZoneSamoa TimeZone = 17 TimeZoneSydney TimeZone = 18 TimeZoneTehran TimeZone = 19 TimeZoneTokyo TimeZone = 20 TimeZoneUsAlaska TimeZone = 21 TimeZoneUsAtlantic TimeZone = 22 TimeZoneUsCentral TimeZone = 23 TimeZoneUsEastern TimeZone = 24 TimeZoneUsHawaii TimeZone = 25 TimeZoneUsMountain TimeZone = 26 TimeZoneUsPacific TimeZone = 27 TimeZoneOther TimeZone = 28 TimeZoneAuckland TimeZone = 29 TimeZoneKathmandu TimeZone = 30 TimeZoneEuropeWesternWet TimeZone = 31 TimeZoneEuropeCentralCet TimeZone = 32 TimeZoneEuropeEasternEet TimeZone = 33 TimeZoneJakarta TimeZone = 34 TimeZonePerth TimeZone = 35 TimeZoneAdelaide TimeZone = 36 TimeZoneBrisbane TimeZone = 37 TimeZoneTasmania TimeZone = 38 TimeZoneIceland TimeZone = 39 TimeZoneAmsterdam TimeZone = 40 TimeZoneAthens TimeZone = 41 TimeZoneBarcelona TimeZone = 42 TimeZoneBerlin TimeZone = 43 TimeZoneBrussels TimeZone = 44 TimeZoneBudapest TimeZone = 45 TimeZoneCopenhagen TimeZone = 46 TimeZoneDublin TimeZone = 47 TimeZoneHelsinki TimeZone = 48 TimeZoneLisbon TimeZone = 49 TimeZoneLondon TimeZone = 50 TimeZoneMadrid TimeZone = 51 TimeZoneMunich TimeZone = 52 TimeZoneOslo TimeZone = 53 TimeZoneParis TimeZone = 54 TimeZonePrague TimeZone = 55 TimeZoneReykjavik TimeZone = 56 TimeZoneRome TimeZone = 57 TimeZoneStockholm TimeZone = 58 TimeZoneVienna TimeZone = 59 TimeZoneWarsaw TimeZone = 60 TimeZoneZurich TimeZone = 61 TimeZoneQuebec TimeZone = 62 TimeZoneOntario TimeZone = 63 TimeZoneManitoba TimeZone = 64 TimeZoneSaskatchewan TimeZone = 65 TimeZoneAlberta TimeZone = 66 TimeZoneBritishColumbia TimeZone = 67 TimeZoneBoise TimeZone = 68 TimeZoneBoston TimeZone = 69 TimeZoneChicago TimeZone = 70 TimeZoneDallas TimeZone = 71 TimeZoneDenver TimeZone = 72 TimeZoneKansasCity TimeZone = 73 TimeZoneLasVegas TimeZone = 74 TimeZoneLosAngeles TimeZone = 75 TimeZoneMiami TimeZone = 76 TimeZoneMinneapolis TimeZone = 77 TimeZoneNewYork TimeZone = 78 TimeZoneNewOrleans TimeZone = 79 TimeZonePhoenix TimeZone = 80 TimeZoneSantaFe TimeZone = 81 TimeZoneSeattle TimeZone = 82 TimeZoneWashingtonDc TimeZone = 83 TimeZoneUsArizona TimeZone = 84 TimeZoneChita TimeZone = 85 TimeZoneEkaterinburg TimeZone = 86 TimeZoneIrkutsk TimeZone = 87 TimeZoneKaliningrad TimeZone = 88 TimeZoneKrasnoyarsk TimeZone = 89 TimeZoneNovosibirsk TimeZone = 90 TimeZonePetropavlovskKamchatskiy TimeZone = 91 TimeZoneSamara TimeZone = 92 TimeZoneVladivostok TimeZone = 93 TimeZoneMexicoCentral TimeZone = 94 TimeZoneMexicoMountain TimeZone = 95 TimeZoneMexicoPacific TimeZone = 96 TimeZoneCapeTown TimeZone = 97 TimeZoneWinkhoek TimeZone = 98 TimeZoneLagos TimeZone = 99 TimeZoneRiyahd TimeZone = 100 TimeZoneVenezuela TimeZone = 101 TimeZoneAustraliaLh TimeZone = 102 TimeZoneSantiago TimeZone = 103 TimeZoneManual TimeZone = 253 TimeZoneAutomatic TimeZone = 254 TimeZoneInvalid TimeZone = 0xFF )
type TimerTrigger ¶
type TimerTrigger byte
TimerTrigger represents the timer_trigger FIT type.
const ( TimerTriggerManual TimerTrigger = 0 TimerTriggerAuto TimerTrigger = 1 TimerTriggerFitnessEquipment TimerTrigger = 2 TimerTriggerInvalid TimerTrigger = 0xFF )
func (TimerTrigger) String ¶
func (i TimerTrigger) String() string
type TimestampCorrelationMsg ¶
type TimestampCorrelationMsg struct {
}
TimestampCorrelationMsg represents the timestamp_correlation FIT message type.
type TotalsFile ¶
type TotalsFile struct {
Totals []*TotalsMsg
}
TotalsFile represents the Totals FIT file type. Summarizes a user’s total activity, characterized by sport.
type TotalsMsg ¶
type TotalsMsg struct {
MessageIndex MessageIndex
Timestamp time.Time
TimerTime uint32 // Excludes pauses
Distance uint32
Calories uint32
Sport Sport
ElapsedTime uint32 // Includes pauses
Sessions uint16
ActiveTime uint32
}
TotalsMsg represents the totals FIT message type.
type TrainingFileMsg ¶
type TrainingFileMsg struct {
Timestamp time.Time
Type File
Manufacturer Manufacturer
Product uint16
SerialNumber uint32
TimeCreated time.Time
}
TrainingFileMsg represents the training_file FIT message type.
func (*TrainingFileMsg) GetProduct ¶
func (x *TrainingFileMsg) GetProduct() interface{}
GetProduct returns the appropriate Product subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type UnknownField ¶
UnknownField represents an unknown FIT message field not found in the official profile. It contains the global message and field number.
type UserLocalId ¶
type UserLocalId uint16
UserLocalId represents the user_local_id FIT type.
const ( UserLocalIdLocalMin UserLocalId = 0x0000 UserLocalIdLocalMax UserLocalId = 0x000F UserLocalIdStationaryMin UserLocalId = 0x0010 UserLocalIdStationaryMax UserLocalId = 0x00FF UserLocalIdPortableMin UserLocalId = 0x0100 UserLocalIdPortableMax UserLocalId = 0xFFFE UserLocalIdInvalid UserLocalId = 0xFFFF )
func (UserLocalId) String ¶
func (i UserLocalId) String() string
type UserProfileMsg ¶
type UserProfileMsg struct {
MessageIndex MessageIndex
FriendlyName string
Gender Gender
Age uint8
Height uint8
Weight uint16
Language Language
ElevSetting DisplayMeasure
WeightSetting DisplayMeasure
RestingHeartRate uint8
DefaultMaxRunningHeartRate uint8
DefaultMaxBikingHeartRate uint8
DefaultMaxHeartRate uint8
HrSetting DisplayHeart
SpeedSetting DisplayMeasure
DistSetting DisplayMeasure
PowerSetting DisplayPower
ActivityClass ActivityClass
PositionSetting DisplayPosition
TemperatureSetting DisplayMeasure
LocalId UserLocalId
GlobalId []byte
HeightSetting DisplayMeasure
}
UserProfileMsg represents the user_profile FIT message type.
func (*UserProfileMsg) GetHeightScaled ¶ added in v0.2.0
func (x *UserProfileMsg) GetHeightScaled() float64
GetHeightScaled returns Height with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: m
func (*UserProfileMsg) GetWeightScaled ¶ added in v0.2.0
func (x *UserProfileMsg) GetWeightScaled() float64
GetWeightScaled returns Weight with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
type VideoClipMsg ¶
type VideoClipMsg struct {
}
VideoClipMsg represents the video_clip FIT message type.
type VideoDescriptionMsg ¶
type VideoDescriptionMsg struct {
MessageIndex MessageIndex // Long descriptions will be split into multiple parts
MessageCount uint16 // Total number of description parts
Text string
}
VideoDescriptionMsg represents the video_description FIT message type.
type VideoFrameMsg ¶
type VideoFrameMsg struct {
}
VideoFrameMsg represents the video_frame FIT message type.
type VideoTitleMsg ¶
type VideoTitleMsg struct {
MessageIndex MessageIndex // Long titles will be split into multiple parts
MessageCount uint16 // Total number of title parts
Text string
}
VideoTitleMsg represents the video_title FIT message type.
type WeightFile ¶
type WeightFile struct {
UserProfile *UserProfileMsg
WeightScales []*WeightScaleMsg
}
WeightFile represents the Weight FIT file type. Records weight scale data.
type WeightScaleMsg ¶
type WeightScaleMsg struct {
Timestamp time.Time
Weight Weight
PercentFat uint16
PercentHydration uint16
VisceralFatMass uint16
BoneMass uint16
MuscleMass uint16
BasalMet uint16
PhysiqueRating uint8
ActiveMet uint16 // ~4kJ per kcal, 0.25 allows max 16384 kcal
MetabolicAge uint8
VisceralFatRating uint8
UserProfileIndex MessageIndex // Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file.
}
WeightScaleMsg represents the weight_scale FIT message type.
func (*WeightScaleMsg) GetActiveMetScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetActiveMetScaled() float64
GetActiveMetScaled returns ActiveMet with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kcal/day
func (*WeightScaleMsg) GetBasalMetScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetBasalMetScaled() float64
GetBasalMetScaled returns BasalMet with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kcal/day
func (*WeightScaleMsg) GetBoneMassScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetBoneMassScaled() float64
GetBoneMassScaled returns BoneMass with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
func (*WeightScaleMsg) GetMuscleMassScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetMuscleMassScaled() float64
GetMuscleMassScaled returns MuscleMass with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
func (*WeightScaleMsg) GetPercentFatScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetPercentFatScaled() float64
GetPercentFatScaled returns PercentFat with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*WeightScaleMsg) GetPercentHydrationScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetPercentHydrationScaled() float64
GetPercentHydrationScaled returns PercentHydration with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: %
func (*WeightScaleMsg) GetVisceralFatMassScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetVisceralFatMassScaled() float64
GetVisceralFatMassScaled returns VisceralFatMass with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
func (*WeightScaleMsg) GetWeightScaled ¶ added in v0.2.0
func (x *WeightScaleMsg) GetWeightScaled() float64
GetWeightScaled returns Weight with scale and any offset applied. NaN is returned if the field has an invalid value (i.e. has not been set). Units: kg
type WktStepDuration ¶
type WktStepDuration byte
WktStepDuration represents the wkt_step_duration FIT type.
const ( WktStepDurationTime WktStepDuration = 0 WktStepDurationDistance WktStepDuration = 1 WktStepDurationHrLessThan WktStepDuration = 2 WktStepDurationHrGreaterThan WktStepDuration = 3 WktStepDurationCalories WktStepDuration = 4 WktStepDurationOpen WktStepDuration = 5 WktStepDurationRepeatUntilStepsCmplt WktStepDuration = 6 WktStepDurationRepeatUntilTime WktStepDuration = 7 WktStepDurationRepeatUntilDistance WktStepDuration = 8 WktStepDurationRepeatUntilCalories WktStepDuration = 9 WktStepDurationRepeatUntilHrLessThan WktStepDuration = 10 WktStepDurationRepeatUntilHrGreaterThan WktStepDuration = 11 WktStepDurationRepeatUntilPowerLessThan WktStepDuration = 12 WktStepDurationRepeatUntilPowerGreaterThan WktStepDuration = 13 WktStepDurationPowerLessThan WktStepDuration = 14 WktStepDurationPowerGreaterThan WktStepDuration = 15 WktStepDurationRepetitionTime WktStepDuration = 28 WktStepDurationInvalid WktStepDuration = 0xFF )
func (WktStepDuration) String ¶
func (i WktStepDuration) String() string
type WktStepTarget ¶
type WktStepTarget byte
WktStepTarget represents the wkt_step_target FIT type.
const ( WktStepTargetSpeed WktStepTarget = 0 WktStepTargetHeartRate WktStepTarget = 1 WktStepTargetOpen WktStepTarget = 2 WktStepTargetCadence WktStepTarget = 3 WktStepTargetPower WktStepTarget = 4 WktStepTargetGrade WktStepTarget = 5 WktStepTargetResistance WktStepTarget = 6 WktStepTargetInvalid WktStepTarget = 0xFF )
func (WktStepTarget) String ¶
func (i WktStepTarget) String() string
type WorkoutCapabilities ¶
type WorkoutCapabilities uint32
WorkoutCapabilities represents the workout_capabilities FIT type.
const ( WorkoutCapabilitiesInterval WorkoutCapabilities = 0x00000001 WorkoutCapabilitiesCustom WorkoutCapabilities = 0x00000002 WorkoutCapabilitiesFitnessEquipment WorkoutCapabilities = 0x00000004 WorkoutCapabilitiesFirstbeat WorkoutCapabilities = 0x00000008 WorkoutCapabilitiesNewLeaf WorkoutCapabilities = 0x00000010 WorkoutCapabilitiesTcx WorkoutCapabilities = 0x00000020 // For backwards compatibility. Watch should add missing id fields then clear flag. WorkoutCapabilitiesSpeed WorkoutCapabilities = 0x00000080 // Speed source required for workout step. WorkoutCapabilitiesHeartRate WorkoutCapabilities = 0x00000100 // Heart rate source required for workout step. WorkoutCapabilitiesDistance WorkoutCapabilities = 0x00000200 // Distance source required for workout step. WorkoutCapabilitiesCadence WorkoutCapabilities = 0x00000400 // Cadence source required for workout step. WorkoutCapabilitiesPower WorkoutCapabilities = 0x00000800 // Power source required for workout step. WorkoutCapabilitiesGrade WorkoutCapabilities = 0x00001000 // Grade source required for workout step. WorkoutCapabilitiesResistance WorkoutCapabilities = 0x00002000 // Resistance source required for workout step. WorkoutCapabilitiesProtected WorkoutCapabilities = 0x00004000 WorkoutCapabilitiesInvalid WorkoutCapabilities = 0x00000000 )
func (WorkoutCapabilities) String ¶
func (i WorkoutCapabilities) String() string
type WorkoutFile ¶
type WorkoutFile struct {
Workout *WorkoutMsg
WorkoutSteps []*WorkoutStepMsg
}
WorkoutFile represents the Workout FIT file type. Describes a structured activity that can be designed on a computer and transferred to a display device to guide a user through the activity.
type WorkoutMsg ¶
type WorkoutMsg struct {
Sport Sport
Capabilities WorkoutCapabilities
NumValidSteps uint16 // number of valid steps
WktName string
}
WorkoutMsg represents the workout FIT message type.
type WorkoutPower ¶
type WorkoutPower uint32
WorkoutPower represents the workout_power FIT type.
const ( WorkoutPowerWattsOffset WorkoutPower = 1000 WorkoutPowerInvalid WorkoutPower = 0xFFFFFFFF )
func (WorkoutPower) String ¶
func (i WorkoutPower) String() string
type WorkoutStepMsg ¶
type WorkoutStepMsg struct {
MessageIndex MessageIndex
WktStepName string
DurationType WktStepDuration
DurationValue uint32
TargetType WktStepTarget
TargetValue uint32
CustomTargetValueLow uint32
CustomTargetValueHigh uint32
Intensity Intensity
}
WorkoutStepMsg represents the workout_step FIT message type.
func (*WorkoutStepMsg) GetCustomTargetValueHigh ¶
func (x *WorkoutStepMsg) GetCustomTargetValueHigh() interface{}
GetCustomTargetValueHigh returns the appropriate CustomTargetValueHigh subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*WorkoutStepMsg) GetCustomTargetValueLow ¶
func (x *WorkoutStepMsg) GetCustomTargetValueLow() interface{}
GetCustomTargetValueLow returns the appropriate CustomTargetValueLow subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*WorkoutStepMsg) GetDurationValue ¶
func (x *WorkoutStepMsg) GetDurationValue() interface{}
GetDurationValue returns the appropriate DurationValue subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
func (*WorkoutStepMsg) GetTargetValue ¶
func (x *WorkoutStepMsg) GetTargetValue() interface{}
GetTargetValue returns the appropriate TargetValue subfield if a matching reference field/value combination is found. If none of the reference field/value combinations are true then the main field is returned.
type ZonesTargetMsg ¶
type ZonesTargetMsg struct {
MaxHeartRate uint8
ThresholdHeartRate uint8
FunctionalThresholdPower uint16
HrCalcType HrZoneCalc
PwrCalcType PwrZoneCalc
}
ZonesTargetMsg represents the zones_target FIT message type.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
fitgen
command
|
|
|
stringer
command
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface.
|
Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface. |
|
Package dyncrc16 implements the Dynastream CRC-16 checksum.
|
Package dyncrc16 implements the Dynastream CRC-16 checksum. |