use super::fit::{Conv, Field, Print};
pub(crate) static EVENT: [(i64, &str); 48] = [
(0, "Timer"),
(3, "Workout"),
(4, "Workout Step"),
(5, "Power Down"),
(6, "Power Up"),
(7, "Off Course"),
(8, "Session"),
(9, "Lap"),
(10, "Course Point"),
(11, "Battery"),
(12, "Virtual Partner Pace"),
(13, "HR High Alert"),
(14, "HR Low Alert"),
(15, "Speed High Alert"),
(16, "Speed Low Alert"),
(17, "Cad High Alert"),
(18, "Cad Low Alert"),
(19, "Power High Alert"),
(20, "Power Low Alert"),
(21, "Recovery HR"),
(22, "Battery Low"),
(23, "Time Duration Alert"),
(24, "Distance Duration Alert"),
(25, "Calorie Duration Alert"),
(26, "Activity"),
(27, "Fitness Equipment"),
(28, "Length"),
(32, "User Marker"),
(33, "Sport Point"),
(36, "Calibration"),
(39, "Performance Condition Alert"),
(42, "Front Gear Change"),
(43, "Rear Gear Change"),
(44, "Rider Position Change"),
(45, "Elev High Alert"),
(46, "Elev Low Alert"),
(47, "Comm Timeout"),
(54, "Auto Activity Detect"),
(56, "Dive Alert"),
(57, "Dive Gas Switched"),
(71, "Tank Pressure Reserve"),
(72, "Tank Pressure Critical"),
(73, "Tank Lost"),
(74, "Sleep Event"),
(75, "Radar Threat Alert"),
(76, "Tank Battery Low"),
(81, "Tank Pod Connected"),
(82, "Tank Pod Disconnected"),
];
pub(crate) static EVENTTYPE: [(i64, &str); 10] = [
(0, "Start"),
(1, "Stop"),
(2, "Consecutive Depreciated"),
(3, "Marker"),
(4, "Stop All"),
(5, "Begin Depreciated"),
(6, "End Depreciated"),
(7, "End All Depreciated"),
(8, "Stop Disable"),
(9, "Stop Disable All"),
];
pub(crate) static SPORT: [(i64, &str); 82] = [
(0, "Generic"),
(1, "Running"),
(2, "Cycling"),
(3, "Transition"),
(4, "Fitness Equipment"),
(5, "Swimming"),
(6, "Basketball"),
(7, "Soccer"),
(8, "Tennis"),
(9, "American Football"),
(10, "Training"),
(11, "Walking"),
(12, "Cross Country Skiing"),
(13, "Alpine Skiing"),
(14, "Snowboarding"),
(15, "Rowing"),
(16, "Mountaineering"),
(17, "Hiking"),
(18, "Multisport"),
(19, "Paddling"),
(20, "Flying"),
(21, "E Biking"),
(22, "Motorcycling"),
(23, "Boating"),
(24, "Driving"),
(25, "Golf"),
(26, "Hang Gliding"),
(27, "Horseback Riding"),
(28, "Hunting"),
(29, "Fishing"),
(30, "Inline Skating"),
(31, "Rock Climbing"),
(32, "Sailing"),
(33, "Ice Skating"),
(34, "Sky Diving"),
(35, "Snowshoeing"),
(36, "Snowmobiling"),
(37, "Stand Up Paddleboarding"),
(38, "Surfing"),
(39, "Wakeboarding"),
(40, "Water Skiing"),
(41, "Kayaking"),
(42, "Rafting"),
(43, "Windsurfing"),
(44, "Kitesurfing"),
(45, "Tactical"),
(46, "Jumpmaster"),
(47, "Boxing"),
(48, "Floor Climbing"),
(49, "Baseball"),
(53, "Diving"),
(56, "Shooting"),
(58, "Winter Sport"),
(59, "Grinding"),
(62, "Hiit"),
(63, "Video Gaming"),
(64, "Racket"),
(65, "Wheelchair Push Walk"),
(66, "Wheelchair Push Run"),
(67, "Meditation"),
(68, "Para Sport"),
(69, "Disc Golf"),
(70, "Team Sport"),
(71, "Cricket"),
(72, "Rugby"),
(73, "Hockey"),
(74, "Lacrosse"),
(75, "Volleyball"),
(76, "Water Tubing"),
(77, "Wakesurfing"),
(78, "Water Sport"),
(79, "Archery"),
(80, "Mixed Martial Arts"),
(81, "Motor Sports"),
(82, "Snorkeling"),
(83, "Dance"),
(84, "Jump Rope"),
(85, "Pool Apnea"),
(86, "Mobility"),
(87, "Geocaching"),
(88, "Canoeing"),
(254, "All"),
];
pub(crate) static SUBSPORT: [(i64, &str); 112] = [
(0, "Generic"),
(1, "Treadmill"),
(2, "Street"),
(3, "Trail"),
(4, "Track"),
(5, "Spin"),
(6, "Indoor Cycling"),
(7, "Road"),
(8, "Mountain"),
(9, "Downhill"),
(10, "Recumbent"),
(11, "Cyclocross"),
(12, "Hand Cycling"),
(13, "Track Cycling"),
(14, "Indoor Rowing"),
(15, "Elliptical"),
(16, "Stair Climbing"),
(17, "Lap Swimming"),
(18, "Open Water"),
(19, "Flexibility Training"),
(20, "Strength Training"),
(21, "Warm Up"),
(22, "Match"),
(23, "Exercise"),
(24, "Challenge"),
(25, "Indoor Skiing"),
(26, "Cardio Training"),
(27, "Indoor Walking"),
(28, "E-Bike Fitness"),
(29, "Bmx"),
(30, "Casual Walking"),
(31, "Speed Walking"),
(32, "Bike To Run Transition"),
(33, "Run To Bike Transition"),
(34, "Swim To Bike Transition"),
(35, "Atv"),
(36, "Motocross"),
(37, "Backcountry"),
(38, "Resort"),
(39, "Rc Drone"),
(40, "Wingsuit"),
(41, "Whitewater"),
(42, "Skate Skiing"),
(43, "Yoga"),
(44, "Pilates"),
(45, "Indoor Running"),
(46, "Gravel Cycling"),
(47, "E-Bike Mountain"),
(48, "Commuting"),
(49, "Mixed Surface"),
(50, "Navigate"),
(51, "Track Me"),
(52, "Map"),
(53, "Single Gas Diving"),
(54, "Multi Gas Diving"),
(55, "Gauge Diving"),
(56, "Apnea Diving"),
(57, "Apnea Hunting"),
(58, "Virtual Activity"),
(59, "Obstacle"),
(62, "Breathing"),
(63, "CCR Diving"),
(65, "Sail Race"),
(66, "Expedition"),
(67, "Ultra"),
(68, "Indoor Climbing"),
(69, "Bouldering"),
(70, "Hiit"),
(71, "Indoor Grinding"),
(72, "Hunting With Dogs"),
(73, "Amrap"),
(74, "Emom"),
(75, "Tabata"),
(77, "Esport"),
(78, "Triathlon"),
(79, "Duathlon"),
(80, "Brick"),
(81, "Swim Run"),
(82, "Adventure Race"),
(83, "Trucker Workout"),
(84, "Pickleball"),
(85, "Padel"),
(86, "Indoor Wheelchair Walk"),
(87, "Indoor Wheelchair Run"),
(88, "Indoor Hand Cycling"),
(90, "Field"),
(91, "Ice"),
(92, "Ultimate"),
(93, "Platform"),
(94, "Squash"),
(95, "Badminton"),
(96, "Racquetball"),
(97, "Table Tennis"),
(98, "Overland"),
(99, "Trolling Motor"),
(110, "Fly Canopy"),
(111, "Fly Paraglide"),
(112, "Fly Paramotor"),
(113, "Fly Pressurized"),
(114, "Fly Navigate"),
(115, "Fly Timer"),
(116, "Fly Altimeter"),
(117, "Fly Wx"),
(118, "Fly Vfr"),
(119, "Fly Ifr"),
(121, "Dynamic Apnea"),
(123, "Enduro"),
(124, "Rucking"),
(125, "Rally"),
(126, "Pool Triathlon"),
(127, "E-Bike Enduro"),
(254, "All"),
];
pub(crate) static TRIGGER: [(i64, &str); 4] = [
(0, "Activity End"),
(1, "Manual"),
(2, "Auto Multi Sport"),
(3, "Fitness Equipment"),
];
pub(crate) static SWIMSTROKE: [(i64, &str); 9] = [
(0, "Freestyle"),
(1, "Backstroke"),
(2, "Breaststroke"),
(3, "Butterfly"),
(4, "Drill"),
(5, "Mixed"),
(6, "Im"),
(7, "Im By Round"),
(8, "Rimo"),
];
pub(crate) static POOLLENGTHUNIT: [(i64, &str); 3] =
[(0, "Metric"), (1, "Statute"), (2, "Nautical")];
pub(crate) static PRIMARYBENEFIT: [(i64, &str); 8] = [
(0, "No Benefit"),
(1, "Recovery"),
(2, "Base"),
(3, "Tempo"),
(4, "Threshold"),
(5, "VO2 Max"),
(6, "Anaerobic"),
(7, "Sprint"),
];
pub(crate) static WINDDATA: [(i64, &str); 2] = [(0, "Disabled"), (1, "Enabled")];
pub(crate) static INTENSITY: [(i64, &str); 7] = [
(0, "Active"),
(1, "Rest"),
(2, "Warmup"),
(3, "Cooldown"),
(4, "Recovery"),
(5, "Interval"),
(6, "Other"),
];
pub(crate) static LAPTRIGGER: [(i64, &str); 9] = [
(0, "Manual"),
(1, "time"),
(2, "Distance"),
(3, "Position Start"),
(4, "Position Lap"),
(5, "Position Waypoint"),
(6, "Position Marked"),
(7, "Session End"),
(8, "Fitness Equipment"),
];
pub(crate) static ACTIVITYTYPE: [(i64, &str); 9] = [
(0, "Generic"),
(1, "Running"),
(2, "Cycling"),
(3, "Transition"),
(4, "Fitness Equipment"),
(5, "Swimming"),
(6, "Walking"),
(8, "Sedentary"),
(254, "All"),
];
pub(crate) static STROKETYPE: [(i64, &str); 6] = [
(0, "No Event"),
(1, "Other"),
(2, "Serve"),
(3, "Forehand"),
(4, "Backhand"),
(5, "Smash"),
];
pub(crate) static MESSAGE_NAMES: [(u16, &str); 171] = [
(0, "FileID"),
(1, "Capabilities"),
(2, "DeviceSettings"),
(3, "UserProfile"),
(4, "HRMProfile"),
(5, "SDMProfile"),
(6, "BikeProfile"),
(7, "ZonesTarget"),
(8, "HRZone"),
(9, "PowerZone"),
(10, "MetZone"),
(12, "Sport"),
(13, "TrainingSettings"),
(14, "DataScreen"),
(15, "Goal"),
(16, "Alert"),
(17, "RangeAlert"),
(18, "Session"),
(19, "Lap"),
(20, "Record"),
(21, "Event"),
(22, "DeviceUsed"),
(23, "DeviceInfo"),
(26, "Workout"),
(27, "WorkoutStep"),
(28, "Schedule"),
(29, "Location"),
(30, "WeightScale"),
(31, "Course"),
(32, "CoursePoint"),
(33, "Totals"),
(34, "Activity"),
(35, "Software"),
(37, "FileCapabilities"),
(38, "MesgCapabilities"),
(39, "FieldCapabilities"),
(49, "FileCreator"),
(51, "BloodPressure"),
(53, "SpeedZone"),
(55, "Monitoring"),
(70, "MapLayer"),
(71, "Routing"),
(72, "TrainingFile"),
(78, "HRV"),
(79, "UserMetrics"),
(80, "AntRx"),
(81, "AntTx"),
(82, "AntChannelID"),
(89, "OpenWaterEvent"),
(101, "Length"),
(103, "MonitoringInfo"),
(104, "DeviceStatus"),
(105, "Pad"),
(106, "SlaveDevice"),
(113, "BestEffort"),
(114, "PersonalRecord"),
(127, "Connectivity"),
(128, "WeatherConditions"),
(129, "WeatherAlert"),
(131, "CadenceZone"),
(132, "HR"),
(140, "ActivityMetrics"),
(141, "EPOStatus"),
(142, "SegmentLap"),
(143, "MultisportSettings"),
(144, "MultisportActivity"),
(145, "MemoGlob"),
(147, "SensorSettings"),
(148, "SegmentID"),
(149, "SegmentLeaderboardEntry"),
(150, "SegmentPoint"),
(151, "SegmentFile"),
(152, "Metronome"),
(158, "WorkoutSession"),
(159, "WatchfaceSettings"),
(160, "GPS"),
(161, "CameraEvent"),
(162, "TimeStampCorrelation"),
(164, "GyroscopeData"),
(165, "AccelerometerData"),
(167, "ThreeDSensorCalibration"),
(169, "VideoFrame"),
(170, "ConnectIQField"),
(173, "Clubs"),
(174, "OBDIIData"),
(177, "NMEASentence"),
(178, "AviationAttitude"),
(184, "Video"),
(185, "VideoTitle"),
(186, "VideoDescription"),
(187, "VideoClip"),
(188, "OHRSettings"),
(189, "WaypointHandling"),
(190, "GolfCourse"),
(191, "GolfStats"),
(192, "Score"),
(193, "Hole"),
(194, "Shot"),
(200, "ExdScreenConfiguration"),
(201, "ExdDataFieldConfiguration"),
(202, "ExdDataConceptConfiguration"),
(206, "FieldDescription"),
(207, "DeveloperDataID"),
(208, "MagnetometerData"),
(209, "BarometerData"),
(210, "OneDSensorCalibration"),
(211, "MonitoringHRData"),
(216, "TimeInZone"),
(222, "AlarmSettings"),
(225, "Set"),
(227, "StressLevel"),
(229, "MaxMetData"),
(243, "MusicInfo"),
(258, "DiveSettings"),
(259, "DiveGas"),
(262, "DiveAlarm"),
(264, "ExerciseTitle"),
(268, "DiveSummary"),
(269, "SPO2Data"),
(273, "SleepDataInfo"),
(275, "SleepLevel"),
(285, "Jump"),
(289, "AADAccelFeatures"),
(290, "BeatIntervals"),
(297, "RespirationRate"),
(302, "HSAAccelerometerData"),
(304, "HSAStepData"),
(305, "HSA_SPO2Data"),
(306, "HSAStressData"),
(307, "HSARespirationData"),
(308, "HSAHeartRateData"),
(309, "MtbCx"),
(310, "Race"),
(311, "SplitTime"),
(312, "Split"),
(313, "SplitSummary"),
(314, "HSABodyBatteryData"),
(315, "HSAEvent"),
(317, "ClimbPro"),
(319, "TankUpdate"),
(321, "PowerMode"),
(323, "TankSummary"),
(326, "GPSEvent"),
(336, "ECGSummary"),
(337, "ECGRawSample"),
(338, "ECGSmoothSample"),
(346, "SleepAssessment"),
(356, "FunctionalMetrics"),
(358, "RaceEvent"),
(369, "TrainingReadiness"),
(370, "HRVStatusSummary"),
(371, "HRVValue"),
(372, "RawBBI"),
(375, "DeviceAuxBatteryInfo"),
(376, "HSAGyroscopeData"),
(378, "TrainingLoad"),
(379, "SleepSchedule"),
(382, "SleepRestlessMoments"),
(387, "ChronoShotSession"),
(388, "ChronoShotData"),
(389, "HSAConfigurationData"),
(393, "DiveApneaAlarm"),
(394, "CPEStatus"),
(398, "SkinTempOvernight"),
(402, "HillScore"),
(403, "EnduranceScore"),
(409, "HSAWristTemperatureData"),
(412, "NapEvent"),
(428, "WorkoutSchedule"),
(470, "SleepDisruptionSeverityPeriod"),
(471, "SleepDisruptionOvernightSeverity"),
];
pub(crate) static COMMON_FIELDS: &[Field] = &[
Field {
num: 250,
name: "PartIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 253,
name: "TimeStamp",
conv: Conv::FitTime,
print: Print::DateTime,
},
Field {
num: 254,
name: "MessageIndex",
conv: Conv::None,
print: Print::None,
},
];
pub(crate) static SESSION_FIELDS: &[Field] = &[
Field {
num: 0,
name: "Event",
conv: Conv::None,
print: Print::Enum(&EVENT),
},
Field {
num: 1,
name: "EventType",
conv: Conv::None,
print: Print::Enum(&EVENTTYPE),
},
Field {
num: 2,
name: "GPSDateTime",
conv: Conv::FitTime,
print: Print::DateTime,
},
Field {
num: 3,
name: "GPSLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 4,
name: "GPSLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 5,
name: "Sport",
conv: Conv::None,
print: Print::Enum(&SPORT),
},
Field {
num: 6,
name: "SubSport",
conv: Conv::None,
print: Print::Enum(&SUBSPORT),
},
Field {
num: 7,
name: "TotalElapsedTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 8,
name: "TotalTimerTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 9,
name: "TotalDistance",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 10,
name: "TotalCycles",
conv: Conv::None,
print: Print::Unit("cycles"),
},
Field {
num: 11,
name: "TotalCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 13,
name: "TotalFatCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 14,
name: "AvgSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 15,
name: "MaxSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 16,
name: "AvgHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 17,
name: "MaxHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 18,
name: "AvgCadence",
conv: Conv::None,
print: Print::Unit("rpm"),
},
Field {
num: 19,
name: "MaxCadence",
conv: Conv::None,
print: Print::Unit("rpm"),
},
Field {
num: 20,
name: "AvgPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 21,
name: "MaxPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 22,
name: "TotalAscent",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 23,
name: "TotalDescent",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 24,
name: "TotalTrainingEffect",
conv: Conv::Div(10.0),
print: Print::None,
},
Field {
num: 25,
name: "FirstLapIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 26,
name: "NumLaps",
conv: Conv::None,
print: Print::None,
},
Field {
num: 27,
name: "EventGroup",
conv: Conv::None,
print: Print::None,
},
Field {
num: 28,
name: "Trigger",
conv: Conv::None,
print: Print::Enum(&TRIGGER),
},
Field {
num: 29,
name: "NECLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 30,
name: "NECLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 31,
name: "SWCLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 32,
name: "SWCLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 33,
name: "NumLengths",
conv: Conv::None,
print: Print::Unit("lengths"),
},
Field {
num: 34,
name: "NormalizedPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 35,
name: "TrainingStressScore",
conv: Conv::Div(10.0),
print: Print::Unit("tss"),
},
Field {
num: 36,
name: "IntensityFactor",
conv: Conv::Div(1000.0),
print: Print::Unit("if"),
},
Field {
num: 37,
name: "LeftRightBalance",
conv: Conv::None,
print: Print::None,
},
Field {
num: 38,
name: "GPSDestLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 39,
name: "GPSDestLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 41,
name: "AvgStrokeCount",
conv: Conv::Div(10.0),
print: Print::Unit("strokes/lap"),
},
Field {
num: 42,
name: "AvgStrokeDistance",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 43,
name: "SwimStroke",
conv: Conv::None,
print: Print::Enum(&SWIMSTROKE),
},
Field {
num: 44,
name: "PoolLength",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 45,
name: "ThresholdPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 46,
name: "PoolLengthUnit",
conv: Conv::None,
print: Print::Enum(&POOLLENGTHUNIT),
},
Field {
num: 47,
name: "NumActiveLengths",
conv: Conv::None,
print: Print::Unit("lengths"),
},
Field {
num: 48,
name: "TotalWork",
conv: Conv::None,
print: Print::Unit("J"),
},
Field {
num: 49,
name: "AvgAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 50,
name: "MaxAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 51,
name: "GPSAccuracy",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 52,
name: "AvgGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 53,
name: "AvgPosGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 54,
name: "AvgNegGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 55,
name: "MaxPosGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 56,
name: "MaxNegGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 57,
name: "AvgTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 58,
name: "MaxTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 59,
name: "TotalMovingTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 60,
name: "AvgPosVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 61,
name: "AvgNegVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 62,
name: "MaxPosVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 63,
name: "MaxNegVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 64,
name: "MinHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 65,
name: "TimeInHRZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 66,
name: "TimeInSpeedZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 67,
name: "TimeInCadenceZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 68,
name: "TimeInPowerZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 69,
name: "AvgLapTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 70,
name: "BestLapIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 71,
name: "MinAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 78,
name: "WorkTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 79,
name: "AvgSwimCadence",
conv: Conv::Div(10.0),
print: Print::Unit("strokes/length"),
},
Field {
num: 80,
name: "AvgSwolf",
conv: Conv::None,
print: Print::None,
},
Field {
num: 82,
name: "PlayerScore",
conv: Conv::None,
print: Print::None,
},
Field {
num: 83,
name: "OpponentScore",
conv: Conv::None,
print: Print::None,
},
Field {
num: 84,
name: "OpponentName",
conv: Conv::None,
print: Print::None,
},
Field {
num: 85,
name: "StrokeCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 86,
name: "ZoneCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 87,
name: "MaxBallSpeed",
conv: Conv::Div(100.0),
print: Print::Unit("m/s"),
},
Field {
num: 88,
name: "AvgBallSpeed",
conv: Conv::Div(100.0),
print: Print::Unit("m/s"),
},
Field {
num: 89,
name: "AvgVerticalOscillation",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 90,
name: "AvgStanceTimePercent",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 91,
name: "AvgStanceTime",
conv: Conv::Div(10.0),
print: Print::Unit("ms"),
},
Field {
num: 92,
name: "AvgFractionalCadence",
conv: Conv::Div(128.0),
print: Print::Unit("rpm"),
},
Field {
num: 93,
name: "MaxFractionalCadence",
conv: Conv::Div(128.0),
print: Print::Unit("rpm"),
},
Field {
num: 94,
name: "TotalFractionalCycles",
conv: Conv::Div(128.0),
print: Print::Unit("cycles"),
},
Field {
num: 95,
name: "AvgTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 96,
name: "MinTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 97,
name: "MaxTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 98,
name: "AvgSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 99,
name: "MinSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 100,
name: "MaxSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 101,
name: "AvgLeftTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 102,
name: "AvgRightTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 103,
name: "AvgLeftPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 104,
name: "AvgRightPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 105,
name: "AvgCombinedPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 110,
name: "SportProfileName",
conv: Conv::None,
print: Print::None,
},
Field {
num: 111,
name: "SportIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 112,
name: "TimeStanding",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 113,
name: "StandCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 114,
name: "AvgLeftPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 115,
name: "AvgRightPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 116,
name: "AvgLeftPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 117,
name: "AvgLeftPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 118,
name: "AvgRightPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 119,
name: "AvgRightPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 120,
name: "AvgPowerPosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 121,
name: "MaxPowerPosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 122,
name: "AvgCadencePosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 123,
name: "MaxCadencePosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 124,
name: "EnhancedAvgSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 125,
name: "EnhancedMaxSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 126,
name: "EnhancedAvgAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 127,
name: "EnhancedMinAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 128,
name: "EnhancedMaxAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 129,
name: "AvgLevMotorPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 130,
name: "MaxLevMotorPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 131,
name: "LevBatteryConsumption",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 132,
name: "AvgVerticalRatio",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 133,
name: "AvgStanceTimeBalance",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 134,
name: "AvgStepLength",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 137,
name: "TotalAnaerobicTrainingEffect",
conv: Conv::Div(10.0),
print: Print::None,
},
Field {
num: 139,
name: "AvgVam",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 140,
name: "AvgDepth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 141,
name: "MaxDepth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 142,
name: "SurfaceInterval",
conv: Conv::Div(1.0),
print: Print::Unit("s"),
},
Field {
num: 143,
name: "StartCns",
conv: Conv::Div(1.0),
print: Print::Unit("%"),
},
Field {
num: 144,
name: "EndCns",
conv: Conv::Div(1.0),
print: Print::Unit("%"),
},
Field {
num: 145,
name: "StartN2",
conv: Conv::Div(1.0),
print: Print::Unit("%"),
},
Field {
num: 146,
name: "EndN2",
conv: Conv::Div(1.0),
print: Print::Unit("%"),
},
Field {
num: 147,
name: "AvgRespirationRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 148,
name: "MaxRespirationRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 149,
name: "MinRespirationRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 150,
name: "MinTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 151,
name: "TotalSets",
conv: Conv::None,
print: Print::None,
},
Field {
num: 152,
name: "Volume",
conv: Conv::Div(100.0),
print: Print::Unit("kg"),
},
Field {
num: 155,
name: "O2Toxicity",
conv: Conv::None,
print: Print::Unit("OTUs"),
},
Field {
num: 156,
name: "DiveNumber",
conv: Conv::None,
print: Print::None,
},
Field {
num: 168,
name: "TrainingLoadPeak",
conv: Conv::Div(65536.0),
print: Print::None,
},
Field {
num: 169,
name: "EnhancedAvgRespirationRate",
conv: Conv::Div(100.0),
print: Print::Unit("Breaths/min"),
},
Field {
num: 170,
name: "EnhancedMaxRespirationRate",
conv: Conv::Div(100.0),
print: Print::Unit("Breaths/min"),
},
Field {
num: 177,
name: "CaloriesConsumed",
conv: Conv::None,
print: Print::None,
},
Field {
num: 178,
name: "EstSweatLoss",
conv: Conv::None,
print: Print::Unit("ml"),
},
Field {
num: 179,
name: "FluidConsumed",
conv: Conv::None,
print: Print::Unit("ml"),
},
Field {
num: 180,
name: "EnhancedMinRespirationRate",
conv: Conv::Div(100.0),
print: Print::None,
},
Field {
num: 181,
name: "TotalGrit",
conv: Conv::None,
print: Print::Unit("kGrit"),
},
Field {
num: 182,
name: "TotalFlow",
conv: Conv::None,
print: Print::Unit("Flow"),
},
Field {
num: 183,
name: "JumpCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 185,
name: "ExecutionScore",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 186,
name: "AvgGrit",
conv: Conv::None,
print: Print::Unit("kGrit"),
},
Field {
num: 187,
name: "AvgFlow",
conv: Conv::None,
print: Print::Unit("Flow"),
},
Field {
num: 188,
name: "PrimaryBenefit",
conv: Conv::None,
print: Print::Enum(&PRIMARYBENEFIT),
},
Field {
num: 192,
name: "WorkoutFeel",
conv: Conv::None,
print: Print::None,
},
Field {
num: 193,
name: "WorkoutRpe",
conv: Conv::None,
print: Print::None,
},
Field {
num: 194,
name: "AvgSPO2",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 195,
name: "AvgStress",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 196,
name: "MetabolicCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 197,
name: "SDRRHRV",
conv: Conv::None,
print: Print::Unit("mS"),
},
Field {
num: 198,
name: "RMSSD_HRV",
conv: Conv::None,
print: Print::Unit("mS"),
},
Field {
num: 199,
name: "TotalFractionalAscent",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 200,
name: "TotalFractionalDescent",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 202,
name: "RecoveryHeartRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 205,
name: "BeginningPotential",
conv: Conv::None,
print: Print::None,
},
Field {
num: 206,
name: "EndingPotential",
conv: Conv::None,
print: Print::None,
},
Field {
num: 207,
name: "MinStamina",
conv: Conv::None,
print: Print::None,
},
Field {
num: 208,
name: "AvgCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 209,
name: "MinCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 210,
name: "MaxCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 211,
name: "GradeAdjustedSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 212,
name: "WindData",
conv: Conv::None,
print: Print::Enum(&WINDDATA),
},
Field {
num: 215,
name: "BeginningBodyBattery",
conv: Conv::None,
print: Print::None,
},
Field {
num: 216,
name: "EndingBodyBattery",
conv: Conv::None,
print: Print::None,
},
Field {
num: 220,
name: "PackWeight",
conv: Conv::Div(10.0),
print: Print::Unit("kg"),
},
Field {
num: 222,
name: "StepSpeedLossDistance",
conv: Conv::Div(100.0),
print: Print::Unit("cm/s"),
},
Field {
num: 223,
name: "StepSpeedLossPercent",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 224,
name: "AvgForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
Field {
num: 225,
name: "MaxForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
Field {
num: 226,
name: "NormalizedForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
];
pub(crate) static LAP_FIELDS: &[Field] = &[
Field {
num: 0,
name: "Event",
conv: Conv::None,
print: Print::Enum(&EVENT),
},
Field {
num: 1,
name: "EventType",
conv: Conv::None,
print: Print::Enum(&EVENTTYPE),
},
Field {
num: 2,
name: "GPSDateTime",
conv: Conv::FitTime,
print: Print::DateTime,
},
Field {
num: 3,
name: "GPSLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 4,
name: "GPSLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 5,
name: "GPSDestLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 6,
name: "GPSDestLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 7,
name: "TotalElapsedTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 8,
name: "TotalTimerTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 9,
name: "TotalDistance",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 10,
name: "TotalCycles",
conv: Conv::None,
print: Print::Unit("cycles"),
},
Field {
num: 11,
name: "TotalCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 12,
name: "TotalFatCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 13,
name: "AvgSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 14,
name: "MaxSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 15,
name: "AvgHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 16,
name: "MaxHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 17,
name: "AvgCadence",
conv: Conv::None,
print: Print::Unit("rpm"),
},
Field {
num: 18,
name: "MaxCadence",
conv: Conv::None,
print: Print::Unit("rpm"),
},
Field {
num: 19,
name: "AvgPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 20,
name: "MaxPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 21,
name: "TotalAscent",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 22,
name: "TotalDescent",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 23,
name: "Intensity",
conv: Conv::None,
print: Print::Enum(&INTENSITY),
},
Field {
num: 24,
name: "LapTrigger",
conv: Conv::None,
print: Print::Enum(&LAPTRIGGER),
},
Field {
num: 25,
name: "Sport",
conv: Conv::None,
print: Print::Enum(&SPORT),
},
Field {
num: 26,
name: "EventGroup",
conv: Conv::None,
print: Print::None,
},
Field {
num: 27,
name: "NECLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 28,
name: "NECLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 29,
name: "SWCLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 30,
name: "SWCLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 32,
name: "NumLengths",
conv: Conv::None,
print: Print::Unit("lengths"),
},
Field {
num: 33,
name: "NormalizedPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 34,
name: "LeftRightBalance",
conv: Conv::None,
print: Print::None,
},
Field {
num: 35,
name: "FirstLengthIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 37,
name: "AvgStrokeDistance",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 38,
name: "SwimStroke",
conv: Conv::None,
print: Print::Enum(&SWIMSTROKE),
},
Field {
num: 39,
name: "SubSport",
conv: Conv::None,
print: Print::Enum(&SUBSPORT),
},
Field {
num: 40,
name: "NumActiveLengths",
conv: Conv::None,
print: Print::Unit("lengths"),
},
Field {
num: 41,
name: "TotalWork",
conv: Conv::None,
print: Print::Unit("J"),
},
Field {
num: 42,
name: "AvgAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 43,
name: "MaxAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 44,
name: "GPSAccuracy",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 45,
name: "AvgGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 46,
name: "AvgPosGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 47,
name: "AvgNegGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 48,
name: "MaxPosGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 49,
name: "MaxNegGrade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 50,
name: "AvgTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 51,
name: "MaxTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 52,
name: "TotalMovingTime",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 53,
name: "AvgPosVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 54,
name: "AvgNegVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 55,
name: "MaxPosVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 56,
name: "MaxNegVerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 57,
name: "TimeInHRZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 58,
name: "TimeInSpeedZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 59,
name: "TimeInCadenceZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 60,
name: "TimeInPowerZone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 61,
name: "RepetitionNum",
conv: Conv::None,
print: Print::None,
},
Field {
num: 62,
name: "MinAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 63,
name: "MinHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 71,
name: "WktStepIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 73,
name: "AvgSwolf",
conv: Conv::None,
print: Print::None,
},
Field {
num: 74,
name: "OpponentScore",
conv: Conv::None,
print: Print::None,
},
Field {
num: 75,
name: "StrokeCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 76,
name: "ZoneCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 77,
name: "AvgVerticalOscillation",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 78,
name: "AvgStanceTimePercent",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 79,
name: "AvgStanceTime",
conv: Conv::Div(10.0),
print: Print::Unit("ms"),
},
Field {
num: 80,
name: "AvgFractionalCadence",
conv: Conv::Div(128.0),
print: Print::Unit("rpm"),
},
Field {
num: 81,
name: "MaxFractionalCadence",
conv: Conv::Div(128.0),
print: Print::Unit("rpm"),
},
Field {
num: 82,
name: "TotalFractionalCycles",
conv: Conv::Div(128.0),
print: Print::Unit("cycles"),
},
Field {
num: 83,
name: "PlayerScore",
conv: Conv::None,
print: Print::None,
},
Field {
num: 84,
name: "AvgTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 85,
name: "MinTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 86,
name: "MaxTotalHemoglobinConc",
conv: Conv::None,
print: Print::None,
},
Field {
num: 87,
name: "AvgSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 88,
name: "MinSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 89,
name: "MaxSaturatedHemoglobinPercent",
conv: Conv::None,
print: Print::None,
},
Field {
num: 91,
name: "AvgLeftTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 92,
name: "AvgRightTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 93,
name: "AvgLeftPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 94,
name: "AvgRightPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 95,
name: "AvgCombinedPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 98,
name: "TimeStanding",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 99,
name: "StandCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 100,
name: "AvgLeftPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 101,
name: "AvgRightPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 102,
name: "AvgLeftPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 103,
name: "AvgLeftPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 104,
name: "AvgRightPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 105,
name: "AvgRightPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 106,
name: "AvgPowerPosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 107,
name: "MaxPowerPosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 108,
name: "AvgCadencePosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 109,
name: "MaxCadencePosition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 110,
name: "EnhancedAvgSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 111,
name: "EnhancedMaxSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 112,
name: "EnhancedAvgAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 113,
name: "EnhancedMinAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 114,
name: "EnhancedMaxAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 115,
name: "AvgLevMotorPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 116,
name: "MaxLevMotorPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 117,
name: "LevBatteryConsumption",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 118,
name: "AvgVerticalRatio",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 119,
name: "AvgStanceTimeBalance",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 120,
name: "AvgStepLength",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 121,
name: "AvgVam",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 122,
name: "AvgDepth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 123,
name: "MaxDepth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 124,
name: "MinTemperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 136,
name: "EnhancedAvgRespirationRate",
conv: Conv::Div(100.0),
print: Print::Unit("Breaths/min"),
},
Field {
num: 137,
name: "EnhancedMaxRespirationRate",
conv: Conv::Div(100.0),
print: Print::Unit("Breaths/min"),
},
Field {
num: 145,
name: "EstSweatLoss",
conv: Conv::None,
print: Print::None,
},
Field {
num: 147,
name: "AvgRespirationRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 148,
name: "MaxRespirationRate",
conv: Conv::None,
print: Print::None,
},
Field {
num: 149,
name: "TotalGrit",
conv: Conv::None,
print: Print::Unit("kGrit"),
},
Field {
num: 150,
name: "TotalFlow",
conv: Conv::None,
print: Print::Unit("Flow"),
},
Field {
num: 151,
name: "JumpCount",
conv: Conv::None,
print: Print::None,
},
Field {
num: 152,
name: "ExecutionScore",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 153,
name: "AvgGrit",
conv: Conv::None,
print: Print::Unit("kGrit"),
},
Field {
num: 154,
name: "AvgFlow",
conv: Conv::None,
print: Print::Unit("Flow"),
},
Field {
num: 155,
name: "RestingCalories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 156,
name: "TotalFractionalAscent",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 157,
name: "TotalFractionalDescent",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 158,
name: "AvgCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 159,
name: "MinCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 160,
name: "MaxCoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 161,
name: "GradeAdjustedSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 163,
name: "Unpaved",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 164,
name: "StepSpeedLossDistance",
conv: Conv::Div(100.0),
print: Print::Unit("cm/s"),
},
Field {
num: 165,
name: "StepSpeedLossPercentage",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 166,
name: "AvgForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
Field {
num: 167,
name: "MaxForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
Field {
num: 168,
name: "NormalizedForce",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
];
pub(crate) static RECORD_FIELDS: &[Field] = &[
Field {
num: 0,
name: "GPSLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 1,
name: "GPSLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 2,
name: "GPSAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 3,
name: "HeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 4,
name: "Cadence",
conv: Conv::None,
print: Print::Unit("rpm"),
},
Field {
num: 5,
name: "Distance",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 6,
name: "GPSSpeed",
conv: Conv::Mul(0.0036),
print: Print::Unit("km/h"),
},
Field {
num: 7,
name: "Power",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 8,
name: "CompressedSpeedDistance",
conv: Conv::None,
print: Print::None,
},
Field {
num: 9,
name: "Grade",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 10,
name: "Resistance",
conv: Conv::None,
print: Print::None,
},
Field {
num: 11,
name: "TimeFromCourse",
conv: Conv::Div(1000.0),
print: Print::Unit("s"),
},
Field {
num: 12,
name: "CycleLength",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 13,
name: "Temperature",
conv: Conv::None,
print: Print::Unit("C"),
},
Field {
num: 17,
name: "Speed_1s",
conv: Conv::None,
print: Print::None,
},
Field {
num: 18,
name: "Cycles",
conv: Conv::None,
print: Print::Unit("cycles"),
},
Field {
num: 19,
name: "TotalCycles",
conv: Conv::None,
print: Print::Unit("cycles"),
},
Field {
num: 28,
name: "CompressedAccumulatedPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 29,
name: "AccumulatedPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 30,
name: "LeftRightBalance",
conv: Conv::None,
print: Print::None,
},
Field {
num: 31,
name: "GPSAccuracy",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 32,
name: "VerticalSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 33,
name: "Calories",
conv: Conv::None,
print: Print::Unit("kcal"),
},
Field {
num: 39,
name: "VerticalOscillation",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 40,
name: "StanceTimePercent",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 41,
name: "StanceTime",
conv: Conv::Div(10.0),
print: Print::Unit("ms"),
},
Field {
num: 42,
name: "ActivityType",
conv: Conv::None,
print: Print::Enum(&ACTIVITYTYPE),
},
Field {
num: 43,
name: "LeftTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 44,
name: "RightTorqueEffectiveness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 45,
name: "LeftPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 46,
name: "RightPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 47,
name: "CombinedPedalSmoothness",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 48,
name: "Time128",
conv: Conv::Div(128.0),
print: Print::Unit("s"),
},
Field {
num: 49,
name: "StrokeType",
conv: Conv::None,
print: Print::Enum(&STROKETYPE),
},
Field {
num: 50,
name: "Zone",
conv: Conv::None,
print: Print::None,
},
Field {
num: 51,
name: "BallSpeed",
conv: Conv::Div(100.0),
print: Print::Unit("m/s"),
},
Field {
num: 52,
name: "Cadence256",
conv: Conv::Div(256.0),
print: Print::Unit("rpm"),
},
Field {
num: 53,
name: "FractionalCadence",
conv: Conv::Div(128.0),
print: Print::Unit("rpm"),
},
Field {
num: 54,
name: "TotalHemoglobinConc",
conv: Conv::Div(100.0),
print: Print::Unit("g/dL"),
},
Field {
num: 55,
name: "TotalHemoglobinConcMin",
conv: Conv::Div(100.0),
print: Print::Unit("g/dL"),
},
Field {
num: 56,
name: "TotalHemoglobinConcMax",
conv: Conv::Div(100.0),
print: Print::Unit("g/dL"),
},
Field {
num: 57,
name: "SaturatedHemoglobinPercent",
conv: Conv::Div(10.0),
print: Print::Unit("%"),
},
Field {
num: 58,
name: "SaturatedHemoglobinPercentMin",
conv: Conv::Div(10.0),
print: Print::Unit("%"),
},
Field {
num: 59,
name: "SaturatedHemoglobinPercentMax",
conv: Conv::Div(10.0),
print: Print::Unit("%"),
},
Field {
num: 62,
name: "DeviceIndex",
conv: Conv::None,
print: Print::None,
},
Field {
num: 67,
name: "LeftPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 68,
name: "RightPco",
conv: Conv::None,
print: Print::Unit("mm"),
},
Field {
num: 69,
name: "LeftPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 70,
name: "LeftPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 71,
name: "RightPowerPhase",
conv: Conv::None,
print: Print::None,
},
Field {
num: 72,
name: "RightPowerPhasePeak",
conv: Conv::None,
print: Print::None,
},
Field {
num: 73,
name: "GPSSpeed",
conv: Conv::Mul(0.0036),
print: Print::Unit("km/h"),
},
Field {
num: 78,
name: "GPSAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 81,
name: "BatterySoc",
conv: Conv::Div(2.0),
print: Print::Unit("%"),
},
Field {
num: 82,
name: "MotorPower",
conv: Conv::None,
print: Print::Unit("watts"),
},
Field {
num: 83,
name: "VerticalRatio",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 84,
name: "StanceTimeBalance",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 85,
name: "StepLength",
conv: Conv::Div(10.0),
print: Print::Unit("mm"),
},
Field {
num: 87,
name: "CycleLength16",
conv: Conv::Div(100.0),
print: Print::Unit("m"),
},
Field {
num: 90,
name: "PerformanceCondition",
conv: Conv::None,
print: Print::None,
},
Field {
num: 91,
name: "AbsolutePressure",
conv: Conv::None,
print: Print::Unit("Pa"),
},
Field {
num: 92,
name: "Depth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 93,
name: "NextStopDepth",
conv: Conv::Div(1000.0),
print: Print::Unit("m"),
},
Field {
num: 94,
name: "NextStopTime",
conv: Conv::Div(1.0),
print: Print::Unit("s"),
},
Field {
num: 95,
name: "TimeToSurface",
conv: Conv::Div(1.0),
print: Print::Unit("s"),
},
Field {
num: 96,
name: "NdlTime",
conv: Conv::Div(1.0),
print: Print::Unit("s"),
},
Field {
num: 97,
name: "CnsLoad",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 98,
name: "N2Load",
conv: Conv::Div(1.0),
print: Print::Unit("%"),
},
Field {
num: 99,
name: "RespirationRate",
conv: Conv::Div(1.0),
print: Print::Unit("s"),
},
Field {
num: 108,
name: "EnhancedRespirationRate",
conv: Conv::Div(100.0),
print: Print::Unit("Breaths/min"),
},
Field {
num: 114,
name: "Grit",
conv: Conv::None,
print: Print::None,
},
Field {
num: 115,
name: "Flow",
conv: Conv::None,
print: Print::None,
},
Field {
num: 116,
name: "CurrentStress",
conv: Conv::Div(100.0),
print: Print::None,
},
Field {
num: 117,
name: "EbikeTravelRange",
conv: Conv::None,
print: Print::Unit("km"),
},
Field {
num: 118,
name: "EbikeBatteryLevel",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 119,
name: "EbikeAssistMode",
conv: Conv::None,
print: Print::Unit("depends on sensor"),
},
Field {
num: 120,
name: "EbikeAssistLevelPercent",
conv: Conv::None,
print: Print::Unit("%"),
},
Field {
num: 121,
name: "TotalAscent",
conv: Conv::None,
print: Print::Unit("m"),
},
Field {
num: 123,
name: "AirTimeRemaining",
conv: Conv::None,
print: Print::Unit("s"),
},
Field {
num: 124,
name: "PressureSac",
conv: Conv::Div(100.0),
print: Print::Unit("bar/min"),
},
Field {
num: 125,
name: "VolumeSac",
conv: Conv::Div(100.0),
print: Print::Unit("L/min"),
},
Field {
num: 126,
name: "Rmv",
conv: Conv::Div(100.0),
print: Print::Unit("L/min"),
},
Field {
num: 127,
name: "AscentRate",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 129,
name: "PO2",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 136,
name: "WristHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 137,
name: "StaminaPotential",
conv: Conv::None,
print: Print::None,
},
Field {
num: 138,
name: "Stamina",
conv: Conv::None,
print: Print::None,
},
Field {
num: 139,
name: "CoreTemperature",
conv: Conv::Div(100.0),
print: Print::Unit("C"),
},
Field {
num: 140,
name: "GradeAdjustedSpeed",
conv: Conv::Div(1000.0),
print: Print::Unit("m/s"),
},
Field {
num: 143,
name: "BodyBattery",
conv: Conv::None,
print: Print::None,
},
Field {
num: 144,
name: "ExternalHeartRate",
conv: Conv::None,
print: Print::Unit("bpm"),
},
Field {
num: 146,
name: "StepSpeedLossDistance",
conv: Conv::Div(100.0),
print: Print::Unit("cm/s"),
},
Field {
num: 147,
name: "StepSpeedLossPercentage",
conv: Conv::Div(100.0),
print: Print::Unit("%"),
},
Field {
num: 148,
name: "Force",
conv: Conv::Div(1000.0),
print: Print::Unit("N"),
},
];
pub(crate) static GPS_FIELDS: &[Field] = &[
Field {
num: 0,
name: "TimeStamp_ms",
conv: Conv::None,
print: Print::Unit("ms"),
},
Field {
num: 1,
name: "GPSLatitude",
conv: Conv::Semicircles,
print: Print::Dms(true),
},
Field {
num: 2,
name: "GPSLongitude",
conv: Conv::Semicircles,
print: Print::Dms(false),
},
Field {
num: 3,
name: "GPSAltitude",
conv: Conv::DivSub(5.0, 500.0),
print: Print::Unit("m"),
},
Field {
num: 4,
name: "GPSSpeed",
conv: Conv::Mul(0.0036),
print: Print::Unit("km/h"),
},
Field {
num: 5,
name: "GPSTrack",
conv: Conv::Div(100.0),
print: Print::None,
},
Field {
num: 6,
name: "GPSDateTime",
conv: Conv::FitTime,
print: Print::DateTime,
},
Field {
num: 7,
name: "Velocity",
conv: Conv::DivEach(100.0),
print: Print::None,
},
];