@garmin/fitsdk 21.202.0 → 21.205.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2638 @@
1
+ /////////////////////////////////////////////////////////////////////////////////////////////
2
+ // Copyright 2026 Garmin International, Inc.
3
+ // Licensed under the Flexible and Interoperable Data Transfer (FIT) Protocol License; you
4
+ // may not use this file except in compliance with the Flexible and Interoperable Data
5
+ // Transfer (FIT) Protocol License.
6
+ /////////////////////////////////////////////////////////////////////////////////////////////
7
+ // ****WARNING**** This file is auto-generated! Do NOT edit this file.
8
+ // Profile Version = 21.205.0Release
9
+ // Tag = production/release/21.205.0-0-gb3c261eb
10
+ /////////////////////////////////////////////////////////////////////////////////////////////
11
+
12
+
13
+ import { Mesg } from "./mesg";
14
+ import Types from "./types";
15
+
16
+
17
+ /**
18
+ * Must be first message in file.
19
+ */
20
+ export interface FileIdMesg extends Mesg {
21
+ type?: Types.File;
22
+ manufacturer?: Types.Manufacturer;
23
+ product?: Types.Uint16;
24
+ faveroProduct?: Types.FaveroProduct;
25
+ garminProduct?: Types.GarminProduct;
26
+ serialNumber?: Types.Uint32z;
27
+ /** Only set for files that are can be created/erased. */
28
+ timeCreated?: Types.DateTime;
29
+ /** Only set for files that are not created/erased. */
30
+ number?: Types.Uint16;
31
+ /** Optional free form string to indicate the devices name or model */
32
+ productName?: Types.String;
33
+ }
34
+
35
+ export interface FileCreatorMesg extends Mesg {
36
+ softwareVersion?: Types.Uint16;
37
+ hardwareVersion?: Types.Uint8;
38
+ }
39
+
40
+ export interface TimestampCorrelationMesg extends Mesg {
41
+ /** Whole second part of UTC timestamp at the time the system timestamp was recorded. */
42
+ timestamp?: Types.DateTime;
43
+ /** Fractional part of the UTC timestamp at the time the system timestamp was recorded. */
44
+ fractionalTimestamp?: Types.Float64;
45
+ /** Whole second part of the system timestamp */
46
+ systemTimestamp?: Types.DateTime;
47
+ /** Fractional part of the system timestamp */
48
+ fractionalSystemTimestamp?: Types.Float64;
49
+ /** timestamp epoch expressed in local time used to convert timestamps to local time */
50
+ localTimestamp?: Types.LocalDateTime;
51
+ /** Millisecond part of the UTC timestamp at the time the system timestamp was recorded. */
52
+ timestampMs?: Types.Uint16;
53
+ /** Millisecond part of the system timestamp */
54
+ systemTimestampMs?: Types.Uint16;
55
+ }
56
+
57
+ export interface SoftwareMesg extends Mesg {
58
+ messageIndex?: Types.MessageIndex;
59
+ version?: Types.Float64;
60
+ partNumber?: Types.String;
61
+ }
62
+
63
+ export interface SlaveDeviceMesg extends Mesg {
64
+ manufacturer?: Types.Manufacturer;
65
+ product?: Types.Uint16;
66
+ faveroProduct?: Types.FaveroProduct;
67
+ garminProduct?: Types.GarminProduct;
68
+ }
69
+
70
+ export interface CapabilitiesMesg extends Mesg {
71
+ /** Use language_bits_x types where x is index of array. */
72
+ languages?: Types.Uint8z[];
73
+ /** Use sport_bits_x types where x is index of array. */
74
+ sports?: Types.SportBits0[];
75
+ workoutsSupported?: Types.WorkoutCapabilities;
76
+ connectivitySupported?: Types.ConnectivityCapabilities;
77
+ }
78
+
79
+ export interface FileCapabilitiesMesg extends Mesg {
80
+ messageIndex?: Types.MessageIndex;
81
+ type?: Types.File;
82
+ flags?: Types.FileFlags;
83
+ directory?: Types.String;
84
+ maxCount?: Types.Uint16;
85
+ maxSize?: Types.Uint32;
86
+ }
87
+
88
+ export interface MesgCapabilitiesMesg extends Mesg {
89
+ messageIndex?: Types.MessageIndex;
90
+ file?: Types.File;
91
+ mesgNum?: Types.MesgNum;
92
+ countType?: Types.MesgCount;
93
+ count?: Types.Uint16;
94
+ numPerFile?: Types.Uint16;
95
+ maxPerFile?: Types.Uint16;
96
+ maxPerFileType?: Types.Uint16;
97
+ }
98
+
99
+ export interface FieldCapabilitiesMesg extends Mesg {
100
+ messageIndex?: Types.MessageIndex;
101
+ file?: Types.File;
102
+ mesgNum?: Types.MesgNum;
103
+ fieldNum?: Types.Uint8;
104
+ count?: Types.Uint16;
105
+ }
106
+
107
+ export interface DeviceSettingsMesg extends Mesg {
108
+ /** Index into time zone arrays. */
109
+ activeTimeZone?: Types.Uint8;
110
+ /** Offset from system time. Required to convert timestamp from system time to UTC. */
111
+ utcOffset?: Types.Uint32;
112
+ /** Offset from system time. */
113
+ timeOffset?: Types.Uint32[];
114
+ /** Display mode for the time */
115
+ timeMode?: Types.TimeMode[];
116
+ /** timezone offset in 1/4 hour increments */
117
+ timeZoneOffset?: Types.Float64[];
118
+ /** Mode for backlight */
119
+ backlightMode?: Types.BacklightMode;
120
+ /** Enabled state of the activity tracker functionality */
121
+ activityTrackerEnabled?: Types.Bool;
122
+ /** UTC timestamp used to set the devices clock and date */
123
+ clockTime?: Types.DateTime;
124
+ /** Bitfield to configure enabled screens for each supported loop */
125
+ pagesEnabled?: Types.Uint16[];
126
+ /** Enabled state of the move alert */
127
+ moveAlertEnabled?: Types.Bool;
128
+ /** Display mode for the date */
129
+ dateMode?: Types.DateMode;
130
+ displayOrientation?: Types.DisplayOrientation;
131
+ mountingSide?: Types.Side;
132
+ /** Bitfield to indicate one page as default for each supported loop */
133
+ defaultPage?: Types.Uint16[];
134
+ /** Minimum steps before an autosync can occur */
135
+ autosyncMinSteps?: Types.Uint16;
136
+ /** Minimum minutes before an autosync can occur */
137
+ autosyncMinTime?: Types.Uint16;
138
+ /** Enable auto-detect setting for the lactate threshold feature. */
139
+ lactateThresholdAutodetectEnabled?: Types.Bool;
140
+ /** Automatically upload using BLE */
141
+ bleAutoUploadEnabled?: Types.Bool;
142
+ /** Helps to conserve battery by changing modes */
143
+ autoSyncFrequency?: Types.AutoSyncFrequency;
144
+ /** Allows setting specific activities auto-activity detect enabled/disabled settings */
145
+ autoActivityDetect?: Types.AutoActivityDetect;
146
+ /** Number of screens configured to display */
147
+ numberOfScreens?: Types.Uint8;
148
+ /** Smart Notification display orientation */
149
+ smartNotificationDisplayOrientation?: Types.DisplayOrientation;
150
+ tapInterface?: Types.Switch;
151
+ /** Used to hold the tap threshold setting */
152
+ tapSensitivity?: Types.TapSensitivity;
153
+ }
154
+
155
+ export interface UserProfileMesg extends Mesg {
156
+ messageIndex?: Types.MessageIndex;
157
+ /** Used for Morning Report greeting */
158
+ friendlyName?: Types.String;
159
+ gender?: Types.Gender;
160
+ age?: Types.Uint8;
161
+ height?: Types.Float64;
162
+ weight?: Types.Float64;
163
+ language?: Types.Language;
164
+ elevSetting?: Types.DisplayMeasure;
165
+ weightSetting?: Types.DisplayMeasure;
166
+ restingHeartRate?: Types.Uint8;
167
+ defaultMaxRunningHeartRate?: Types.Uint8;
168
+ defaultMaxBikingHeartRate?: Types.Uint8;
169
+ defaultMaxHeartRate?: Types.Uint8;
170
+ hrSetting?: Types.DisplayHeart;
171
+ speedSetting?: Types.DisplayMeasure;
172
+ distSetting?: Types.DisplayMeasure;
173
+ powerSetting?: Types.DisplayPower;
174
+ activityClass?: Types.ActivityClass;
175
+ positionSetting?: Types.DisplayPosition;
176
+ temperatureSetting?: Types.DisplayMeasure;
177
+ localId?: Types.UserLocalId;
178
+ globalId?: Types.Byte[];
179
+ /** Typical wake time */
180
+ wakeTime?: Types.LocaltimeIntoDay;
181
+ /** Typical bed time */
182
+ sleepTime?: Types.LocaltimeIntoDay;
183
+ heightSetting?: Types.DisplayMeasure;
184
+ /** User defined running step length set to 0 for auto length */
185
+ userRunningStepLength?: Types.Float64;
186
+ /** User defined walking step length set to 0 for auto length */
187
+ userWalkingStepLength?: Types.Float64;
188
+ depthSetting?: Types.DisplayMeasure;
189
+ diveCount?: Types.Uint32;
190
+ }
191
+
192
+ export interface HrmProfileMesg extends Mesg {
193
+ messageIndex?: Types.MessageIndex;
194
+ enabled?: Types.Bool;
195
+ hrmAntId?: Types.Uint16z;
196
+ logHrv?: Types.Bool;
197
+ hrmAntIdTransType?: Types.Uint8z;
198
+ }
199
+
200
+ export interface SdmProfileMesg extends Mesg {
201
+ messageIndex?: Types.MessageIndex;
202
+ enabled?: Types.Bool;
203
+ sdmAntId?: Types.Uint16z;
204
+ sdmCalFactor?: Types.Float64;
205
+ odometer?: Types.Float64;
206
+ /** Use footpod for speed source instead of GPS */
207
+ speedSource?: Types.Bool;
208
+ sdmAntIdTransType?: Types.Uint8z;
209
+ /** Rollover counter that can be used to extend the odometer */
210
+ odometerRollover?: Types.Uint8;
211
+ }
212
+
213
+ export interface BikeProfileMesg extends Mesg {
214
+ messageIndex?: Types.MessageIndex;
215
+ name?: Types.String;
216
+ sport?: Types.Sport;
217
+ subSport?: Types.SubSport;
218
+ odometer?: Types.Float64;
219
+ bikeSpdAntId?: Types.Uint16z;
220
+ bikeCadAntId?: Types.Uint16z;
221
+ bikeSpdcadAntId?: Types.Uint16z;
222
+ bikePowerAntId?: Types.Uint16z;
223
+ customWheelsize?: Types.Float64;
224
+ autoWheelsize?: Types.Float64;
225
+ bikeWeight?: Types.Float64;
226
+ powerCalFactor?: Types.Float64;
227
+ autoWheelCal?: Types.Bool;
228
+ autoPowerZero?: Types.Bool;
229
+ id?: Types.Uint8;
230
+ spdEnabled?: Types.Bool;
231
+ cadEnabled?: Types.Bool;
232
+ spdcadEnabled?: Types.Bool;
233
+ powerEnabled?: Types.Bool;
234
+ crankLength?: Types.Float64;
235
+ enabled?: Types.Bool;
236
+ bikeSpdAntIdTransType?: Types.Uint8z;
237
+ bikeCadAntIdTransType?: Types.Uint8z;
238
+ bikeSpdcadAntIdTransType?: Types.Uint8z;
239
+ bikePowerAntIdTransType?: Types.Uint8z;
240
+ /** Rollover counter that can be used to extend the odometer */
241
+ odometerRollover?: Types.Uint8;
242
+ /** Number of front gears */
243
+ frontGearNum?: Types.Uint8z;
244
+ /** Number of teeth on each gear 0 is innermost */
245
+ frontGear?: Types.Uint8z[];
246
+ /** Number of rear gears */
247
+ rearGearNum?: Types.Uint8z;
248
+ /** Number of teeth on each gear 0 is innermost */
249
+ rearGear?: Types.Uint8z[];
250
+ shimanoDi2Enabled?: Types.Bool;
251
+ }
252
+
253
+ export interface ConnectivityMesg extends Mesg {
254
+ /** Use Bluetooth for connectivity features */
255
+ bluetoothEnabled?: Types.Bool;
256
+ /** Use Bluetooth Low Energy for connectivity features */
257
+ bluetoothLeEnabled?: Types.Bool;
258
+ /** Use ANT for connectivity features */
259
+ antEnabled?: Types.Bool;
260
+ name?: Types.String;
261
+ liveTrackingEnabled?: Types.Bool;
262
+ weatherConditionsEnabled?: Types.Bool;
263
+ weatherAlertsEnabled?: Types.Bool;
264
+ autoActivityUploadEnabled?: Types.Bool;
265
+ courseDownloadEnabled?: Types.Bool;
266
+ workoutDownloadEnabled?: Types.Bool;
267
+ gpsEphemerisDownloadEnabled?: Types.Bool;
268
+ incidentDetectionEnabled?: Types.Bool;
269
+ grouptrackEnabled?: Types.Bool;
270
+ }
271
+
272
+ export interface WatchfaceSettingsMesg extends Mesg {
273
+ messageIndex?: Types.MessageIndex;
274
+ mode?: Types.WatchfaceMode;
275
+ layout?: Types.Byte;
276
+ digitalLayout?: Types.DigitalWatchfaceLayout;
277
+ analogLayout?: Types.AnalogWatchfaceLayout;
278
+ }
279
+
280
+ export interface OhrSettingsMesg extends Mesg {
281
+ timestamp?: Types.DateTime;
282
+ enabled?: Types.Switch;
283
+ }
284
+
285
+ export interface TimeInZoneMesg extends Mesg {
286
+ timestamp?: Types.DateTime;
287
+ referenceMesg?: Types.MesgNum;
288
+ referenceIndex?: Types.MessageIndex;
289
+ timeInHrZone?: Types.Float64[];
290
+ timeInSpeedZone?: Types.Float64[];
291
+ timeInCadenceZone?: Types.Float64[];
292
+ timeInPowerZone?: Types.Float64[];
293
+ hrZoneHighBoundary?: Types.Uint8[];
294
+ speedZoneHighBoundary?: Types.Float64[];
295
+ cadenceZoneHighBondary?: Types.Uint8[];
296
+ powerZoneHighBoundary?: Types.Uint16[];
297
+ hrCalcType?: Types.HrZoneCalc;
298
+ maxHeartRate?: Types.Uint8;
299
+ restingHeartRate?: Types.Uint8;
300
+ thresholdHeartRate?: Types.Uint8;
301
+ pwrCalcType?: Types.PwrZoneCalc;
302
+ functionalThresholdPower?: Types.Uint16;
303
+ }
304
+
305
+ export interface ZonesTargetMesg extends Mesg {
306
+ maxHeartRate?: Types.Uint8;
307
+ thresholdHeartRate?: Types.Uint8;
308
+ functionalThresholdPower?: Types.Uint16;
309
+ hrCalcType?: Types.HrZoneCalc;
310
+ pwrCalcType?: Types.PwrZoneCalc;
311
+ }
312
+
313
+ export interface SportMesg extends Mesg {
314
+ sport?: Types.Sport;
315
+ subSport?: Types.SubSport;
316
+ name?: Types.String;
317
+ }
318
+
319
+ export interface HrZoneMesg extends Mesg {
320
+ messageIndex?: Types.MessageIndex;
321
+ highBpm?: Types.Uint8;
322
+ name?: Types.String;
323
+ }
324
+
325
+ export interface SpeedZoneMesg extends Mesg {
326
+ messageIndex?: Types.MessageIndex;
327
+ highValue?: Types.Float64;
328
+ name?: Types.String;
329
+ }
330
+
331
+ export interface CadenceZoneMesg extends Mesg {
332
+ messageIndex?: Types.MessageIndex;
333
+ highValue?: Types.Uint8;
334
+ name?: Types.String;
335
+ }
336
+
337
+ export interface PowerZoneMesg extends Mesg {
338
+ messageIndex?: Types.MessageIndex;
339
+ highValue?: Types.Uint16;
340
+ name?: Types.String;
341
+ }
342
+
343
+ export interface MetZoneMesg extends Mesg {
344
+ messageIndex?: Types.MessageIndex;
345
+ highBpm?: Types.Uint8;
346
+ calories?: Types.Float64;
347
+ fatCalories?: Types.Float64;
348
+ }
349
+
350
+ export interface TrainingSettingsMesg extends Mesg {
351
+ targetDistance?: Types.Float64;
352
+ targetSpeed?: Types.Float64;
353
+ targetTime?: Types.Uint32;
354
+ /** A more precise target speed field */
355
+ preciseTargetSpeed?: Types.Float64;
356
+ }
357
+
358
+ export interface DiveSettingsMesg extends Mesg {
359
+ timestamp?: Types.DateTime;
360
+ messageIndex?: Types.MessageIndex;
361
+ name?: Types.String;
362
+ model?: Types.TissueModelType;
363
+ gfLow?: Types.Uint8;
364
+ gfHigh?: Types.Uint8;
365
+ waterType?: Types.WaterType;
366
+ /** Fresh water is usually 1000; salt water is usually 1025 */
367
+ waterDensity?: Types.Float32;
368
+ /** Typically 1.40 */
369
+ po2Warn?: Types.Float64;
370
+ /** Typically 1.60 */
371
+ po2Critical?: Types.Float64;
372
+ po2Deco?: Types.Float64;
373
+ safetyStopEnabled?: Types.Bool;
374
+ bottomDepth?: Types.Float32;
375
+ bottomTime?: Types.Uint32;
376
+ apneaCountdownEnabled?: Types.Bool;
377
+ apneaCountdownTime?: Types.Uint32;
378
+ backlightMode?: Types.DiveBacklightMode;
379
+ backlightBrightness?: Types.Uint8;
380
+ backlightTimeout?: Types.BacklightTimeout;
381
+ /** Time between surfacing and ending the activity */
382
+ repeatDiveInterval?: Types.Uint16;
383
+ /** Time at safety stop (if enabled) */
384
+ safetyStopTime?: Types.Uint16;
385
+ heartRateSourceType?: Types.SourceType;
386
+ heartRateSource?: Types.Uint8;
387
+ heartRateAntplusDeviceType?: Types.AntplusDeviceType;
388
+ heartRateLocalDeviceType?: Types.LocalDeviceType;
389
+ /** Index of travel dive_gas message */
390
+ travelGas?: Types.MessageIndex;
391
+ /** If low PO2 should be switched to automatically */
392
+ ccrLowSetpointSwitchMode?: Types.CcrSetpointSwitchMode;
393
+ /** Target PO2 when using low setpoint */
394
+ ccrLowSetpoint?: Types.Float64;
395
+ /** Depth to switch to low setpoint in automatic mode */
396
+ ccrLowSetpointDepth?: Types.Float64;
397
+ /** If high PO2 should be switched to automatically */
398
+ ccrHighSetpointSwitchMode?: Types.CcrSetpointSwitchMode;
399
+ /** Target PO2 when using high setpoint */
400
+ ccrHighSetpoint?: Types.Float64;
401
+ /** Depth to switch to high setpoint in automatic mode */
402
+ ccrHighSetpointDepth?: Types.Float64;
403
+ /** Type of gas consumption rate to display. Some values are only valid if tank volume is known. */
404
+ gasConsumptionDisplay?: Types.GasConsumptionRateType;
405
+ /** Indicates whether the up key is enabled during dives */
406
+ upKeyEnabled?: Types.Bool;
407
+ /** Sounds and vibration enabled or disabled in-dive */
408
+ diveSounds?: Types.Tone;
409
+ /** Usually 1.0/1.5/2.0 representing 3/4.5/6m or 10/15/20ft */
410
+ lastStopMultiple?: Types.Float64;
411
+ /** Indicates which guidelines to use for no-fly surface interval. */
412
+ noFlyTimeMode?: Types.NoFlyTimeMode;
413
+ }
414
+
415
+ export interface DiveAlarmMesg extends Mesg {
416
+ /** Index of the alarm */
417
+ messageIndex?: Types.MessageIndex;
418
+ /** Depth setting (m) for depth type alarms */
419
+ depth?: Types.Float64;
420
+ /** Time setting (s) for time type alarms */
421
+ time?: Types.Sint32;
422
+ /** Enablement flag */
423
+ enabled?: Types.Bool;
424
+ /** Alarm type setting */
425
+ alarmType?: Types.DiveAlarmType;
426
+ /** Tone and Vibe setting for the alarm */
427
+ sound?: Types.Tone;
428
+ /** Dive types the alarm will trigger on */
429
+ diveTypes?: Types.SubSport[];
430
+ /** Alarm ID */
431
+ id?: Types.Uint32;
432
+ /** Show a visible pop-up for this alarm */
433
+ popupEnabled?: Types.Bool;
434
+ /** Trigger the alarm on descent */
435
+ triggerOnDescent?: Types.Bool;
436
+ /** Trigger the alarm on ascent */
437
+ triggerOnAscent?: Types.Bool;
438
+ /** Repeat alarm each time threshold is crossed? */
439
+ repeating?: Types.Bool;
440
+ /** Ascent/descent rate (mps) setting for speed type alarms */
441
+ speed?: Types.Float64;
442
+ }
443
+
444
+ export interface DiveApneaAlarmMesg extends Mesg {
445
+ /** Index of the alarm */
446
+ messageIndex?: Types.MessageIndex;
447
+ /** Depth setting (m) for depth type alarms */
448
+ depth?: Types.Float64;
449
+ /** Time setting (s) for time type alarms */
450
+ time?: Types.Sint32;
451
+ /** Enablement flag */
452
+ enabled?: Types.Bool;
453
+ /** Alarm type setting */
454
+ alarmType?: Types.DiveAlarmType;
455
+ /** Tone and Vibe setting for the alarm. */
456
+ sound?: Types.Tone;
457
+ /** Dive types the alarm will trigger on */
458
+ diveTypes?: Types.SubSport[];
459
+ /** Alarm ID */
460
+ id?: Types.Uint32;
461
+ /** Show a visible pop-up for this alarm */
462
+ popupEnabled?: Types.Bool;
463
+ /** Trigger the alarm on descent */
464
+ triggerOnDescent?: Types.Bool;
465
+ /** Trigger the alarm on ascent */
466
+ triggerOnAscent?: Types.Bool;
467
+ /** Repeat alarm each time threshold is crossed? */
468
+ repeating?: Types.Bool;
469
+ /** Ascent/descent rate (mps) setting for speed type alarms */
470
+ speed?: Types.Float64;
471
+ }
472
+
473
+ export interface DiveGasMesg extends Mesg {
474
+ messageIndex?: Types.MessageIndex;
475
+ heliumContent?: Types.Uint8;
476
+ oxygenContent?: Types.Uint8;
477
+ status?: Types.DiveGasStatus;
478
+ mode?: Types.DiveGasMode;
479
+ }
480
+
481
+ export interface GoalMesg extends Mesg {
482
+ messageIndex?: Types.MessageIndex;
483
+ sport?: Types.Sport;
484
+ subSport?: Types.SubSport;
485
+ startDate?: Types.DateTime;
486
+ endDate?: Types.DateTime;
487
+ type?: Types.Goal;
488
+ value?: Types.Uint32;
489
+ repeat?: Types.Bool;
490
+ targetValue?: Types.Uint32;
491
+ recurrence?: Types.GoalRecurrence;
492
+ recurrenceValue?: Types.Uint16;
493
+ enabled?: Types.Bool;
494
+ source?: Types.GoalSource;
495
+ }
496
+
497
+ export interface ActivityMesg extends Mesg {
498
+ timestamp?: Types.DateTime;
499
+ /** Exclude pauses */
500
+ totalTimerTime?: Types.Float64;
501
+ numSessions?: Types.Uint16;
502
+ type?: Types.Activity;
503
+ event?: Types.Event;
504
+ eventType?: Types.EventType;
505
+ /** timestamp epoch expressed in local time, used to convert activity timestamps to local time */
506
+ localTimestamp?: Types.LocalDateTime;
507
+ eventGroup?: Types.Uint8;
508
+ }
509
+
510
+ export interface SessionMesg extends Mesg {
511
+ /** Selected bit is set for the current session. */
512
+ messageIndex?: Types.MessageIndex;
513
+ timestamp?: Types.DateTime;
514
+ /** session */
515
+ event?: Types.Event;
516
+ /** stop */
517
+ eventType?: Types.EventType;
518
+ startTime?: Types.DateTime;
519
+ startPositionLat?: Types.Sint32;
520
+ startPositionLong?: Types.Sint32;
521
+ sport?: Types.Sport;
522
+ subSport?: Types.SubSport;
523
+ /** Time (includes pauses) */
524
+ totalElapsedTime?: Types.Float64;
525
+ /** Timer Time (excludes pauses) */
526
+ totalTimerTime?: Types.Float64;
527
+ totalDistance?: Types.Float64;
528
+ totalCycles?: Types.Uint32;
529
+ totalStrides?: Types.Uint32;
530
+ totalStrokes?: Types.Uint32;
531
+ totalCalories?: Types.Uint16;
532
+ totalFatCalories?: Types.Uint16;
533
+ /** total_distance / total_timer_time */
534
+ avgSpeed?: Types.Float64;
535
+ maxSpeed?: Types.Float64;
536
+ /** average heart rate (excludes pause time) */
537
+ avgHeartRate?: Types.Uint8;
538
+ maxHeartRate?: Types.Uint8;
539
+ /** total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time */
540
+ avgCadence?: Types.Uint8;
541
+ avgRunningCadence?: Types.Uint8;
542
+ maxCadence?: Types.Uint8;
543
+ maxRunningCadence?: Types.Uint8;
544
+ /** total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time */
545
+ avgPower?: Types.Uint16;
546
+ maxPower?: Types.Uint16;
547
+ totalAscent?: Types.Uint16;
548
+ totalDescent?: Types.Uint16;
549
+ totalTrainingEffect?: Types.Float64;
550
+ firstLapIndex?: Types.Uint16;
551
+ numLaps?: Types.Uint16;
552
+ eventGroup?: Types.Uint8;
553
+ trigger?: Types.SessionTrigger;
554
+ /** North east corner latitude */
555
+ necLat?: Types.Sint32;
556
+ /** North east corner longitude */
557
+ necLong?: Types.Sint32;
558
+ /** South west corner latitude */
559
+ swcLat?: Types.Sint32;
560
+ /** South west corner longitude */
561
+ swcLong?: Types.Sint32;
562
+ /** # of lengths of swim pool */
563
+ numLengths?: Types.Uint16;
564
+ normalizedPower?: Types.Uint16;
565
+ trainingStressScore?: Types.Float64;
566
+ intensityFactor?: Types.Float64;
567
+ leftRightBalance?: Types.LeftRightBalance100;
568
+ endPositionLat?: Types.Sint32;
569
+ endPositionLong?: Types.Sint32;
570
+ avgStrokeCount?: Types.Float64;
571
+ avgStrokeDistance?: Types.Float64;
572
+ swimStroke?: Types.SwimStroke;
573
+ poolLength?: Types.Float64;
574
+ thresholdPower?: Types.Uint16;
575
+ poolLengthUnit?: Types.DisplayMeasure;
576
+ /** # of active lengths of swim pool */
577
+ numActiveLengths?: Types.Uint16;
578
+ totalWork?: Types.Uint32;
579
+ avgAltitude?: Types.Float64;
580
+ maxAltitude?: Types.Float64;
581
+ gpsAccuracy?: Types.Uint8;
582
+ avgGrade?: Types.Float64;
583
+ avgPosGrade?: Types.Float64;
584
+ avgNegGrade?: Types.Float64;
585
+ maxPosGrade?: Types.Float64;
586
+ maxNegGrade?: Types.Float64;
587
+ avgTemperature?: Types.Sint8;
588
+ maxTemperature?: Types.Sint8;
589
+ totalMovingTime?: Types.Float64;
590
+ avgPosVerticalSpeed?: Types.Float64;
591
+ avgNegVerticalSpeed?: Types.Float64;
592
+ maxPosVerticalSpeed?: Types.Float64;
593
+ maxNegVerticalSpeed?: Types.Float64;
594
+ minHeartRate?: Types.Uint8;
595
+ timeInHrZone?: Types.Float64[];
596
+ timeInSpeedZone?: Types.Float64[];
597
+ timeInCadenceZone?: Types.Float64[];
598
+ timeInPowerZone?: Types.Float64[];
599
+ avgLapTime?: Types.Float64;
600
+ bestLapIndex?: Types.Uint16;
601
+ minAltitude?: Types.Float64;
602
+ activeTime?: Types.Float64;
603
+ playerScore?: Types.Uint16;
604
+ opponentScore?: Types.Uint16;
605
+ opponentName?: Types.String;
606
+ /** stroke_type enum used as the index */
607
+ strokeCount?: Types.Uint16[];
608
+ /** zone number used as the index */
609
+ zoneCount?: Types.Uint16[];
610
+ maxBallSpeed?: Types.Float64;
611
+ avgBallSpeed?: Types.Float64;
612
+ avgVerticalOscillation?: Types.Float64;
613
+ avgStanceTimePercent?: Types.Float64;
614
+ avgStanceTime?: Types.Float64;
615
+ /** fractional part of the avg_cadence */
616
+ avgFractionalCadence?: Types.Float64;
617
+ /** fractional part of the max_cadence */
618
+ maxFractionalCadence?: Types.Float64;
619
+ /** fractional part of the total_cycles */
620
+ totalFractionalCycles?: Types.Float64;
621
+ /** Avg saturated and unsaturated hemoglobin */
622
+ avgTotalHemoglobinConc?: Types.Float64[];
623
+ /** Min saturated and unsaturated hemoglobin */
624
+ minTotalHemoglobinConc?: Types.Float64[];
625
+ /** Max saturated and unsaturated hemoglobin */
626
+ maxTotalHemoglobinConc?: Types.Float64[];
627
+ /** Avg percentage of hemoglobin saturated with oxygen */
628
+ avgSaturatedHemoglobinPercent?: Types.Float64[];
629
+ /** Min percentage of hemoglobin saturated with oxygen */
630
+ minSaturatedHemoglobinPercent?: Types.Float64[];
631
+ /** Max percentage of hemoglobin saturated with oxygen */
632
+ maxSaturatedHemoglobinPercent?: Types.Float64[];
633
+ avgLeftTorqueEffectiveness?: Types.Float64;
634
+ avgRightTorqueEffectiveness?: Types.Float64;
635
+ avgLeftPedalSmoothness?: Types.Float64;
636
+ avgRightPedalSmoothness?: Types.Float64;
637
+ avgCombinedPedalSmoothness?: Types.Float64;
638
+ /** Sport name from associated sport mesg */
639
+ sportProfileName?: Types.String;
640
+ sportIndex?: Types.Uint8;
641
+ /** Total time spend in the standing position */
642
+ timeStanding?: Types.Float64;
643
+ /** Number of transitions to the standing state */
644
+ standCount?: Types.Uint16;
645
+ /** Average platform center offset Left */
646
+ avgLeftPco?: Types.Sint8;
647
+ /** Average platform center offset Right */
648
+ avgRightPco?: Types.Sint8;
649
+ /** Average left power phase angles. Indexes defined by power_phase_type. */
650
+ avgLeftPowerPhase?: Types.Float64[];
651
+ /** Average left power phase peak angles. Data value indexes defined by power_phase_type. */
652
+ avgLeftPowerPhasePeak?: Types.Float64[];
653
+ /** Average right power phase angles. Data value indexes defined by power_phase_type. */
654
+ avgRightPowerPhase?: Types.Float64[];
655
+ /** Average right power phase peak angles data value indexes defined by power_phase_type. */
656
+ avgRightPowerPhasePeak?: Types.Float64[];
657
+ /** Average power by position. Data value indexes defined by rider_position_type. */
658
+ avgPowerPosition?: Types.Uint16[];
659
+ /** Maximum power by position. Data value indexes defined by rider_position_type. */
660
+ maxPowerPosition?: Types.Uint16[];
661
+ /** Average cadence by position. Data value indexes defined by rider_position_type. */
662
+ avgCadencePosition?: Types.Uint8[];
663
+ /** Maximum cadence by position. Data value indexes defined by rider_position_type. */
664
+ maxCadencePosition?: Types.Uint8[];
665
+ /** total_distance / total_timer_time */
666
+ enhancedAvgSpeed?: Types.Float64;
667
+ enhancedMaxSpeed?: Types.Float64;
668
+ enhancedAvgAltitude?: Types.Float64;
669
+ enhancedMinAltitude?: Types.Float64;
670
+ enhancedMaxAltitude?: Types.Float64;
671
+ /** lev average motor power during session */
672
+ avgLevMotorPower?: Types.Uint16;
673
+ /** lev maximum motor power during session */
674
+ maxLevMotorPower?: Types.Uint16;
675
+ /** lev battery consumption during session */
676
+ levBatteryConsumption?: Types.Float64;
677
+ avgVerticalRatio?: Types.Float64;
678
+ avgStanceTimeBalance?: Types.Float64;
679
+ avgStepLength?: Types.Float64;
680
+ totalAnaerobicTrainingEffect?: Types.Float64;
681
+ avgVam?: Types.Float64;
682
+ /** 0 if above water */
683
+ avgDepth?: Types.Float64;
684
+ /** 0 if above water */
685
+ maxDepth?: Types.Float64;
686
+ /** Time since end of last dive */
687
+ surfaceInterval?: Types.Uint32;
688
+ startCns?: Types.Uint8;
689
+ endCns?: Types.Uint8;
690
+ startN2?: Types.Uint16;
691
+ endN2?: Types.Uint16;
692
+ avgRespirationRate?: Types.Uint8;
693
+ maxRespirationRate?: Types.Uint8;
694
+ minRespirationRate?: Types.Uint8;
695
+ minTemperature?: Types.Sint8;
696
+ o2Toxicity?: Types.Uint16;
697
+ diveNumber?: Types.Uint32;
698
+ trainingLoadPeak?: Types.Float64;
699
+ enhancedAvgRespirationRate?: Types.Float64;
700
+ enhancedMaxRespirationRate?: Types.Float64;
701
+ enhancedMinRespirationRate?: Types.Float64;
702
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
703
+ totalGrit?: Types.Float32;
704
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
705
+ totalFlow?: Types.Float32;
706
+ jumpCount?: Types.Uint16;
707
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
708
+ avgGrit?: Types.Float32;
709
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
710
+ avgFlow?: Types.Float32;
711
+ /** A 0-100 scale representing how a user felt while performing a workout. Low values are considered feeling bad, while high values are good. */
712
+ workoutFeel?: Types.Uint8;
713
+ /** Common Borg CR10 / 0-10 RPE scale, multiplied 10x.. Aggregate score for all workouts in a single session. */
714
+ workoutRpe?: Types.Uint8;
715
+ /** Average SPO2 for the monitoring session */
716
+ avgSpo2?: Types.Uint8;
717
+ /** Average stress for the monitoring session */
718
+ avgStress?: Types.Uint8;
719
+ metabolicCalories?: Types.Uint16;
720
+ /** Standard deviation of R-R interval (SDRR) - Heart rate variability measure most useful for wellness users. */
721
+ sdrrHrv?: Types.Uint8;
722
+ /** Root mean square successive difference (RMSSD) - Heart rate variability measure most useful for athletes */
723
+ rmssdHrv?: Types.Uint8;
724
+ /** fractional part of total_ascent */
725
+ totalFractionalAscent?: Types.Float64;
726
+ /** fractional part of total_descent */
727
+ totalFractionalDescent?: Types.Float64;
728
+ avgCoreTemperature?: Types.Float64;
729
+ minCoreTemperature?: Types.Float64;
730
+ maxCoreTemperature?: Types.Float64;
731
+ }
732
+
733
+ export interface LapMesg extends Mesg {
734
+ messageIndex?: Types.MessageIndex;
735
+ timestamp?: Types.DateTime;
736
+ event?: Types.Event;
737
+ eventType?: Types.EventType;
738
+ startTime?: Types.DateTime;
739
+ startPositionLat?: Types.Sint32;
740
+ startPositionLong?: Types.Sint32;
741
+ endPositionLat?: Types.Sint32;
742
+ endPositionLong?: Types.Sint32;
743
+ /** Time (includes pauses) */
744
+ totalElapsedTime?: Types.Float64;
745
+ /** Timer Time (excludes pauses) */
746
+ totalTimerTime?: Types.Float64;
747
+ totalDistance?: Types.Float64;
748
+ totalCycles?: Types.Uint32;
749
+ totalStrides?: Types.Uint32;
750
+ totalStrokes?: Types.Uint32;
751
+ totalCalories?: Types.Uint16;
752
+ /** If New Leaf */
753
+ totalFatCalories?: Types.Uint16;
754
+ avgSpeed?: Types.Float64;
755
+ maxSpeed?: Types.Float64;
756
+ avgHeartRate?: Types.Uint8;
757
+ maxHeartRate?: Types.Uint8;
758
+ /** total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time */
759
+ avgCadence?: Types.Uint8;
760
+ avgRunningCadence?: Types.Uint8;
761
+ maxCadence?: Types.Uint8;
762
+ maxRunningCadence?: Types.Uint8;
763
+ /** total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time */
764
+ avgPower?: Types.Uint16;
765
+ maxPower?: Types.Uint16;
766
+ totalAscent?: Types.Uint16;
767
+ totalDescent?: Types.Uint16;
768
+ intensity?: Types.Intensity;
769
+ lapTrigger?: Types.LapTrigger;
770
+ sport?: Types.Sport;
771
+ eventGroup?: Types.Uint8;
772
+ /** # of lengths of swim pool */
773
+ numLengths?: Types.Uint16;
774
+ normalizedPower?: Types.Uint16;
775
+ leftRightBalance?: Types.LeftRightBalance100;
776
+ firstLengthIndex?: Types.Uint16;
777
+ avgStrokeDistance?: Types.Float64;
778
+ swimStroke?: Types.SwimStroke;
779
+ subSport?: Types.SubSport;
780
+ /** # of active lengths of swim pool */
781
+ numActiveLengths?: Types.Uint16;
782
+ totalWork?: Types.Uint32;
783
+ avgAltitude?: Types.Float64;
784
+ maxAltitude?: Types.Float64;
785
+ gpsAccuracy?: Types.Uint8;
786
+ avgGrade?: Types.Float64;
787
+ avgPosGrade?: Types.Float64;
788
+ avgNegGrade?: Types.Float64;
789
+ maxPosGrade?: Types.Float64;
790
+ maxNegGrade?: Types.Float64;
791
+ avgTemperature?: Types.Sint8;
792
+ maxTemperature?: Types.Sint8;
793
+ totalMovingTime?: Types.Float64;
794
+ avgPosVerticalSpeed?: Types.Float64;
795
+ avgNegVerticalSpeed?: Types.Float64;
796
+ maxPosVerticalSpeed?: Types.Float64;
797
+ maxNegVerticalSpeed?: Types.Float64;
798
+ timeInHrZone?: Types.Float64[];
799
+ timeInSpeedZone?: Types.Float64[];
800
+ timeInCadenceZone?: Types.Float64[];
801
+ timeInPowerZone?: Types.Float64[];
802
+ repetitionNum?: Types.Uint16;
803
+ minAltitude?: Types.Float64;
804
+ minHeartRate?: Types.Uint8;
805
+ activeTime?: Types.Float64;
806
+ wktStepIndex?: Types.MessageIndex;
807
+ opponentScore?: Types.Uint16;
808
+ /** stroke_type enum used as the index */
809
+ strokeCount?: Types.Uint16[];
810
+ /** zone number used as the index */
811
+ zoneCount?: Types.Uint16[];
812
+ avgVerticalOscillation?: Types.Float64;
813
+ avgStanceTimePercent?: Types.Float64;
814
+ avgStanceTime?: Types.Float64;
815
+ /** fractional part of the avg_cadence */
816
+ avgFractionalCadence?: Types.Float64;
817
+ /** fractional part of the max_cadence */
818
+ maxFractionalCadence?: Types.Float64;
819
+ /** fractional part of the total_cycles */
820
+ totalFractionalCycles?: Types.Float64;
821
+ playerScore?: Types.Uint16;
822
+ /** Avg saturated and unsaturated hemoglobin */
823
+ avgTotalHemoglobinConc?: Types.Float64[];
824
+ /** Min saturated and unsaturated hemoglobin */
825
+ minTotalHemoglobinConc?: Types.Float64[];
826
+ /** Max saturated and unsaturated hemoglobin */
827
+ maxTotalHemoglobinConc?: Types.Float64[];
828
+ /** Avg percentage of hemoglobin saturated with oxygen */
829
+ avgSaturatedHemoglobinPercent?: Types.Float64[];
830
+ /** Min percentage of hemoglobin saturated with oxygen */
831
+ minSaturatedHemoglobinPercent?: Types.Float64[];
832
+ /** Max percentage of hemoglobin saturated with oxygen */
833
+ maxSaturatedHemoglobinPercent?: Types.Float64[];
834
+ avgLeftTorqueEffectiveness?: Types.Float64;
835
+ avgRightTorqueEffectiveness?: Types.Float64;
836
+ avgLeftPedalSmoothness?: Types.Float64;
837
+ avgRightPedalSmoothness?: Types.Float64;
838
+ avgCombinedPedalSmoothness?: Types.Float64;
839
+ /** Total time spent in the standing position */
840
+ timeStanding?: Types.Float64;
841
+ /** Number of transitions to the standing state */
842
+ standCount?: Types.Uint16;
843
+ /** Average left platform center offset */
844
+ avgLeftPco?: Types.Sint8;
845
+ /** Average right platform center offset */
846
+ avgRightPco?: Types.Sint8;
847
+ /** Average left power phase angles. Data value indexes defined by power_phase_type. */
848
+ avgLeftPowerPhase?: Types.Float64[];
849
+ /** Average left power phase peak angles. Data value indexes defined by power_phase_type. */
850
+ avgLeftPowerPhasePeak?: Types.Float64[];
851
+ /** Average right power phase angles. Data value indexes defined by power_phase_type. */
852
+ avgRightPowerPhase?: Types.Float64[];
853
+ /** Average right power phase peak angles. Data value indexes defined by power_phase_type. */
854
+ avgRightPowerPhasePeak?: Types.Float64[];
855
+ /** Average power by position. Data value indexes defined by rider_position_type. */
856
+ avgPowerPosition?: Types.Uint16[];
857
+ /** Maximum power by position. Data value indexes defined by rider_position_type. */
858
+ maxPowerPosition?: Types.Uint16[];
859
+ /** Average cadence by position. Data value indexes defined by rider_position_type. */
860
+ avgCadencePosition?: Types.Uint8[];
861
+ /** Maximum cadence by position. Data value indexes defined by rider_position_type. */
862
+ maxCadencePosition?: Types.Uint8[];
863
+ enhancedAvgSpeed?: Types.Float64;
864
+ enhancedMaxSpeed?: Types.Float64;
865
+ enhancedAvgAltitude?: Types.Float64;
866
+ enhancedMinAltitude?: Types.Float64;
867
+ enhancedMaxAltitude?: Types.Float64;
868
+ /** lev average motor power during lap */
869
+ avgLevMotorPower?: Types.Uint16;
870
+ /** lev maximum motor power during lap */
871
+ maxLevMotorPower?: Types.Uint16;
872
+ /** lev battery consumption during lap */
873
+ levBatteryConsumption?: Types.Float64;
874
+ avgVerticalRatio?: Types.Float64;
875
+ avgStanceTimeBalance?: Types.Float64;
876
+ avgStepLength?: Types.Float64;
877
+ avgVam?: Types.Float64;
878
+ /** 0 if above water */
879
+ avgDepth?: Types.Float64;
880
+ /** 0 if above water */
881
+ maxDepth?: Types.Float64;
882
+ minTemperature?: Types.Sint8;
883
+ enhancedAvgRespirationRate?: Types.Float64;
884
+ enhancedMaxRespirationRate?: Types.Float64;
885
+ avgRespirationRate?: Types.Uint8;
886
+ maxRespirationRate?: Types.Uint8;
887
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
888
+ totalGrit?: Types.Float32;
889
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
890
+ totalFlow?: Types.Float32;
891
+ jumpCount?: Types.Uint16;
892
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
893
+ avgGrit?: Types.Float32;
894
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
895
+ avgFlow?: Types.Float32;
896
+ /** fractional part of total_ascent */
897
+ totalFractionalAscent?: Types.Float64;
898
+ /** fractional part of total_descent */
899
+ totalFractionalDescent?: Types.Float64;
900
+ avgCoreTemperature?: Types.Float64;
901
+ minCoreTemperature?: Types.Float64;
902
+ maxCoreTemperature?: Types.Float64;
903
+ }
904
+
905
+ export interface LengthMesg extends Mesg {
906
+ messageIndex?: Types.MessageIndex;
907
+ timestamp?: Types.DateTime;
908
+ event?: Types.Event;
909
+ eventType?: Types.EventType;
910
+ startTime?: Types.DateTime;
911
+ totalElapsedTime?: Types.Float64;
912
+ totalTimerTime?: Types.Float64;
913
+ totalStrokes?: Types.Uint16;
914
+ avgSpeed?: Types.Float64;
915
+ swimStroke?: Types.SwimStroke;
916
+ avgSwimmingCadence?: Types.Uint8;
917
+ eventGroup?: Types.Uint8;
918
+ totalCalories?: Types.Uint16;
919
+ lengthType?: Types.LengthType;
920
+ playerScore?: Types.Uint16;
921
+ opponentScore?: Types.Uint16;
922
+ /** stroke_type enum used as the index */
923
+ strokeCount?: Types.Uint16[];
924
+ /** zone number used as the index */
925
+ zoneCount?: Types.Uint16[];
926
+ enhancedAvgRespirationRate?: Types.Float64;
927
+ enhancedMaxRespirationRate?: Types.Float64;
928
+ avgRespirationRate?: Types.Uint8;
929
+ maxRespirationRate?: Types.Uint8;
930
+ }
931
+
932
+ export interface RecordMesg extends Mesg {
933
+ timestamp?: Types.DateTime;
934
+ positionLat?: Types.Sint32;
935
+ positionLong?: Types.Sint32;
936
+ altitude?: Types.Float64;
937
+ heartRate?: Types.Uint8;
938
+ cadence?: Types.Uint8;
939
+ distance?: Types.Float64;
940
+ speed?: Types.Float64;
941
+ power?: Types.Uint16;
942
+ compressedSpeedDistance?: Types.Byte[];
943
+ grade?: Types.Float64;
944
+ /** Relative. 0 is none 254 is Max. */
945
+ resistance?: Types.Uint8;
946
+ timeFromCourse?: Types.Float64;
947
+ cycleLength?: Types.Float64;
948
+ temperature?: Types.Sint8;
949
+ /** Speed at 1s intervals. Timestamp field indicates time of last array element. */
950
+ speed1s?: Types.Float64[];
951
+ cycles?: Types.Uint8;
952
+ totalCycles?: Types.Uint32;
953
+ compressedAccumulatedPower?: Types.Uint16;
954
+ accumulatedPower?: Types.Uint32;
955
+ leftRightBalance?: Types.LeftRightBalance;
956
+ gpsAccuracy?: Types.Uint8;
957
+ verticalSpeed?: Types.Float64;
958
+ calories?: Types.Uint16;
959
+ verticalOscillation?: Types.Float64;
960
+ stanceTimePercent?: Types.Float64;
961
+ stanceTime?: Types.Float64;
962
+ activityType?: Types.ActivityType;
963
+ leftTorqueEffectiveness?: Types.Float64;
964
+ rightTorqueEffectiveness?: Types.Float64;
965
+ leftPedalSmoothness?: Types.Float64;
966
+ rightPedalSmoothness?: Types.Float64;
967
+ combinedPedalSmoothness?: Types.Float64;
968
+ time128?: Types.Float64;
969
+ strokeType?: Types.StrokeType;
970
+ zone?: Types.Uint8;
971
+ ballSpeed?: Types.Float64;
972
+ /** Log cadence and fractional cadence for backwards compatability */
973
+ cadence256?: Types.Float64;
974
+ fractionalCadence?: Types.Float64;
975
+ /** Total saturated and unsaturated hemoglobin */
976
+ totalHemoglobinConc?: Types.Float64;
977
+ /** Min saturated and unsaturated hemoglobin */
978
+ totalHemoglobinConcMin?: Types.Float64;
979
+ /** Max saturated and unsaturated hemoglobin */
980
+ totalHemoglobinConcMax?: Types.Float64;
981
+ /** Percentage of hemoglobin saturated with oxygen */
982
+ saturatedHemoglobinPercent?: Types.Float64;
983
+ /** Min percentage of hemoglobin saturated with oxygen */
984
+ saturatedHemoglobinPercentMin?: Types.Float64;
985
+ /** Max percentage of hemoglobin saturated with oxygen */
986
+ saturatedHemoglobinPercentMax?: Types.Float64;
987
+ deviceIndex?: Types.DeviceIndex;
988
+ /** Left platform center offset */
989
+ leftPco?: Types.Sint8;
990
+ /** Right platform center offset */
991
+ rightPco?: Types.Sint8;
992
+ /** Left power phase angles. Data value indexes defined by power_phase_type. */
993
+ leftPowerPhase?: Types.Float64[];
994
+ /** Left power phase peak angles. Data value indexes defined by power_phase_type. */
995
+ leftPowerPhasePeak?: Types.Float64[];
996
+ /** Right power phase angles. Data value indexes defined by power_phase_type. */
997
+ rightPowerPhase?: Types.Float64[];
998
+ /** Right power phase peak angles. Data value indexes defined by power_phase_type. */
999
+ rightPowerPhasePeak?: Types.Float64[];
1000
+ enhancedSpeed?: Types.Float64;
1001
+ enhancedAltitude?: Types.Float64;
1002
+ /** lev battery state of charge */
1003
+ batterySoc?: Types.Float64;
1004
+ /** lev motor power */
1005
+ motorPower?: Types.Uint16;
1006
+ verticalRatio?: Types.Float64;
1007
+ stanceTimeBalance?: Types.Float64;
1008
+ stepLength?: Types.Float64;
1009
+ /** Supports larger cycle sizes needed for paddlesports. Max cycle size: 655.35 */
1010
+ cycleLength16?: Types.Float64;
1011
+ /** Includes atmospheric pressure */
1012
+ absolutePressure?: Types.Uint32;
1013
+ /** 0 if above water */
1014
+ depth?: Types.Float64;
1015
+ /** 0 if above water */
1016
+ nextStopDepth?: Types.Float64;
1017
+ nextStopTime?: Types.Uint32;
1018
+ timeToSurface?: Types.Uint32;
1019
+ ndlTime?: Types.Uint32;
1020
+ cnsLoad?: Types.Uint8;
1021
+ n2Load?: Types.Uint16;
1022
+ respirationRate?: Types.Uint8;
1023
+ enhancedRespirationRate?: Types.Float64;
1024
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
1025
+ grit?: Types.Float32;
1026
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
1027
+ flow?: Types.Float32;
1028
+ /** Current Stress value */
1029
+ currentStress?: Types.Float64;
1030
+ ebikeTravelRange?: Types.Uint16;
1031
+ ebikeBatteryLevel?: Types.Uint8;
1032
+ ebikeAssistMode?: Types.Uint8;
1033
+ ebikeAssistLevelPercent?: Types.Uint8;
1034
+ airTimeRemaining?: Types.Uint32;
1035
+ /** Pressure-based surface air consumption */
1036
+ pressureSac?: Types.Float64;
1037
+ /** Volumetric surface air consumption */
1038
+ volumeSac?: Types.Float64;
1039
+ /** Respiratory minute volume */
1040
+ rmv?: Types.Float64;
1041
+ ascentRate?: Types.Float64;
1042
+ /** Current partial pressure of oxygen */
1043
+ po2?: Types.Float64;
1044
+ coreTemperature?: Types.Float64;
1045
+ }
1046
+
1047
+ export interface EventMesg extends Mesg {
1048
+ timestamp?: Types.DateTime;
1049
+ event?: Types.Event;
1050
+ eventType?: Types.EventType;
1051
+ data16?: Types.Uint16;
1052
+ data?: Types.Uint32;
1053
+ timerTrigger?: Types.TimerTrigger;
1054
+ coursePointIndex?: Types.MessageIndex;
1055
+ batteryLevel?: Types.Float64;
1056
+ virtualPartnerSpeed?: Types.Float64;
1057
+ hrHighAlert?: Types.Uint8;
1058
+ hrLowAlert?: Types.Uint8;
1059
+ speedHighAlert?: Types.Float64;
1060
+ speedLowAlert?: Types.Float64;
1061
+ cadHighAlert?: Types.Uint16;
1062
+ cadLowAlert?: Types.Uint16;
1063
+ powerHighAlert?: Types.Uint16;
1064
+ powerLowAlert?: Types.Uint16;
1065
+ timeDurationAlert?: Types.Float64;
1066
+ distanceDurationAlert?: Types.Float64;
1067
+ calorieDurationAlert?: Types.Uint32;
1068
+ fitnessEquipmentState?: Types.FitnessEquipmentState;
1069
+ sportPoint?: Types.Uint32;
1070
+ gearChangeData?: Types.Uint32;
1071
+ /** Indicates the rider position value.*/
1072
+ riderPosition?: Types.RiderPositionType;
1073
+ commTimeout?: Types.CommTimeoutType;
1074
+ diveAlert?: Types.DiveAlert;
1075
+ autoActivityDetectDuration?: Types.Uint16;
1076
+ /** The first byte is the radar_threat_level_max, the second byte is the radar_threat_count, third bytes is the average approach speed, and the 4th byte is the max approach speed*/
1077
+ radarThreatAlert?: Types.Uint32;
1078
+ eventGroup?: Types.Uint8;
1079
+ /** Do not populate directly. Autogenerated by decoder for sport_point subfield components */
1080
+ score?: Types.Uint16;
1081
+ /** Do not populate directly. Autogenerated by decoder for sport_point subfield components */
1082
+ opponentScore?: Types.Uint16;
1083
+ /** Do not populate directly. Autogenerated by decoder for gear_change subfield components. Front gear number. 1 is innermost. */
1084
+ frontGearNum?: Types.Uint8z;
1085
+ /** Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of front teeth. */
1086
+ frontGear?: Types.Uint8z;
1087
+ /** Do not populate directly. Autogenerated by decoder for gear_change subfield components. Rear gear number. 1 is innermost. */
1088
+ rearGearNum?: Types.Uint8z;
1089
+ /** Do not populate directly. Autogenerated by decoder for gear_change subfield components. Number of rear teeth. */
1090
+ rearGear?: Types.Uint8z;
1091
+ deviceIndex?: Types.DeviceIndex;
1092
+ /** Activity Type associated with an auto_activity_detect event */
1093
+ activityType?: Types.ActivityType;
1094
+ /** Timestamp of when the event started */
1095
+ startTimestamp?: Types.DateTime;
1096
+ /** Auto Activity Detect Start Timestamp.*/
1097
+ autoActivityDetectStartTimestamp?: Types.DateTime;
1098
+ /** Do not populate directly. Autogenerated by decoder for threat_alert subfield components. */
1099
+ radarThreatLevelMax?: Types.RadarThreatLevelType;
1100
+ /** Do not populate directly. Autogenerated by decoder for threat_alert subfield components. */
1101
+ radarThreatCount?: Types.Uint8;
1102
+ /** Do not populate directly. Autogenerated by decoder for radar_threat_alert subfield components */
1103
+ radarThreatAvgApproachSpeed?: Types.Float64;
1104
+ /** Do not populate directly. Autogenerated by decoder for radar_threat_alert subfield components */
1105
+ radarThreatMaxApproachSpeed?: Types.Float64;
1106
+ }
1107
+
1108
+ export interface DeviceInfoMesg extends Mesg {
1109
+ timestamp?: Types.DateTime;
1110
+ deviceIndex?: Types.DeviceIndex;
1111
+ deviceType?: Types.Uint8;
1112
+ bleDeviceType?: Types.BleDeviceType;
1113
+ antplusDeviceType?: Types.AntplusDeviceType;
1114
+ antDeviceType?: Types.Uint8;
1115
+ localDeviceType?: Types.LocalDeviceType;
1116
+ manufacturer?: Types.Manufacturer;
1117
+ serialNumber?: Types.Uint32z;
1118
+ product?: Types.Uint16;
1119
+ faveroProduct?: Types.FaveroProduct;
1120
+ garminProduct?: Types.GarminProduct;
1121
+ softwareVersion?: Types.Float64;
1122
+ hardwareVersion?: Types.Uint8;
1123
+ /** Reset by new battery or charge. */
1124
+ cumOperatingTime?: Types.Uint32;
1125
+ batteryVoltage?: Types.Float64;
1126
+ batteryStatus?: Types.BatteryStatus;
1127
+ /** Indicates the location of the sensor */
1128
+ sensorPosition?: Types.BodyLocation;
1129
+ /** Used to describe the sensor or location */
1130
+ descriptor?: Types.String;
1131
+ antTransmissionType?: Types.Uint8z;
1132
+ antDeviceNumber?: Types.Uint16z;
1133
+ antNetwork?: Types.AntNetwork;
1134
+ sourceType?: Types.SourceType;
1135
+ /** Optional free form string to indicate the devices name or model */
1136
+ productName?: Types.String;
1137
+ batteryLevel?: Types.Uint8;
1138
+ }
1139
+
1140
+ export interface DeviceAuxBatteryInfoMesg extends Mesg {
1141
+ timestamp?: Types.DateTime;
1142
+ deviceIndex?: Types.DeviceIndex;
1143
+ batteryVoltage?: Types.Float64;
1144
+ batteryStatus?: Types.BatteryStatus;
1145
+ batteryIdentifier?: Types.Uint8;
1146
+ }
1147
+
1148
+ /**
1149
+ * Corresponds to file_id of workout or course.
1150
+ */
1151
+ export interface TrainingFileMesg extends Mesg {
1152
+ timestamp?: Types.DateTime;
1153
+ type?: Types.File;
1154
+ manufacturer?: Types.Manufacturer;
1155
+ product?: Types.Uint16;
1156
+ faveroProduct?: Types.FaveroProduct;
1157
+ garminProduct?: Types.GarminProduct;
1158
+ serialNumber?: Types.Uint32z;
1159
+ timeCreated?: Types.DateTime;
1160
+ }
1161
+
1162
+ export interface WeatherConditionsMesg extends Mesg {
1163
+ /** time of update for current conditions, else forecast time */
1164
+ timestamp?: Types.DateTime;
1165
+ /** Current or forecast */
1166
+ weatherReport?: Types.WeatherReport;
1167
+ temperature?: Types.Sint8;
1168
+ /** Corresponds to GSC Response weatherIcon field */
1169
+ condition?: Types.WeatherStatus;
1170
+ windDirection?: Types.Uint16;
1171
+ windSpeed?: Types.Float64;
1172
+ /** range 0-100 */
1173
+ precipitationProbability?: Types.Uint8;
1174
+ /** Heat Index if GCS heatIdx above or equal to 90F or wind chill if GCS windChill below or equal to 32F */
1175
+ temperatureFeelsLike?: Types.Sint8;
1176
+ relativeHumidity?: Types.Uint8;
1177
+ /** string corresponding to GCS response location string */
1178
+ location?: Types.String;
1179
+ observedAtTime?: Types.DateTime;
1180
+ observedLocationLat?: Types.Sint32;
1181
+ observedLocationLong?: Types.Sint32;
1182
+ dayOfWeek?: Types.DayOfWeek;
1183
+ highTemperature?: Types.Sint8;
1184
+ lowTemperature?: Types.Sint8;
1185
+ }
1186
+
1187
+ export interface WeatherAlertMesg extends Mesg {
1188
+ timestamp?: Types.DateTime;
1189
+ /** Unique identifier from GCS report ID string, length is 12 */
1190
+ reportId?: Types.String;
1191
+ /** Time alert was issued */
1192
+ issueTime?: Types.DateTime;
1193
+ /** Time alert expires */
1194
+ expireTime?: Types.DateTime;
1195
+ /** Warning, Watch, Advisory, Statement */
1196
+ severity?: Types.WeatherSeverity;
1197
+ /** Tornado, Severe Thunderstorm, etc. */
1198
+ type?: Types.WeatherSevereType;
1199
+ }
1200
+
1201
+ export interface GpsMetadataMesg extends Mesg {
1202
+ /** Whole second part of the timestamp. */
1203
+ timestamp?: Types.DateTime;
1204
+ /** Millisecond part of the timestamp. */
1205
+ timestampMs?: Types.Uint16;
1206
+ positionLat?: Types.Sint32;
1207
+ positionLong?: Types.Sint32;
1208
+ enhancedAltitude?: Types.Float64;
1209
+ enhancedSpeed?: Types.Float64;
1210
+ heading?: Types.Float64;
1211
+ /** Used to correlate UTC to system time if the timestamp of the message is in system time. This UTC time is derived from the GPS data. */
1212
+ utcTimestamp?: Types.DateTime;
1213
+ /** velocity[0] is lon velocity. Velocity[1] is lat velocity. Velocity[2] is altitude velocity. */
1214
+ velocity?: Types.Float64[];
1215
+ }
1216
+
1217
+ export interface CameraEventMesg extends Mesg {
1218
+ /** Whole second part of the timestamp. */
1219
+ timestamp?: Types.DateTime;
1220
+ /** Millisecond part of the timestamp. */
1221
+ timestampMs?: Types.Uint16;
1222
+ cameraEventType?: Types.CameraEventType;
1223
+ cameraFileUuid?: Types.String;
1224
+ cameraOrientation?: Types.CameraOrientationType;
1225
+ }
1226
+
1227
+ export interface GyroscopeDataMesg extends Mesg {
1228
+ /** Whole second part of the timestamp */
1229
+ timestamp?: Types.DateTime;
1230
+ /** Millisecond part of the timestamp. */
1231
+ timestampMs?: Types.Uint16;
1232
+ /** Each time in the array describes the time at which the gyro sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in gyro_x and gyro_y and gyro_z */
1233
+ sampleTimeOffset?: Types.Uint16[];
1234
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1235
+ gyroX?: Types.Uint16[];
1236
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1237
+ gyroY?: Types.Uint16[];
1238
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1239
+ gyroZ?: Types.Uint16[];
1240
+ /** Calibrated gyro reading */
1241
+ calibratedGyroX?: Types.Float32[];
1242
+ /** Calibrated gyro reading */
1243
+ calibratedGyroY?: Types.Float32[];
1244
+ /** Calibrated gyro reading */
1245
+ calibratedGyroZ?: Types.Float32[];
1246
+ }
1247
+
1248
+ export interface AccelerometerDataMesg extends Mesg {
1249
+ /** Whole second part of the timestamp */
1250
+ timestamp?: Types.DateTime;
1251
+ /** Millisecond part of the timestamp. */
1252
+ timestampMs?: Types.Uint16;
1253
+ /** Each time in the array describes the time at which the accelerometer sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in accel_x and accel_y and accel_z */
1254
+ sampleTimeOffset?: Types.Uint16[];
1255
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1256
+ accelX?: Types.Uint16[];
1257
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1258
+ accelY?: Types.Uint16[];
1259
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1260
+ accelZ?: Types.Uint16[];
1261
+ /** Calibrated accel reading */
1262
+ calibratedAccelX?: Types.Float32[];
1263
+ /** Calibrated accel reading */
1264
+ calibratedAccelY?: Types.Float32[];
1265
+ /** Calibrated accel reading */
1266
+ calibratedAccelZ?: Types.Float32[];
1267
+ /** Calibrated accel reading */
1268
+ compressedCalibratedAccelX?: Types.Sint16[];
1269
+ /** Calibrated accel reading */
1270
+ compressedCalibratedAccelY?: Types.Sint16[];
1271
+ /** Calibrated accel reading */
1272
+ compressedCalibratedAccelZ?: Types.Sint16[];
1273
+ }
1274
+
1275
+ export interface MagnetometerDataMesg extends Mesg {
1276
+ /** Whole second part of the timestamp */
1277
+ timestamp?: Types.DateTime;
1278
+ /** Millisecond part of the timestamp. */
1279
+ timestampMs?: Types.Uint16;
1280
+ /** Each time in the array describes the time at which the compass sample with the corrosponding index was taken. Limited to 30 samples in each message. The samples may span across seconds. Array size must match the number of samples in cmps_x and cmps_y and cmps_z */
1281
+ sampleTimeOffset?: Types.Uint16[];
1282
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1283
+ magX?: Types.Uint16[];
1284
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1285
+ magY?: Types.Uint16[];
1286
+ /** These are the raw ADC reading. Maximum number of samples is 30 in each message. The samples may span across seconds. A conversion will need to be done on this data once read. */
1287
+ magZ?: Types.Uint16[];
1288
+ /** Calibrated Magnetometer reading */
1289
+ calibratedMagX?: Types.Float32[];
1290
+ /** Calibrated Magnetometer reading */
1291
+ calibratedMagY?: Types.Float32[];
1292
+ /** Calibrated Magnetometer reading */
1293
+ calibratedMagZ?: Types.Float32[];
1294
+ }
1295
+
1296
+ export interface BarometerDataMesg extends Mesg {
1297
+ /** Whole second part of the timestamp */
1298
+ timestamp?: Types.DateTime;
1299
+ /** Millisecond part of the timestamp. */
1300
+ timestampMs?: Types.Uint16;
1301
+ /** Each time in the array describes the time at which the barometer sample with the corrosponding index was taken. The samples may span across seconds. Array size must match the number of samples in baro_cal */
1302
+ sampleTimeOffset?: Types.Uint16[];
1303
+ /** These are the raw ADC reading. The samples may span across seconds. A conversion will need to be done on this data once read. */
1304
+ baroPres?: Types.Uint32[];
1305
+ }
1306
+
1307
+ export interface ThreeDSensorCalibrationMesg extends Mesg {
1308
+ /** Whole second part of the timestamp */
1309
+ timestamp?: Types.DateTime;
1310
+ /** Indicates which sensor the calibration is for */
1311
+ sensorType?: Types.SensorType;
1312
+ /** Calibration factor used to convert from raw ADC value to degrees, g, etc. */
1313
+ calibrationFactor?: Types.Uint32;
1314
+ /** Accelerometer calibration factor*/
1315
+ accelCalFactor?: Types.Uint32;
1316
+ /** Gyro calibration factor*/
1317
+ gyroCalFactor?: Types.Uint32;
1318
+ /** Calibration factor divisor */
1319
+ calibrationDivisor?: Types.Uint32;
1320
+ /** Level shift value used to shift the ADC value back into range */
1321
+ levelShift?: Types.Uint32;
1322
+ /** Internal calibration factors, one for each: xy, yx, zx */
1323
+ offsetCal?: Types.Sint32[];
1324
+ /** 3 x 3 rotation matrix (row major) */
1325
+ orientationMatrix?: Types.Float64[];
1326
+ }
1327
+
1328
+ export interface OneDSensorCalibrationMesg extends Mesg {
1329
+ /** Whole second part of the timestamp */
1330
+ timestamp?: Types.DateTime;
1331
+ /** Indicates which sensor the calibration is for */
1332
+ sensorType?: Types.SensorType;
1333
+ /** Calibration factor used to convert from raw ADC value to degrees, g, etc. */
1334
+ calibrationFactor?: Types.Uint32;
1335
+ /** Barometer calibration factor*/
1336
+ baroCalFactor?: Types.Uint32;
1337
+ /** Calibration factor divisor */
1338
+ calibrationDivisor?: Types.Uint32;
1339
+ /** Level shift value used to shift the ADC value back into range */
1340
+ levelShift?: Types.Uint32;
1341
+ /** Internal Calibration factor */
1342
+ offsetCal?: Types.Sint32;
1343
+ }
1344
+
1345
+ export interface VideoFrameMesg extends Mesg {
1346
+ /** Whole second part of the timestamp */
1347
+ timestamp?: Types.DateTime;
1348
+ /** Millisecond part of the timestamp. */
1349
+ timestampMs?: Types.Uint16;
1350
+ /** Number of the frame that the timestamp and timestamp_ms correlate to */
1351
+ frameNumber?: Types.Uint32;
1352
+ }
1353
+
1354
+ export interface ObdiiDataMesg extends Mesg {
1355
+ /** Timestamp message was output */
1356
+ timestamp?: Types.DateTime;
1357
+ /** Fractional part of timestamp, added to timestamp */
1358
+ timestampMs?: Types.Uint16;
1359
+ /** Offset of PID reading [i] from start_timestamp+start_timestamp_ms. Readings may span accross seconds. */
1360
+ timeOffset?: Types.Uint16[];
1361
+ /** Parameter ID */
1362
+ pid?: Types.Byte;
1363
+ /** Raw parameter data */
1364
+ rawData?: Types.Byte[];
1365
+ /** Optional, data size of PID[i]. If not specified refer to SAE J1979. */
1366
+ pidDataSize?: Types.Uint8[];
1367
+ /** System time associated with sample expressed in ms, can be used instead of time_offset. There will be a system_time value for each raw_data element. For multibyte pids the system_time is repeated. */
1368
+ systemTime?: Types.Uint32[];
1369
+ /** Timestamp of first sample recorded in the message. Used with time_offset to generate time of each sample */
1370
+ startTimestamp?: Types.DateTime;
1371
+ /** Fractional part of start_timestamp */
1372
+ startTimestampMs?: Types.Uint16;
1373
+ }
1374
+
1375
+ export interface NmeaSentenceMesg extends Mesg {
1376
+ /** Timestamp message was output */
1377
+ timestamp?: Types.DateTime;
1378
+ /** Fractional part of timestamp, added to timestamp */
1379
+ timestampMs?: Types.Uint16;
1380
+ /** NMEA sentence */
1381
+ sentence?: Types.String;
1382
+ }
1383
+
1384
+ export interface AviationAttitudeMesg extends Mesg {
1385
+ /** Timestamp message was output */
1386
+ timestamp?: Types.DateTime;
1387
+ /** Fractional part of timestamp, added to timestamp */
1388
+ timestampMs?: Types.Uint16;
1389
+ /** System time associated with sample expressed in ms. */
1390
+ systemTime?: Types.Uint32[];
1391
+ /** Range -PI/2 to +PI/2 */
1392
+ pitch?: Types.Float64[];
1393
+ /** Range -PI to +PI */
1394
+ roll?: Types.Float64[];
1395
+ /** Range -78.4 to +78.4 (-8 Gs to 8 Gs) */
1396
+ accelLateral?: Types.Float64[];
1397
+ /** Range -78.4 to +78.4 (-8 Gs to 8 Gs) */
1398
+ accelNormal?: Types.Float64[];
1399
+ /** Range -8.727 to +8.727 (-500 degs/sec to +500 degs/sec) */
1400
+ turnRate?: Types.Float64[];
1401
+ stage?: Types.AttitudeStage[];
1402
+ /** 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 */
1403
+ attitudeStageComplete?: Types.Uint8[];
1404
+ /** Track Angle/Heading Range 0 - 2pi */
1405
+ track?: Types.Float64[];
1406
+ validity?: Types.AttitudeValidity[];
1407
+ }
1408
+
1409
+ export interface VideoMesg extends Mesg {
1410
+ url?: Types.String;
1411
+ hostingProvider?: Types.String;
1412
+ /** Playback time of video */
1413
+ duration?: Types.Uint32;
1414
+ }
1415
+
1416
+ export interface VideoTitleMesg extends Mesg {
1417
+ /** Long titles will be split into multiple parts */
1418
+ messageIndex?: Types.MessageIndex;
1419
+ /** Total number of title parts */
1420
+ messageCount?: Types.Uint16;
1421
+ text?: Types.String;
1422
+ }
1423
+
1424
+ export interface VideoDescriptionMesg extends Mesg {
1425
+ /** Long descriptions will be split into multiple parts */
1426
+ messageIndex?: Types.MessageIndex;
1427
+ /** Total number of description parts */
1428
+ messageCount?: Types.Uint16;
1429
+ text?: Types.String;
1430
+ }
1431
+
1432
+ export interface VideoClipMesg extends Mesg {
1433
+ clipNumber?: Types.Uint16;
1434
+ startTimestamp?: Types.DateTime;
1435
+ startTimestampMs?: Types.Uint16;
1436
+ endTimestamp?: Types.DateTime;
1437
+ endTimestampMs?: Types.Uint16;
1438
+ /** Start of clip in video time */
1439
+ clipStart?: Types.Uint32;
1440
+ /** End of clip in video time */
1441
+ clipEnd?: Types.Uint32;
1442
+ }
1443
+
1444
+ export interface SetMesg extends Mesg {
1445
+ /** Timestamp of the set */
1446
+ timestamp?: Types.DateTime;
1447
+ duration?: Types.Float64;
1448
+ /** # of repitions of the movement */
1449
+ repetitions?: Types.Uint16;
1450
+ /** Amount of weight applied for the set */
1451
+ weight?: Types.Float64;
1452
+ setType?: Types.SetType;
1453
+ /** Start time of the set */
1454
+ startTime?: Types.DateTime;
1455
+ category?: Types.ExerciseCategory[];
1456
+ /** Based on the associated category, see [category]_exercise_names */
1457
+ categorySubtype?: Types.Uint16[];
1458
+ weightDisplayUnit?: Types.FitBaseUnit;
1459
+ messageIndex?: Types.MessageIndex;
1460
+ wktStepIndex?: Types.MessageIndex;
1461
+ }
1462
+
1463
+ export interface JumpMesg extends Mesg {
1464
+ timestamp?: Types.DateTime;
1465
+ distance?: Types.Float32;
1466
+ height?: Types.Float32;
1467
+ rotations?: Types.Uint8;
1468
+ hangTime?: Types.Float32;
1469
+ /** A score for a jump calculated based on hang time, rotations, and distance. */
1470
+ score?: Types.Float32;
1471
+ positionLat?: Types.Sint32;
1472
+ positionLong?: Types.Sint32;
1473
+ speed?: Types.Float64;
1474
+ enhancedSpeed?: Types.Float64;
1475
+ }
1476
+
1477
+ export interface SplitMesg extends Mesg {
1478
+ messageIndex?: Types.MessageIndex;
1479
+ splitType?: Types.SplitType;
1480
+ totalElapsedTime?: Types.Float64;
1481
+ totalTimerTime?: Types.Float64;
1482
+ totalDistance?: Types.Float64;
1483
+ avgSpeed?: Types.Float64;
1484
+ startTime?: Types.DateTime;
1485
+ totalAscent?: Types.Uint16;
1486
+ totalDescent?: Types.Uint16;
1487
+ startPositionLat?: Types.Sint32;
1488
+ startPositionLong?: Types.Sint32;
1489
+ endPositionLat?: Types.Sint32;
1490
+ endPositionLong?: Types.Sint32;
1491
+ maxSpeed?: Types.Float64;
1492
+ avgVertSpeed?: Types.Float64;
1493
+ endTime?: Types.DateTime;
1494
+ totalCalories?: Types.Uint32;
1495
+ startElevation?: Types.Float64;
1496
+ /** Active time of split rounds */
1497
+ activeTime?: Types.Float64;
1498
+ totalMovingTime?: Types.Float64;
1499
+ }
1500
+
1501
+ export interface SplitSummaryMesg extends Mesg {
1502
+ messageIndex?: Types.MessageIndex;
1503
+ splitType?: Types.SplitType;
1504
+ numSplits?: Types.Uint16;
1505
+ totalTimerTime?: Types.Float64;
1506
+ totalDistance?: Types.Float64;
1507
+ avgSpeed?: Types.Float64;
1508
+ maxSpeed?: Types.Float64;
1509
+ totalAscent?: Types.Uint16;
1510
+ totalDescent?: Types.Uint16;
1511
+ avgHeartRate?: Types.Uint8;
1512
+ maxHeartRate?: Types.Uint8;
1513
+ avgVertSpeed?: Types.Float64;
1514
+ totalCalories?: Types.Uint32;
1515
+ /** total active time in all split rounds */
1516
+ activeTime?: Types.Float64;
1517
+ totalMovingTime?: Types.Float64;
1518
+ }
1519
+
1520
+ export interface ClimbProMesg extends Mesg {
1521
+ timestamp?: Types.DateTime;
1522
+ positionLat?: Types.Sint32;
1523
+ positionLong?: Types.Sint32;
1524
+ climbProEvent?: Types.ClimbProEvent;
1525
+ climbNumber?: Types.Uint16;
1526
+ climbCategory?: Types.Uint8;
1527
+ currentDist?: Types.Float32;
1528
+ }
1529
+
1530
+ /**
1531
+ * Must be logged before developer field is used
1532
+ */
1533
+ export interface FieldDescriptionMesg extends Mesg {
1534
+ developerDataIndex?: Types.Uint8;
1535
+ fieldDefinitionNumber?: Types.Uint8;
1536
+ fitBaseTypeId?: Types.FitBaseType;
1537
+ fieldName?: Types.String;
1538
+ array?: Types.Uint8;
1539
+ components?: Types.String;
1540
+ scale?: Types.Uint8;
1541
+ offset?: Types.Sint8;
1542
+ units?: Types.String;
1543
+ bits?: Types.String;
1544
+ accumulate?: Types.String;
1545
+ fitBaseUnitId?: Types.FitBaseUnit;
1546
+ nativeMesgNum?: Types.MesgNum;
1547
+ nativeFieldNum?: Types.Uint8;
1548
+ }
1549
+
1550
+ /**
1551
+ * Must be logged before field description
1552
+ */
1553
+ export interface DeveloperDataIdMesg extends Mesg {
1554
+ developerId?: Types.Byte[];
1555
+ applicationId?: Types.Byte[];
1556
+ manufacturerId?: Types.Manufacturer;
1557
+ developerDataIndex?: Types.Uint8;
1558
+ applicationVersion?: Types.Uint32;
1559
+ }
1560
+
1561
+ export interface CourseMesg extends Mesg {
1562
+ sport?: Types.Sport;
1563
+ name?: Types.String;
1564
+ capabilities?: Types.CourseCapabilities;
1565
+ subSport?: Types.SubSport;
1566
+ }
1567
+
1568
+ export interface CoursePointMesg extends Mesg {
1569
+ messageIndex?: Types.MessageIndex;
1570
+ timestamp?: Types.DateTime;
1571
+ positionLat?: Types.Sint32;
1572
+ positionLong?: Types.Sint32;
1573
+ distance?: Types.Float64;
1574
+ type?: Types.CoursePoint;
1575
+ name?: Types.String;
1576
+ favorite?: Types.Bool;
1577
+ }
1578
+
1579
+ /**
1580
+ * Unique Identification data for a segment file
1581
+ */
1582
+ export interface SegmentIdMesg extends Mesg {
1583
+ /** Friendly name assigned to segment */
1584
+ name?: Types.String;
1585
+ /** UUID of the segment */
1586
+ uuid?: Types.String;
1587
+ /** Sport associated with the segment */
1588
+ sport?: Types.Sport;
1589
+ /** Segment enabled for evaluation */
1590
+ enabled?: Types.Bool;
1591
+ /** Primary key of the user that created the segment */
1592
+ userProfilePrimaryKey?: Types.Uint32;
1593
+ /** ID of the device that created the segment */
1594
+ deviceId?: Types.Uint32;
1595
+ /** Index for the Leader Board entry selected as the default race participant */
1596
+ defaultRaceLeader?: Types.Uint8;
1597
+ /** Indicates if any segments should be deleted */
1598
+ deleteStatus?: Types.SegmentDeleteStatus;
1599
+ /** Indicates how the segment was selected to be sent to the device */
1600
+ selectionType?: Types.SegmentSelectionType;
1601
+ }
1602
+
1603
+ /**
1604
+ * Unique Identification data for an individual segment leader within a segment file
1605
+ */
1606
+ export interface SegmentLeaderboardEntryMesg extends Mesg {
1607
+ messageIndex?: Types.MessageIndex;
1608
+ /** Friendly name assigned to leader */
1609
+ name?: Types.String;
1610
+ /** Leader classification */
1611
+ type?: Types.SegmentLeaderboardType;
1612
+ /** Primary user ID of this leader */
1613
+ groupPrimaryKey?: Types.Uint32;
1614
+ /** ID of the activity associated with this leader time */
1615
+ activityId?: Types.Uint32;
1616
+ /** Segment Time (includes pauses) */
1617
+ segmentTime?: Types.Float64;
1618
+ /** String version of the activity_id. 21 characters long, express in decimal */
1619
+ activityIdString?: Types.String;
1620
+ }
1621
+
1622
+ /**
1623
+ * Navigation and race evaluation point for a segment decribing a point along the segment path and time it took each segment leader to reach that point
1624
+ */
1625
+ export interface SegmentPointMesg extends Mesg {
1626
+ messageIndex?: Types.MessageIndex;
1627
+ positionLat?: Types.Sint32;
1628
+ positionLong?: Types.Sint32;
1629
+ /** Accumulated distance along the segment at the described point */
1630
+ distance?: Types.Float64;
1631
+ /** Accumulated altitude along the segment at the described point */
1632
+ altitude?: Types.Float64;
1633
+ /** 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. */
1634
+ leaderTime?: Types.Float64[];
1635
+ /** Accumulated altitude along the segment at the described point */
1636
+ enhancedAltitude?: Types.Float64;
1637
+ }
1638
+
1639
+ export interface SegmentLapMesg extends Mesg {
1640
+ messageIndex?: Types.MessageIndex;
1641
+ timestamp?: Types.DateTime;
1642
+ event?: Types.Event;
1643
+ eventType?: Types.EventType;
1644
+ startTime?: Types.DateTime;
1645
+ startPositionLat?: Types.Sint32;
1646
+ startPositionLong?: Types.Sint32;
1647
+ endPositionLat?: Types.Sint32;
1648
+ endPositionLong?: Types.Sint32;
1649
+ /** Time (includes pauses) */
1650
+ totalElapsedTime?: Types.Float64;
1651
+ /** Timer Time (excludes pauses) */
1652
+ totalTimerTime?: Types.Float64;
1653
+ totalDistance?: Types.Float64;
1654
+ totalCycles?: Types.Uint32;
1655
+ totalStrokes?: Types.Uint32;
1656
+ totalCalories?: Types.Uint16;
1657
+ /** If New Leaf */
1658
+ totalFatCalories?: Types.Uint16;
1659
+ avgSpeed?: Types.Float64;
1660
+ maxSpeed?: Types.Float64;
1661
+ avgHeartRate?: Types.Uint8;
1662
+ maxHeartRate?: Types.Uint8;
1663
+ /** total_cycles / total_timer_time if non_zero_avg_cadence otherwise total_cycles / total_elapsed_time */
1664
+ avgCadence?: Types.Uint8;
1665
+ maxCadence?: Types.Uint8;
1666
+ /** total_power / total_timer_time if non_zero_avg_power otherwise total_power / total_elapsed_time */
1667
+ avgPower?: Types.Uint16;
1668
+ maxPower?: Types.Uint16;
1669
+ totalAscent?: Types.Uint16;
1670
+ totalDescent?: Types.Uint16;
1671
+ sport?: Types.Sport;
1672
+ eventGroup?: Types.Uint8;
1673
+ /** North east corner latitude. */
1674
+ necLat?: Types.Sint32;
1675
+ /** North east corner longitude. */
1676
+ necLong?: Types.Sint32;
1677
+ /** South west corner latitude. */
1678
+ swcLat?: Types.Sint32;
1679
+ /** South west corner latitude. */
1680
+ swcLong?: Types.Sint32;
1681
+ name?: Types.String;
1682
+ normalizedPower?: Types.Uint16;
1683
+ leftRightBalance?: Types.LeftRightBalance100;
1684
+ subSport?: Types.SubSport;
1685
+ totalWork?: Types.Uint32;
1686
+ avgAltitude?: Types.Float64;
1687
+ maxAltitude?: Types.Float64;
1688
+ gpsAccuracy?: Types.Uint8;
1689
+ avgGrade?: Types.Float64;
1690
+ avgPosGrade?: Types.Float64;
1691
+ avgNegGrade?: Types.Float64;
1692
+ maxPosGrade?: Types.Float64;
1693
+ maxNegGrade?: Types.Float64;
1694
+ avgTemperature?: Types.Sint8;
1695
+ maxTemperature?: Types.Sint8;
1696
+ totalMovingTime?: Types.Float64;
1697
+ avgPosVerticalSpeed?: Types.Float64;
1698
+ avgNegVerticalSpeed?: Types.Float64;
1699
+ maxPosVerticalSpeed?: Types.Float64;
1700
+ maxNegVerticalSpeed?: Types.Float64;
1701
+ timeInHrZone?: Types.Float64[];
1702
+ timeInSpeedZone?: Types.Float64[];
1703
+ timeInCadenceZone?: Types.Float64[];
1704
+ timeInPowerZone?: Types.Float64[];
1705
+ repetitionNum?: Types.Uint16;
1706
+ minAltitude?: Types.Float64;
1707
+ minHeartRate?: Types.Uint8;
1708
+ activeTime?: Types.Float64;
1709
+ wktStepIndex?: Types.MessageIndex;
1710
+ sportEvent?: Types.SportEvent;
1711
+ avgLeftTorqueEffectiveness?: Types.Float64;
1712
+ avgRightTorqueEffectiveness?: Types.Float64;
1713
+ avgLeftPedalSmoothness?: Types.Float64;
1714
+ avgRightPedalSmoothness?: Types.Float64;
1715
+ avgCombinedPedalSmoothness?: Types.Float64;
1716
+ status?: Types.SegmentLapStatus;
1717
+ uuid?: Types.String;
1718
+ /** fractional part of the avg_cadence */
1719
+ avgFractionalCadence?: Types.Float64;
1720
+ /** fractional part of the max_cadence */
1721
+ maxFractionalCadence?: Types.Float64;
1722
+ /** fractional part of the total_cycles */
1723
+ totalFractionalCycles?: Types.Float64;
1724
+ frontGearShiftCount?: Types.Uint16;
1725
+ rearGearShiftCount?: Types.Uint16;
1726
+ /** Total time spent in the standing position */
1727
+ timeStanding?: Types.Float64;
1728
+ /** Number of transitions to the standing state */
1729
+ standCount?: Types.Uint16;
1730
+ /** Average left platform center offset */
1731
+ avgLeftPco?: Types.Sint8;
1732
+ /** Average right platform center offset */
1733
+ avgRightPco?: Types.Sint8;
1734
+ /** Average left power phase angles. Data value indexes defined by power_phase_type. */
1735
+ avgLeftPowerPhase?: Types.Float64[];
1736
+ /** Average left power phase peak angles. Data value indexes defined by power_phase_type. */
1737
+ avgLeftPowerPhasePeak?: Types.Float64[];
1738
+ /** Average right power phase angles. Data value indexes defined by power_phase_type. */
1739
+ avgRightPowerPhase?: Types.Float64[];
1740
+ /** Average right power phase peak angles. Data value indexes defined by power_phase_type. */
1741
+ avgRightPowerPhasePeak?: Types.Float64[];
1742
+ /** Average power by position. Data value indexes defined by rider_position_type. */
1743
+ avgPowerPosition?: Types.Uint16[];
1744
+ /** Maximum power by position. Data value indexes defined by rider_position_type. */
1745
+ maxPowerPosition?: Types.Uint16[];
1746
+ /** Average cadence by position. Data value indexes defined by rider_position_type. */
1747
+ avgCadencePosition?: Types.Uint8[];
1748
+ /** Maximum cadence by position. Data value indexes defined by rider_position_type. */
1749
+ maxCadencePosition?: Types.Uint8[];
1750
+ /** Manufacturer that produced the segment */
1751
+ manufacturer?: Types.Manufacturer;
1752
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
1753
+ totalGrit?: Types.Float32;
1754
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
1755
+ totalFlow?: Types.Float32;
1756
+ /** The grit score estimates how challenging a route could be for a cyclist in terms of time spent going over sharp turns or large grade slopes. */
1757
+ avgGrit?: Types.Float32;
1758
+ /** The flow score estimates how long distance wise a cyclist deaccelerates over intervals where deacceleration is unnecessary such as smooth turns or small grade angle intervals. */
1759
+ avgFlow?: Types.Float32;
1760
+ /** fractional part of total_ascent */
1761
+ totalFractionalAscent?: Types.Float64;
1762
+ /** fractional part of total_descent */
1763
+ totalFractionalDescent?: Types.Float64;
1764
+ enhancedAvgAltitude?: Types.Float64;
1765
+ enhancedMaxAltitude?: Types.Float64;
1766
+ enhancedMinAltitude?: Types.Float64;
1767
+ }
1768
+
1769
+ /**
1770
+ * Summary of the unique segment and leaderboard information associated with a segment file. This message is used to compile a segment list file describing all segment files on a device. The segment list file is used when refreshing the contents of a segment file with the latest available leaderboard information.
1771
+ */
1772
+ export interface SegmentFileMesg extends Mesg {
1773
+ messageIndex?: Types.MessageIndex;
1774
+ /** UUID of the segment file */
1775
+ fileUuid?: Types.String;
1776
+ /** Enabled state of the segment file */
1777
+ enabled?: Types.Bool;
1778
+ /** Primary key of the user that created the segment file */
1779
+ userProfilePrimaryKey?: Types.Uint32;
1780
+ /** Leader type of each leader in the segment file */
1781
+ leaderType?: Types.SegmentLeaderboardType[];
1782
+ /** Group primary key of each leader in the segment file */
1783
+ leaderGroupPrimaryKey?: Types.Uint32[];
1784
+ /** Activity ID of each leader in the segment file */
1785
+ leaderActivityId?: Types.Uint32[];
1786
+ /** String version of the activity ID of each leader in the segment file. 21 characters long for each ID, express in decimal */
1787
+ leaderActivityIdString?: Types.String;
1788
+ /** Index for the Leader Board entry selected as the default race participant */
1789
+ defaultRaceLeader?: Types.Uint8;
1790
+ }
1791
+
1792
+ export interface WorkoutMesg extends Mesg {
1793
+ messageIndex?: Types.MessageIndex;
1794
+ sport?: Types.Sport;
1795
+ capabilities?: Types.WorkoutCapabilities;
1796
+ /** number of valid steps */
1797
+ numValidSteps?: Types.Uint16;
1798
+ wktName?: Types.String;
1799
+ subSport?: Types.SubSport;
1800
+ poolLength?: Types.Float64;
1801
+ poolLengthUnit?: Types.DisplayMeasure;
1802
+ /** Description of the workout */
1803
+ wktDescription?: Types.String;
1804
+ }
1805
+
1806
+ export interface WorkoutSessionMesg extends Mesg {
1807
+ messageIndex?: Types.MessageIndex;
1808
+ sport?: Types.Sport;
1809
+ subSport?: Types.SubSport;
1810
+ numValidSteps?: Types.Uint16;
1811
+ firstStepIndex?: Types.Uint16;
1812
+ poolLength?: Types.Float64;
1813
+ poolLengthUnit?: Types.DisplayMeasure;
1814
+ }
1815
+
1816
+ export interface WorkoutStepMesg extends Mesg {
1817
+ messageIndex?: Types.MessageIndex;
1818
+ wktStepName?: Types.String;
1819
+ durationType?: Types.WktStepDuration;
1820
+ durationValue?: Types.Uint32;
1821
+ durationTime?: Types.Float64;
1822
+ durationDistance?: Types.Float64;
1823
+ durationHr?: Types.WorkoutHr;
1824
+ durationCalories?: Types.Uint32;
1825
+ /** message_index of step to loop back to. Steps are assumed to be in the order by message_index. custom_name and intensity members are undefined for this duration type.*/
1826
+ durationStep?: Types.Uint32;
1827
+ durationPower?: Types.WorkoutPower;
1828
+ durationReps?: Types.Uint32;
1829
+ targetType?: Types.WktStepTarget;
1830
+ targetValue?: Types.Uint32;
1831
+ /** speed zone (1-10);Custom =0;*/
1832
+ targetSpeedZone?: Types.Uint32;
1833
+ /** hr zone (1-5);Custom =0;*/
1834
+ targetHrZone?: Types.Uint32;
1835
+ /** Zone (1-?); Custom = 0;*/
1836
+ targetCadenceZone?: Types.Uint32;
1837
+ /** Power Zone ( 1-7); Custom = 0;*/
1838
+ targetPowerZone?: Types.Uint32;
1839
+ /** # of repetitions*/
1840
+ repeatSteps?: Types.Uint32;
1841
+ repeatTime?: Types.Float64;
1842
+ repeatDistance?: Types.Float64;
1843
+ repeatCalories?: Types.Uint32;
1844
+ repeatHr?: Types.WorkoutHr;
1845
+ repeatPower?: Types.WorkoutPower;
1846
+ targetStrokeType?: Types.SwimStroke;
1847
+ customTargetValueLow?: Types.Uint32;
1848
+ customTargetSpeedLow?: Types.Float64;
1849
+ customTargetHeartRateLow?: Types.WorkoutHr;
1850
+ customTargetCadenceLow?: Types.Uint32;
1851
+ customTargetPowerLow?: Types.WorkoutPower;
1852
+ customTargetValueHigh?: Types.Uint32;
1853
+ customTargetSpeedHigh?: Types.Float64;
1854
+ customTargetHeartRateHigh?: Types.WorkoutHr;
1855
+ customTargetCadenceHigh?: Types.Uint32;
1856
+ customTargetPowerHigh?: Types.WorkoutPower;
1857
+ intensity?: Types.Intensity;
1858
+ notes?: Types.String;
1859
+ equipment?: Types.WorkoutEquipment;
1860
+ exerciseCategory?: Types.ExerciseCategory;
1861
+ exerciseName?: Types.Uint16;
1862
+ exerciseWeight?: Types.Float64;
1863
+ weightDisplayUnit?: Types.FitBaseUnit;
1864
+ secondaryTargetType?: Types.WktStepTarget;
1865
+ secondaryTargetValue?: Types.Uint32;
1866
+ /** speed zone (1-10);Custom =0;*/
1867
+ secondaryTargetSpeedZone?: Types.Uint32;
1868
+ /** hr zone (1-5);Custom =0;*/
1869
+ secondaryTargetHrZone?: Types.Uint32;
1870
+ /** Zone (1-?); Custom = 0;*/
1871
+ secondaryTargetCadenceZone?: Types.Uint32;
1872
+ /** Power Zone ( 1-7); Custom = 0;*/
1873
+ secondaryTargetPowerZone?: Types.Uint32;
1874
+ secondaryTargetStrokeType?: Types.SwimStroke;
1875
+ secondaryCustomTargetValueLow?: Types.Uint32;
1876
+ secondaryCustomTargetSpeedLow?: Types.Float64;
1877
+ secondaryCustomTargetHeartRateLow?: Types.WorkoutHr;
1878
+ secondaryCustomTargetCadenceLow?: Types.Uint32;
1879
+ secondaryCustomTargetPowerLow?: Types.WorkoutPower;
1880
+ secondaryCustomTargetValueHigh?: Types.Uint32;
1881
+ secondaryCustomTargetSpeedHigh?: Types.Float64;
1882
+ secondaryCustomTargetHeartRateHigh?: Types.WorkoutHr;
1883
+ secondaryCustomTargetCadenceHigh?: Types.Uint32;
1884
+ secondaryCustomTargetPowerHigh?: Types.WorkoutPower;
1885
+ }
1886
+
1887
+ export interface ExerciseTitleMesg extends Mesg {
1888
+ messageIndex?: Types.MessageIndex;
1889
+ exerciseCategory?: Types.ExerciseCategory;
1890
+ exerciseName?: Types.Uint16;
1891
+ wktStepName?: Types.String;
1892
+ }
1893
+
1894
+ export interface ScheduleMesg extends Mesg {
1895
+ /** Corresponds to file_id of scheduled workout / course. */
1896
+ manufacturer?: Types.Manufacturer;
1897
+ /** Corresponds to file_id of scheduled workout / course. */
1898
+ product?: Types.Uint16;
1899
+ faveroProduct?: Types.FaveroProduct;
1900
+ garminProduct?: Types.GarminProduct;
1901
+ /** Corresponds to file_id of scheduled workout / course. */
1902
+ serialNumber?: Types.Uint32z;
1903
+ /** Corresponds to file_id of scheduled workout / course. */
1904
+ timeCreated?: Types.DateTime;
1905
+ /** TRUE if this activity has been started */
1906
+ completed?: Types.Bool;
1907
+ type?: Types.Schedule;
1908
+ scheduledTime?: Types.LocalDateTime;
1909
+ }
1910
+
1911
+ export interface TotalsMesg extends Mesg {
1912
+ messageIndex?: Types.MessageIndex;
1913
+ timestamp?: Types.DateTime;
1914
+ /** Excludes pauses */
1915
+ timerTime?: Types.Uint32;
1916
+ distance?: Types.Uint32;
1917
+ calories?: Types.Uint32;
1918
+ sport?: Types.Sport;
1919
+ /** Includes pauses */
1920
+ elapsedTime?: Types.Uint32;
1921
+ sessions?: Types.Uint16;
1922
+ activeTime?: Types.Uint32;
1923
+ sportIndex?: Types.Uint8;
1924
+ }
1925
+
1926
+ export interface WeightScaleMesg extends Mesg {
1927
+ timestamp?: Types.DateTime;
1928
+ weight?: Types.Float64;
1929
+ percentFat?: Types.Float64;
1930
+ percentHydration?: Types.Float64;
1931
+ visceralFatMass?: Types.Float64;
1932
+ boneMass?: Types.Float64;
1933
+ muscleMass?: Types.Float64;
1934
+ basalMet?: Types.Float64;
1935
+ physiqueRating?: Types.Uint8;
1936
+ /** ~4kJ per kcal, 0.25 allows max 16384 kcal */
1937
+ activeMet?: Types.Float64;
1938
+ metabolicAge?: Types.Uint8;
1939
+ visceralFatRating?: Types.Uint8;
1940
+ /** Associates this weight scale message to a user. This corresponds to the index of the user profile message in the weight scale file. */
1941
+ userProfileIndex?: Types.MessageIndex;
1942
+ bmi?: Types.Float64;
1943
+ }
1944
+
1945
+ export interface BloodPressureMesg extends Mesg {
1946
+ timestamp?: Types.DateTime;
1947
+ systolicPressure?: Types.Uint16;
1948
+ diastolicPressure?: Types.Uint16;
1949
+ meanArterialPressure?: Types.Uint16;
1950
+ map3SampleMean?: Types.Uint16;
1951
+ mapMorningValues?: Types.Uint16;
1952
+ mapEveningValues?: Types.Uint16;
1953
+ heartRate?: Types.Uint8;
1954
+ heartRateType?: Types.HrType;
1955
+ status?: Types.BpStatus;
1956
+ /** Associates this blood pressure message to a user. This corresponds to the index of the user profile message in the blood pressure file. */
1957
+ userProfileIndex?: Types.MessageIndex;
1958
+ }
1959
+
1960
+ export interface MonitoringInfoMesg extends Mesg {
1961
+ timestamp?: Types.DateTime;
1962
+ /** Use to convert activity timestamps to local time if device does not support time zone and daylight savings time correction. */
1963
+ localTimestamp?: Types.LocalDateTime;
1964
+ activityType?: Types.ActivityType[];
1965
+ /** Indexed by activity_type */
1966
+ cyclesToDistance?: Types.Float64[];
1967
+ /** Indexed by activity_type */
1968
+ cyclesToCalories?: Types.Float64[];
1969
+ restingMetabolicRate?: Types.Uint16;
1970
+ }
1971
+
1972
+ export interface MonitoringMesg extends Mesg {
1973
+ /** Must align to logging interval, for example, time must be 00:00:00 for daily log. */
1974
+ timestamp?: Types.DateTime;
1975
+ /** Associates this data to device_info message. Not required for file with single device (sensor). */
1976
+ deviceIndex?: Types.DeviceIndex;
1977
+ /** Accumulated total calories. Maintained by MonitoringReader for each activity_type. See SDK documentation */
1978
+ calories?: Types.Uint16;
1979
+ /** Accumulated distance. Maintained by MonitoringReader for each activity_type. See SDK documentation. */
1980
+ distance?: Types.Float64;
1981
+ /** Accumulated cycles. Maintained by MonitoringReader for each activity_type. See SDK documentation. */
1982
+ cycles?: Types.Float64;
1983
+ steps?: Types.Uint32;
1984
+ strokes?: Types.Float64;
1985
+ activeTime?: Types.Float64;
1986
+ activityType?: Types.ActivityType;
1987
+ activitySubtype?: Types.ActivitySubtype;
1988
+ activityLevel?: Types.ActivityLevel;
1989
+ distance16?: Types.Uint16;
1990
+ cycles16?: Types.Uint16;
1991
+ activeTime16?: Types.Uint16;
1992
+ /** Must align to logging interval, for example, time must be 00:00:00 for daily log. */
1993
+ localTimestamp?: Types.LocalDateTime;
1994
+ /** Avg temperature during the logging interval ended at timestamp */
1995
+ temperature?: Types.Float64;
1996
+ /** Min temperature during the logging interval ended at timestamp */
1997
+ temperatureMin?: Types.Float64;
1998
+ /** Max temperature during the logging interval ended at timestamp */
1999
+ temperatureMax?: Types.Float64;
2000
+ /** Indexed using minute_activity_level enum */
2001
+ activityTime?: Types.Uint16[];
2002
+ activeCalories?: Types.Uint16;
2003
+ /** Indicates single type / intensity for duration since last monitoring message. */
2004
+ currentActivityTypeIntensity?: Types.Byte;
2005
+ timestampMin8?: Types.Uint8;
2006
+ timestamp16?: Types.Uint16;
2007
+ heartRate?: Types.Uint8;
2008
+ intensity?: Types.Float64;
2009
+ durationMin?: Types.Uint16;
2010
+ duration?: Types.Uint32;
2011
+ ascent?: Types.Float64;
2012
+ descent?: Types.Float64;
2013
+ moderateActivityMinutes?: Types.Uint16;
2014
+ vigorousActivityMinutes?: Types.Uint16;
2015
+ }
2016
+
2017
+ export interface MonitoringHrDataMesg extends Mesg {
2018
+ /** Must align to logging interval, for example, time must be 00:00:00 for daily log. */
2019
+ timestamp?: Types.DateTime;
2020
+ /** 7-day rolling average */
2021
+ restingHeartRate?: Types.Uint8;
2022
+ /** RHR for today only. (Feeds into 7-day average) */
2023
+ currentDayRestingHeartRate?: Types.Uint8;
2024
+ }
2025
+
2026
+ export interface Spo2DataMesg extends Mesg {
2027
+ timestamp?: Types.DateTime;
2028
+ readingSpo2?: Types.Uint8;
2029
+ readingConfidence?: Types.Uint8;
2030
+ /** Mode when data was captured */
2031
+ mode?: Types.Spo2MeasurementType;
2032
+ }
2033
+
2034
+ export interface HrMesg extends Mesg {
2035
+ timestamp?: Types.DateTime;
2036
+ fractionalTimestamp?: Types.Float64;
2037
+ time256?: Types.Float64;
2038
+ filteredBpm?: Types.Uint8[];
2039
+ eventTimestamp?: Types.Float64[];
2040
+ eventTimestamp12?: Types.Byte[];
2041
+ }
2042
+
2043
+ /**
2044
+ * Value from 1 to 100 calculated by FirstBeat
2045
+ */
2046
+ export interface StressLevelMesg extends Mesg {
2047
+ stressLevelValue?: Types.Sint16;
2048
+ /** Time stress score was calculated */
2049
+ stressLevelTime?: Types.DateTime;
2050
+ }
2051
+
2052
+ export interface MaxMetDataMesg extends Mesg {
2053
+ /** Time maxMET and vo2 were calculated */
2054
+ updateTime?: Types.DateTime;
2055
+ vo2Max?: Types.Float64;
2056
+ sport?: Types.Sport;
2057
+ subSport?: Types.SubSport;
2058
+ maxMetCategory?: Types.MaxMetCategory;
2059
+ /** Indicates if calibrated data was used in the calculation */
2060
+ calibratedData?: Types.Bool;
2061
+ /** Indicates if the estimate was obtained using a chest strap or wrist heart rate */
2062
+ hrSource?: Types.MaxMetHeartRateSource;
2063
+ /** Indidcates if the estimate was obtained using onboard GPS or connected GPS */
2064
+ speedSource?: Types.MaxMetSpeedSource;
2065
+ }
2066
+
2067
+ /**
2068
+ * Body battery data used for HSA custom data logging
2069
+ */
2070
+ export interface HsaBodyBatteryDataMesg extends Mesg {
2071
+ timestamp?: Types.DateTime;
2072
+ /** Processing interval length in seconds */
2073
+ processingInterval?: Types.Uint16;
2074
+ /** Body battery level: [0,100] Blank: -16 */
2075
+ level?: Types.Sint8[];
2076
+ /** Body battery charged value */
2077
+ charged?: Types.Sint16[];
2078
+ /** Body battery uncharged value */
2079
+ uncharged?: Types.Sint16[];
2080
+ }
2081
+
2082
+ /**
2083
+ * HSA events
2084
+ */
2085
+ export interface HsaEventMesg extends Mesg {
2086
+ timestamp?: Types.DateTime;
2087
+ /** Event ID. Health SDK use only */
2088
+ eventId?: Types.Uint8;
2089
+ }
2090
+
2091
+ /**
2092
+ * Raw accelerometer data used for HSA custom data logging
2093
+ */
2094
+ export interface HsaAccelerometerDataMesg extends Mesg {
2095
+ timestamp?: Types.DateTime;
2096
+ /** Millisecond resolution of the timestamp */
2097
+ timestampMs?: Types.Uint16;
2098
+ /** Sampling Interval in Milliseconds */
2099
+ samplingInterval?: Types.Uint16;
2100
+ /** X-Axis Measurement */
2101
+ accelX?: Types.Float64[];
2102
+ /** Y-Axis Measurement */
2103
+ accelY?: Types.Float64[];
2104
+ /** Z-Axis Measurement */
2105
+ accelZ?: Types.Float64[];
2106
+ /** 32 kHz timestamp */
2107
+ timestamp32k?: Types.Uint32;
2108
+ }
2109
+
2110
+ export interface HsaGyroscopeDataMesg extends Mesg {
2111
+ timestamp?: Types.DateTime;
2112
+ /** Millisecond resolution of the timestamp */
2113
+ timestampMs?: Types.Uint16;
2114
+ /** Sampling Interval in 32 kHz timescale */
2115
+ samplingInterval?: Types.Uint16;
2116
+ /** X-Axis Measurement */
2117
+ gyroX?: Types.Float64[];
2118
+ /** Y-Axis Measurement */
2119
+ gyroY?: Types.Float64[];
2120
+ /** Z-Axis Measurement */
2121
+ gyroZ?: Types.Float64[];
2122
+ /** 32 kHz timestamp */
2123
+ timestamp32k?: Types.Uint32;
2124
+ }
2125
+
2126
+ /**
2127
+ * User's current daily step data used for HSA custom data logging
2128
+ */
2129
+ export interface HsaStepDataMesg extends Mesg {
2130
+ timestamp?: Types.DateTime;
2131
+ /** Processing interval length in seconds. File start: 0xFFFFFFEF File stop: 0xFFFFFFEE */
2132
+ processingInterval?: Types.Uint16;
2133
+ /** Total step sum */
2134
+ steps?: Types.Uint32[];
2135
+ }
2136
+
2137
+ /**
2138
+ * User's current SpO2 data used for HSA custom data logging
2139
+ */
2140
+ export interface HsaSpo2DataMesg extends Mesg {
2141
+ timestamp?: Types.DateTime;
2142
+ /** Processing interval length in seconds */
2143
+ processingInterval?: Types.Uint16;
2144
+ /** SpO2 Reading: [70,100] Blank: 240 */
2145
+ readingSpo2?: Types.Uint8[];
2146
+ /** SpO2 Confidence: [0,254] */
2147
+ confidence?: Types.Uint8[];
2148
+ }
2149
+
2150
+ /**
2151
+ * User's current stress data used for HSA custom data logging
2152
+ */
2153
+ export interface HsaStressDataMesg extends Mesg {
2154
+ timestamp?: Types.DateTime;
2155
+ /** Processing interval length in seconds */
2156
+ processingInterval?: Types.Uint16;
2157
+ /** Stress Level: [0,100] Off wrist: -1 Excess motion: -2 Not enough data: -3 Recovering from exercise: -4 Unidentified: -5 Blank: -16 */
2158
+ stressLevel?: Types.Sint8[];
2159
+ }
2160
+
2161
+ /**
2162
+ * User's current respiration data used for HSA custom data logging
2163
+ */
2164
+ export interface HsaRespirationDataMesg extends Mesg {
2165
+ timestamp?: Types.DateTime;
2166
+ /** Processing interval length in seconds */
2167
+ processingInterval?: Types.Uint16;
2168
+ /** Breaths / min: [1,100] Invalid: 255 Excess motion: 254 Off wrist: 253 Not available: 252 Blank: 2.4 */
2169
+ respirationRate?: Types.Float64[];
2170
+ }
2171
+
2172
+ /**
2173
+ * User's current heart rate data used for HSA custom data logging
2174
+ */
2175
+ export interface HsaHeartRateDataMesg extends Mesg {
2176
+ timestamp?: Types.DateTime;
2177
+ /** Processing interval length in seconds */
2178
+ processingInterval?: Types.Uint16;
2179
+ /** Status of measurements in buffer - 0 indicates SEARCHING 1 indicates LOCKED */
2180
+ status?: Types.Uint8;
2181
+ /** Beats / min. Blank: 0 */
2182
+ heartRate?: Types.Uint8[];
2183
+ }
2184
+
2185
+ /**
2186
+ * Configuration data for HSA custom data logging
2187
+ */
2188
+ export interface HsaConfigurationDataMesg extends Mesg {
2189
+ /** Encoded configuration data */
2190
+ timestamp?: Types.DateTime;
2191
+ /** Encoded configuration data. Health SDK use only */
2192
+ data?: Types.Byte[];
2193
+ /** Size in bytes of data field */
2194
+ dataSize?: Types.Uint8;
2195
+ }
2196
+
2197
+ /**
2198
+ * Wrist temperature data used for HSA custom data logging
2199
+ */
2200
+ export interface HsaWristTemperatureDataMesg extends Mesg {
2201
+ timestamp?: Types.DateTime;
2202
+ /** Processing interval length in seconds */
2203
+ processingInterval?: Types.Uint16;
2204
+ /** Wrist temperature reading */
2205
+ value?: Types.Float64[];
2206
+ }
2207
+
2208
+ export interface MemoGlobMesg extends Mesg {
2209
+ /** Sequence number of memo blocks */
2210
+ partIndex?: Types.Uint32;
2211
+ /** Deprecated. Use data field. */
2212
+ memo?: Types.Byte[];
2213
+ /** Message Number of the parent message */
2214
+ mesgNum?: Types.MesgNum;
2215
+ /** Index of mesg that this glob is associated with. */
2216
+ parentIndex?: Types.MessageIndex;
2217
+ /** Field within the parent that this glob is associated with */
2218
+ fieldNum?: Types.Uint8;
2219
+ /** Block of utf8 bytes. Note, mutltibyte characters may be split across adjoining memo_glob messages. */
2220
+ data?: Types.Uint8z[];
2221
+ }
2222
+
2223
+ export interface SleepLevelMesg extends Mesg {
2224
+ timestamp?: Types.DateTime;
2225
+ sleepLevel?: Types.SleepLevel;
2226
+ }
2227
+
2228
+ export interface AntChannelIdMesg extends Mesg {
2229
+ channelNumber?: Types.Uint8;
2230
+ deviceType?: Types.Uint8z;
2231
+ deviceNumber?: Types.Uint16z;
2232
+ transmissionType?: Types.Uint8z;
2233
+ deviceIndex?: Types.DeviceIndex;
2234
+ }
2235
+
2236
+ export interface AntRxMesg extends Mesg {
2237
+ timestamp?: Types.DateTime;
2238
+ fractionalTimestamp?: Types.Float64;
2239
+ mesgId?: Types.Byte;
2240
+ mesgData?: Types.Byte[];
2241
+ channelNumber?: Types.Uint8;
2242
+ data?: Types.Byte[];
2243
+ }
2244
+
2245
+ export interface AntTxMesg extends Mesg {
2246
+ timestamp?: Types.DateTime;
2247
+ fractionalTimestamp?: Types.Float64;
2248
+ mesgId?: Types.Byte;
2249
+ mesgData?: Types.Byte[];
2250
+ channelNumber?: Types.Uint8;
2251
+ data?: Types.Byte[];
2252
+ }
2253
+
2254
+ export interface ExdScreenConfigurationMesg extends Mesg {
2255
+ screenIndex?: Types.Uint8;
2256
+ /** number of fields in screen */
2257
+ fieldCount?: Types.Uint8;
2258
+ layout?: Types.ExdLayout;
2259
+ screenEnabled?: Types.Bool;
2260
+ }
2261
+
2262
+ export interface ExdDataFieldConfigurationMesg extends Mesg {
2263
+ screenIndex?: Types.Uint8;
2264
+ conceptField?: Types.Byte;
2265
+ fieldId?: Types.Uint8;
2266
+ conceptCount?: Types.Uint8;
2267
+ displayType?: Types.ExdDisplayType;
2268
+ title?: Types.String;
2269
+ }
2270
+
2271
+ export interface ExdDataConceptConfigurationMesg extends Mesg {
2272
+ screenIndex?: Types.Uint8;
2273
+ conceptField?: Types.Byte;
2274
+ fieldId?: Types.Uint8;
2275
+ conceptIndex?: Types.Uint8;
2276
+ dataPage?: Types.Uint8;
2277
+ conceptKey?: Types.Uint8;
2278
+ scaling?: Types.Uint8;
2279
+ dataUnits?: Types.ExdDataUnits;
2280
+ qualifier?: Types.ExdQualifiers;
2281
+ descriptor?: Types.ExdDescriptors;
2282
+ isSigned?: Types.Bool;
2283
+ }
2284
+
2285
+ export interface DiveSummaryMesg extends Mesg {
2286
+ timestamp?: Types.DateTime;
2287
+ referenceMesg?: Types.MesgNum;
2288
+ referenceIndex?: Types.MessageIndex;
2289
+ /** 0 if above water */
2290
+ avgDepth?: Types.Float64;
2291
+ /** 0 if above water */
2292
+ maxDepth?: Types.Float64;
2293
+ /** Time since end of last dive */
2294
+ surfaceInterval?: Types.Uint32;
2295
+ startCns?: Types.Uint8;
2296
+ endCns?: Types.Uint8;
2297
+ startN2?: Types.Uint16;
2298
+ endN2?: Types.Uint16;
2299
+ o2Toxicity?: Types.Uint16;
2300
+ diveNumber?: Types.Uint32;
2301
+ bottomTime?: Types.Float64;
2302
+ /** Average pressure-based surface air consumption */
2303
+ avgPressureSac?: Types.Float64;
2304
+ /** Average volumetric surface air consumption */
2305
+ avgVolumeSac?: Types.Float64;
2306
+ /** Average respiratory minute volume */
2307
+ avgRmv?: Types.Float64;
2308
+ /** Time to reach deepest level stop */
2309
+ descentTime?: Types.Float64;
2310
+ /** Time after leaving bottom until reaching surface */
2311
+ ascentTime?: Types.Float64;
2312
+ /** Average ascent rate, not including descents or stops */
2313
+ avgAscentRate?: Types.Float64;
2314
+ /** Average descent rate, not including ascents or stops */
2315
+ avgDescentRate?: Types.Float64;
2316
+ /** Maximum ascent rate */
2317
+ maxAscentRate?: Types.Float64;
2318
+ /** Maximum descent rate */
2319
+ maxDescentRate?: Types.Float64;
2320
+ /** Time spent neither ascending nor descending */
2321
+ hangTime?: Types.Float64;
2322
+ }
2323
+
2324
+ /**
2325
+ * Number of acclerometer zero crossings summed over the specified time interval
2326
+ */
2327
+ export interface AadAccelFeaturesMesg extends Mesg {
2328
+ timestamp?: Types.DateTime;
2329
+ /** Time interval length in seconds */
2330
+ time?: Types.Uint16;
2331
+ /** Total accelerometer energy in the interval */
2332
+ energyTotal?: Types.Uint32;
2333
+ /** Count of zero crossings */
2334
+ zeroCrossCnt?: Types.Uint16;
2335
+ /** Instance ID of zero crossing algorithm */
2336
+ instance?: Types.Uint8;
2337
+ /** Total accelerometer time above threshold in the interval */
2338
+ timeAboveThreshold?: Types.Float64;
2339
+ }
2340
+
2341
+ /**
2342
+ * Heart rate variability
2343
+ */
2344
+ export interface HrvMesg extends Mesg {
2345
+ /** Time between beats */
2346
+ time?: Types.Float64[];
2347
+ }
2348
+
2349
+ /**
2350
+ * Array of heart beat intervals
2351
+ */
2352
+ export interface BeatIntervalsMesg extends Mesg {
2353
+ timestamp?: Types.DateTime;
2354
+ /** Milliseconds past date_time */
2355
+ timestampMs?: Types.Uint16;
2356
+ /** Array of millisecond times between beats */
2357
+ time?: Types.Uint16[];
2358
+ }
2359
+
2360
+ export interface HrvStatusSummaryMesg extends Mesg {
2361
+ timestamp?: Types.DateTime;
2362
+ /** 7 day RMSSD average over sleep */
2363
+ weeklyAverage?: Types.Float64;
2364
+ /** Last night RMSSD average over sleep */
2365
+ lastNightAverage?: Types.Float64;
2366
+ /** 5 minute high RMSSD value over sleep */
2367
+ lastNight5MinHigh?: Types.Float64;
2368
+ /** 3 week baseline, upper boundary of low HRV status */
2369
+ baselineLowUpper?: Types.Float64;
2370
+ /** 3 week baseline, lower boundary of balanced HRV status */
2371
+ baselineBalancedLower?: Types.Float64;
2372
+ /** 3 week baseline, upper boundary of balanced HRV status */
2373
+ baselineBalancedUpper?: Types.Float64;
2374
+ status?: Types.HrvStatus;
2375
+ }
2376
+
2377
+ export interface HrvValueMesg extends Mesg {
2378
+ timestamp?: Types.DateTime;
2379
+ /** 5 minute RMSSD */
2380
+ value?: Types.Float64;
2381
+ }
2382
+
2383
+ /**
2384
+ * Raw Beat-to-Beat Interval values
2385
+ */
2386
+ export interface RawBbiMesg extends Mesg {
2387
+ timestamp?: Types.DateTime;
2388
+ /** Millisecond resolution of the timestamp */
2389
+ timestampMs?: Types.Uint16;
2390
+ /** 1 bit for gap indicator, 1 bit for quality indicator, and 14 bits for Beat-to-Beat interval values in whole-integer millisecond resolution */
2391
+ data?: Types.Uint16[];
2392
+ /** Array of millisecond times between beats */
2393
+ time?: Types.Uint16[];
2394
+ /** 1 = high confidence. 0 = low confidence. N/A when gap = 1 */
2395
+ quality?: Types.Uint8[];
2396
+ /** 1 = gap (time represents ms gap length). 0 = BBI data */
2397
+ gap?: Types.Uint8[];
2398
+ }
2399
+
2400
+ export interface RespirationRateMesg extends Mesg {
2401
+ timestamp?: Types.DateTime;
2402
+ /** Breaths * 100 /min, -300 indicates invalid, -200 indicates large motion, -100 indicates off wrist */
2403
+ respirationRate?: Types.Float64;
2404
+ }
2405
+
2406
+ /**
2407
+ * Specifically used for XERO products.
2408
+ */
2409
+ export interface ChronoShotSessionMesg extends Mesg {
2410
+ timestamp?: Types.DateTime;
2411
+ minSpeed?: Types.Float64;
2412
+ maxSpeed?: Types.Float64;
2413
+ avgSpeed?: Types.Float64;
2414
+ shotCount?: Types.Uint16;
2415
+ projectileType?: Types.ProjectileType;
2416
+ grainWeight?: Types.Float64;
2417
+ standardDeviation?: Types.Float64;
2418
+ }
2419
+
2420
+ /**
2421
+ * Specifically used for XERO products.
2422
+ */
2423
+ export interface ChronoShotDataMesg extends Mesg {
2424
+ timestamp?: Types.DateTime;
2425
+ shotSpeed?: Types.Float64;
2426
+ shotNum?: Types.Uint16;
2427
+ }
2428
+
2429
+ export interface TankUpdateMesg extends Mesg {
2430
+ timestamp?: Types.DateTime;
2431
+ sensor?: Types.AntChannelId;
2432
+ pressure?: Types.Float64;
2433
+ }
2434
+
2435
+ export interface TankSummaryMesg extends Mesg {
2436
+ timestamp?: Types.DateTime;
2437
+ sensor?: Types.AntChannelId;
2438
+ startPressure?: Types.Float64;
2439
+ endPressure?: Types.Float64;
2440
+ volumeUsed?: Types.Float64;
2441
+ }
2442
+
2443
+ export interface SleepAssessmentMesg extends Mesg {
2444
+ /** Average of awake_time_score and awakenings_count_score. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2445
+ combinedAwakeScore?: Types.Uint8;
2446
+ /** Score that evaluates the total time spent awake between sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2447
+ awakeTimeScore?: Types.Uint8;
2448
+ /** Score that evaluates the number of awakenings that interrupt sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2449
+ awakeningsCountScore?: Types.Uint8;
2450
+ /** Score that evaluates the amount of deep sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2451
+ deepSleepScore?: Types.Uint8;
2452
+ /** Score that evaluates the quality of sleep based on sleep stages, heart-rate variability and possible awakenings during the night. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2453
+ sleepDurationScore?: Types.Uint8;
2454
+ /** Score that evaluates the amount of light sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2455
+ lightSleepScore?: Types.Uint8;
2456
+ /** Total score that summarizes the overall quality of sleep, combining sleep duration and quality. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2457
+ overallSleepScore?: Types.Uint8;
2458
+ /** Score that evaluates the quality of sleep based on sleep stages, heart-rate variability and possible awakenings during the night. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2459
+ sleepQualityScore?: Types.Uint8;
2460
+ /** Score that evaluates stress and recovery during sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2461
+ sleepRecoveryScore?: Types.Uint8;
2462
+ /** Score that evaluates the amount of REM sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2463
+ remSleepScore?: Types.Uint8;
2464
+ /** Score that evaluates the amount of restlessness during sleep. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2465
+ sleepRestlessnessScore?: Types.Uint8;
2466
+ /** The number of awakenings during sleep. */
2467
+ awakeningsCount?: Types.Uint8;
2468
+ /** Score that evaluates the sleep interruptions. If valid: 0 (worst) to 100 (best). If unknown: FIT_UINT8_INVALID. */
2469
+ interruptionsScore?: Types.Uint8;
2470
+ /** Excludes stress during awake periods in the sleep window */
2471
+ averageStressDuringSleep?: Types.Float64;
2472
+ }
2473
+
2474
+ export interface SleepDisruptionSeverityPeriodMesg extends Mesg {
2475
+ messageIndex?: Types.MessageIndex;
2476
+ timestamp?: Types.DateTime;
2477
+ severity?: Types.SleepDisruptionSeverity;
2478
+ }
2479
+
2480
+ export interface SleepDisruptionOvernightSeverityMesg extends Mesg {
2481
+ timestamp?: Types.DateTime;
2482
+ severity?: Types.SleepDisruptionSeverity;
2483
+ }
2484
+
2485
+ export interface NapEventMesg extends Mesg {
2486
+ messageIndex?: Types.MessageIndex;
2487
+ timestamp?: Types.DateTime;
2488
+ startTime?: Types.DateTime;
2489
+ startTimezoneOffset?: Types.Sint16;
2490
+ endTime?: Types.DateTime;
2491
+ endTimezoneOffset?: Types.Sint16;
2492
+ feedback?: Types.NapPeriodFeedback;
2493
+ isDeleted?: Types.Bool;
2494
+ source?: Types.NapSource;
2495
+ /** The timestamp representing when this nap event was last updated */
2496
+ updateTimestamp?: Types.DateTime;
2497
+ }
2498
+
2499
+ export interface SkinTempOvernightMesg extends Mesg {
2500
+ timestamp?: Types.DateTime;
2501
+ localTimestamp?: Types.LocalDateTime;
2502
+ /** The average overnight deviation from baseline temperature in degrees C */
2503
+ averageDeviation?: Types.Float32;
2504
+ /** The average 7 day overnight deviation from baseline temperature in degrees C */
2505
+ average7DayDeviation?: Types.Float32;
2506
+ /** Final overnight temperature value */
2507
+ nightlyValue?: Types.Float32;
2508
+ }
2509
+
2510
+ export interface PadMesg extends Mesg {
2511
+ }
2512
+
2513
+ export interface FitMessages {
2514
+ fileIdMesgs?: FileIdMesg[];
2515
+ fileCreatorMesgs?: FileCreatorMesg[];
2516
+ timestampCorrelationMesgs?: TimestampCorrelationMesg[];
2517
+ softwareMesgs?: SoftwareMesg[];
2518
+ slaveDeviceMesgs?: SlaveDeviceMesg[];
2519
+ capabilitiesMesgs?: CapabilitiesMesg[];
2520
+ fileCapabilitiesMesgs?: FileCapabilitiesMesg[];
2521
+ mesgCapabilitiesMesgs?: MesgCapabilitiesMesg[];
2522
+ fieldCapabilitiesMesgs?: FieldCapabilitiesMesg[];
2523
+ deviceSettingsMesgs?: DeviceSettingsMesg[];
2524
+ userProfileMesgs?: UserProfileMesg[];
2525
+ hrmProfileMesgs?: HrmProfileMesg[];
2526
+ sdmProfileMesgs?: SdmProfileMesg[];
2527
+ bikeProfileMesgs?: BikeProfileMesg[];
2528
+ connectivityMesgs?: ConnectivityMesg[];
2529
+ watchfaceSettingsMesgs?: WatchfaceSettingsMesg[];
2530
+ ohrSettingsMesgs?: OhrSettingsMesg[];
2531
+ timeInZoneMesgs?: TimeInZoneMesg[];
2532
+ zonesTargetMesgs?: ZonesTargetMesg[];
2533
+ sportMesgs?: SportMesg[];
2534
+ hrZoneMesgs?: HrZoneMesg[];
2535
+ speedZoneMesgs?: SpeedZoneMesg[];
2536
+ cadenceZoneMesgs?: CadenceZoneMesg[];
2537
+ powerZoneMesgs?: PowerZoneMesg[];
2538
+ metZoneMesgs?: MetZoneMesg[];
2539
+ trainingSettingsMesgs?: TrainingSettingsMesg[];
2540
+ diveSettingsMesgs?: DiveSettingsMesg[];
2541
+ diveAlarmMesgs?: DiveAlarmMesg[];
2542
+ diveApneaAlarmMesgs?: DiveApneaAlarmMesg[];
2543
+ diveGasMesgs?: DiveGasMesg[];
2544
+ goalMesgs?: GoalMesg[];
2545
+ activityMesgs?: ActivityMesg[];
2546
+ sessionMesgs?: SessionMesg[];
2547
+ lapMesgs?: LapMesg[];
2548
+ lengthMesgs?: LengthMesg[];
2549
+ recordMesgs?: RecordMesg[];
2550
+ eventMesgs?: EventMesg[];
2551
+ deviceInfoMesgs?: DeviceInfoMesg[];
2552
+ deviceAuxBatteryInfoMesgs?: DeviceAuxBatteryInfoMesg[];
2553
+ trainingFileMesgs?: TrainingFileMesg[];
2554
+ weatherConditionsMesgs?: WeatherConditionsMesg[];
2555
+ weatherAlertMesgs?: WeatherAlertMesg[];
2556
+ gpsMetadataMesgs?: GpsMetadataMesg[];
2557
+ cameraEventMesgs?: CameraEventMesg[];
2558
+ gyroscopeDataMesgs?: GyroscopeDataMesg[];
2559
+ accelerometerDataMesgs?: AccelerometerDataMesg[];
2560
+ magnetometerDataMesgs?: MagnetometerDataMesg[];
2561
+ barometerDataMesgs?: BarometerDataMesg[];
2562
+ threeDSensorCalibrationMesgs?: ThreeDSensorCalibrationMesg[];
2563
+ oneDSensorCalibrationMesgs?: OneDSensorCalibrationMesg[];
2564
+ videoFrameMesgs?: VideoFrameMesg[];
2565
+ obdiiDataMesgs?: ObdiiDataMesg[];
2566
+ nmeaSentenceMesgs?: NmeaSentenceMesg[];
2567
+ aviationAttitudeMesgs?: AviationAttitudeMesg[];
2568
+ videoMesgs?: VideoMesg[];
2569
+ videoTitleMesgs?: VideoTitleMesg[];
2570
+ videoDescriptionMesgs?: VideoDescriptionMesg[];
2571
+ videoClipMesgs?: VideoClipMesg[];
2572
+ setMesgs?: SetMesg[];
2573
+ jumpMesgs?: JumpMesg[];
2574
+ splitMesgs?: SplitMesg[];
2575
+ splitSummaryMesgs?: SplitSummaryMesg[];
2576
+ climbProMesgs?: ClimbProMesg[];
2577
+ fieldDescriptionMesgs?: FieldDescriptionMesg[];
2578
+ developerDataIdMesgs?: DeveloperDataIdMesg[];
2579
+ courseMesgs?: CourseMesg[];
2580
+ coursePointMesgs?: CoursePointMesg[];
2581
+ segmentIdMesgs?: SegmentIdMesg[];
2582
+ segmentLeaderboardEntryMesgs?: SegmentLeaderboardEntryMesg[];
2583
+ segmentPointMesgs?: SegmentPointMesg[];
2584
+ segmentLapMesgs?: SegmentLapMesg[];
2585
+ segmentFileMesgs?: SegmentFileMesg[];
2586
+ workoutMesgs?: WorkoutMesg[];
2587
+ workoutSessionMesgs?: WorkoutSessionMesg[];
2588
+ workoutStepMesgs?: WorkoutStepMesg[];
2589
+ exerciseTitleMesgs?: ExerciseTitleMesg[];
2590
+ scheduleMesgs?: ScheduleMesg[];
2591
+ totalsMesgs?: TotalsMesg[];
2592
+ weightScaleMesgs?: WeightScaleMesg[];
2593
+ bloodPressureMesgs?: BloodPressureMesg[];
2594
+ monitoringInfoMesgs?: MonitoringInfoMesg[];
2595
+ monitoringMesgs?: MonitoringMesg[];
2596
+ monitoringHrDataMesgs?: MonitoringHrDataMesg[];
2597
+ spo2DataMesgs?: Spo2DataMesg[];
2598
+ hrMesgs?: HrMesg[];
2599
+ stressLevelMesgs?: StressLevelMesg[];
2600
+ maxMetDataMesgs?: MaxMetDataMesg[];
2601
+ hsaBodyBatteryDataMesgs?: HsaBodyBatteryDataMesg[];
2602
+ hsaEventMesgs?: HsaEventMesg[];
2603
+ hsaAccelerometerDataMesgs?: HsaAccelerometerDataMesg[];
2604
+ hsaGyroscopeDataMesgs?: HsaGyroscopeDataMesg[];
2605
+ hsaStepDataMesgs?: HsaStepDataMesg[];
2606
+ hsaSpo2DataMesgs?: HsaSpo2DataMesg[];
2607
+ hsaStressDataMesgs?: HsaStressDataMesg[];
2608
+ hsaRespirationDataMesgs?: HsaRespirationDataMesg[];
2609
+ hsaHeartRateDataMesgs?: HsaHeartRateDataMesg[];
2610
+ hsaConfigurationDataMesgs?: HsaConfigurationDataMesg[];
2611
+ hsaWristTemperatureDataMesgs?: HsaWristTemperatureDataMesg[];
2612
+ memoGlobMesgs?: MemoGlobMesg[];
2613
+ sleepLevelMesgs?: SleepLevelMesg[];
2614
+ antChannelIdMesgs?: AntChannelIdMesg[];
2615
+ antRxMesgs?: AntRxMesg[];
2616
+ antTxMesgs?: AntTxMesg[];
2617
+ exdScreenConfigurationMesgs?: ExdScreenConfigurationMesg[];
2618
+ exdDataFieldConfigurationMesgs?: ExdDataFieldConfigurationMesg[];
2619
+ exdDataConceptConfigurationMesgs?: ExdDataConceptConfigurationMesg[];
2620
+ diveSummaryMesgs?: DiveSummaryMesg[];
2621
+ aadAccelFeaturesMesgs?: AadAccelFeaturesMesg[];
2622
+ hrvMesgs?: HrvMesg[];
2623
+ beatIntervalsMesgs?: BeatIntervalsMesg[];
2624
+ hrvStatusSummaryMesgs?: HrvStatusSummaryMesg[];
2625
+ hrvValueMesgs?: HrvValueMesg[];
2626
+ rawBbiMesgs?: RawBbiMesg[];
2627
+ respirationRateMesgs?: RespirationRateMesg[];
2628
+ chronoShotSessionMesgs?: ChronoShotSessionMesg[];
2629
+ chronoShotDataMesgs?: ChronoShotDataMesg[];
2630
+ tankUpdateMesgs?: TankUpdateMesg[];
2631
+ tankSummaryMesgs?: TankSummaryMesg[];
2632
+ sleepAssessmentMesgs?: SleepAssessmentMesg[];
2633
+ sleepDisruptionSeverityPeriodMesgs?: SleepDisruptionSeverityPeriodMesg[];
2634
+ sleepDisruptionOvernightSeverityMesgs?: SleepDisruptionOvernightSeverityMesg[];
2635
+ napEventMesgs?: NapEventMesg[];
2636
+ skinTempOvernightMesgs?: SkinTempOvernightMesg[];
2637
+ padMesgs?: PadMesg[];
2638
+ }