trackswap 0.2.3 → 0.2.5
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.
- package/README.md +20 -0
- package/dist/FIT/base.d.ts +30 -0
- package/dist/FIT/decoder.d.ts +48 -0
- package/dist/FIT/encoder.d.ts +96 -0
- package/dist/FIT/encoderCourse.d.ts +45 -0
- package/dist/FIT/encoderWorkout.d.ts +45 -0
- package/dist/FIT/health.d.ts +195 -7
- package/dist/FIT/index.d.ts +1 -1
- package/dist/FIT/mesg.d.ts +3 -0
- package/dist/FIT/middleware.d.ts +15 -0
- package/dist/FIT/plugins.d.ts +9 -0
- package/dist/FIT/processor.d.ts +24 -0
- package/dist/FIT/types/checksum_type.d.ts +6 -0
- package/dist/FIT/types/date_time_type.d.ts +3 -0
- package/dist/FIT/types/file.d.ts +63 -0
- package/dist/FIT/types/file_flags_type.d.ts +9 -0
- package/dist/FIT/types/local_date_time_type.d.ts +3 -0
- package/dist/FIT/types/mesg_count_type.d.ts +6 -0
- package/dist/FIT/types/mesg_num.d.ts +369 -0
- package/dist/FIT/types/message_index_type.d.ts +6591 -0
- package/dist/FIT/types/sport.d.ts +44 -44
- package/dist/FIT/types.d.ts +509 -0
- package/dist/GPX/base.d.ts +24 -0
- package/dist/GPX/converters.d.ts +44 -0
- package/dist/GPX/decoder.d.ts +66 -0
- package/dist/GPX/encoder.d.ts +109 -0
- package/dist/GPX/middleware.d.ts +9 -0
- package/dist/GPX/processor.d.ts +18 -0
- package/dist/GPX/types.d.ts +138 -0
- package/dist/TCX/base.d.ts +33 -0
- package/dist/TCX/converters.d.ts +33 -0
- package/dist/TCX/decoder.d.ts +54 -0
- package/dist/TCX/encoder.d.ts +116 -0
- package/dist/TCX/middleware.d.ts +12 -0
- package/dist/TCX/processor.d.ts +30 -0
- package/dist/TCX/types.d.ts +13 -0
- package/dist/TrackSwap.d.ts +4 -0
- package/dist/activity/base.d.ts +54 -0
- package/dist/activity/converters.d.ts +57 -0
- package/dist/activity/encoders.d.ts +34 -0
- package/dist/activity/metrics/MetricsCalculator.d.ts +30 -0
- package/dist/activity/processor.d.ts +31 -0
- package/dist/core/base.d.ts +46 -0
- package/dist/core/builtin-adapters.d.ts +1 -0
- package/dist/core/xml-utils.d.ts +24 -0
- package/dist/errors.d.ts +1 -1
- package/dist/fit-debug.d.ts +3 -0
- package/dist/index.cjs +4 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.js +29 -29
- package/dist/types.d.ts +102 -1
- package/dist/util.d.ts +9 -0
- package/package.json +4 -3
package/dist/FIT/types.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { IProcessingContext } from "../core/base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Session corresponds to AbstractTrackType, Lap corresponds to RouteSegType, Records corresponds to RouteType, each Record corresponds to PointType
|
|
4
|
+
*/
|
|
2
5
|
export interface FITFileType {
|
|
3
6
|
fileIdMesgs?: FileIdMesgType[];
|
|
4
7
|
fileCreatorMesgs?: FileCreatorMesgType[];
|
|
@@ -7,24 +10,45 @@ export interface FITFileType {
|
|
|
7
10
|
deviceSettingsMesgs?: DeviceSettingsMesgType[];
|
|
8
11
|
userProfileMesgs?: UserProfileMesgType[];
|
|
9
12
|
sessionMesgs?: SessionMesgType[];
|
|
13
|
+
lapMesgs?: LapMesgType[];
|
|
14
|
+
recordMesgs?: RecordMesgType[];
|
|
15
|
+
lengthMesgs?: LengthMesgType[];
|
|
16
|
+
setMesgs?: SetMesgType[];
|
|
10
17
|
courseMesgs?: any[];
|
|
11
18
|
healthDocument?: import("./health.js").HealthDocumentV1;
|
|
12
19
|
fitDocumentMetadata?: {
|
|
13
20
|
detectedKinds: import("./health.js").FITPrimaryKind[];
|
|
14
21
|
messageCounts: Record<string, number>;
|
|
15
22
|
};
|
|
23
|
+
[key: string]: unknown;
|
|
16
24
|
}
|
|
17
25
|
export type FITDecoderMesgs = {
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
18
29
|
fileIdMesgs?: FileIdMesgType[];
|
|
19
30
|
fileCreatorMesgs?: FileCreatorMesgType[];
|
|
20
31
|
eventMesgs?: EventMesgType[];
|
|
21
32
|
deviceInfoMesgs?: DeviceInfoMesgType[];
|
|
22
33
|
deviceSettingsMesgs?: DeviceSettingsMesgType[];
|
|
23
34
|
userProfileMesgs?: UserProfileMesgType[];
|
|
35
|
+
/**
|
|
36
|
+
* Session 消息数组
|
|
37
|
+
*/
|
|
24
38
|
sessionMesgs?: Omit<SessionMesgType, "lapMesgs">[];
|
|
39
|
+
/**
|
|
40
|
+
* Lap 消息数组
|
|
41
|
+
*/
|
|
25
42
|
lapMesgs?: Omit<LapMesgType, "recordMesgs">[];
|
|
43
|
+
/**
|
|
44
|
+
* Record 消息数组
|
|
45
|
+
*/
|
|
26
46
|
recordMesgs?: RecordMesgType[];
|
|
47
|
+
/**
|
|
48
|
+
* Length 消息数组
|
|
49
|
+
*/
|
|
27
50
|
lengthMesgs?: LengthMesgType[];
|
|
51
|
+
setMesgs?: SetMesgType[];
|
|
28
52
|
courseMesgs?: any[];
|
|
29
53
|
[key: string]: any[] | undefined;
|
|
30
54
|
};
|
|
@@ -65,6 +89,9 @@ export interface DeviceSettingsMesgType {
|
|
|
65
89
|
timeZoneOffset?: number;
|
|
66
90
|
backlightMode?: string;
|
|
67
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* FIT userProfileMesg
|
|
94
|
+
*/
|
|
68
95
|
export interface UserProfileMesgType {
|
|
69
96
|
friendlyName?: string;
|
|
70
97
|
weight?: number;
|
|
@@ -84,406 +111,880 @@ export interface UserProfileMesgType {
|
|
|
84
111
|
positionSetting?: string;
|
|
85
112
|
temperatureSetting?: string;
|
|
86
113
|
}
|
|
114
|
+
/** FIT strength-training set phase. Active and rest phases share this message. */
|
|
115
|
+
export interface SetMesgType {
|
|
116
|
+
/** Timestamp of the parent strength-training session. */
|
|
117
|
+
timestamp?: Date;
|
|
118
|
+
/** Duration of this active or rest phase in seconds. */
|
|
119
|
+
duration?: number;
|
|
120
|
+
/** Repetitions completed during an active phase. */
|
|
121
|
+
repetitions?: number;
|
|
122
|
+
/** External load in kilograms. */
|
|
123
|
+
weight?: number;
|
|
124
|
+
setType?: string;
|
|
125
|
+
startTime?: Date;
|
|
126
|
+
/** One or more FIT exercise categories associated with the phase. */
|
|
127
|
+
category?: Array<string | number> | string | number;
|
|
128
|
+
/** Category-specific FIT exercise-name enum values, aligned by index. */
|
|
129
|
+
categorySubtype?: Array<number | null | undefined> | number | null;
|
|
130
|
+
weightDisplayUnit?: string | number;
|
|
131
|
+
messageIndex?: number;
|
|
132
|
+
wktStepIndex?: number;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* FIT SessionMesg
|
|
136
|
+
*/
|
|
137
|
+
/**
|
|
138
|
+
* FIT 文件 session 消息(整场活动汇总)TypeScript 定义
|
|
139
|
+
* 字段顺序与协议保持一致,全部驼峰命名 + 中文注释
|
|
140
|
+
* 单位已换算为常用展示值,无效值(255/65535)请在前端显示为“–”
|
|
141
|
+
*/
|
|
87
142
|
export interface SessionMesgType {
|
|
143
|
+
/** 消息索引(通常 0) */
|
|
88
144
|
messageIndex?: number;
|
|
145
|
+
/** 活动结束时间戳(UTC) */
|
|
89
146
|
timestamp: Date;
|
|
147
|
+
/** 事件类型 – session */
|
|
90
148
|
event: string;
|
|
149
|
+
/** 事件子类型 – stop/activityEnd 等 */
|
|
91
150
|
eventType: string;
|
|
151
|
+
/** 活动开始时间戳(UTC) */
|
|
92
152
|
startTime: Date;
|
|
153
|
+
/** 起点纬度 ° */
|
|
93
154
|
startPositionLat?: number;
|
|
155
|
+
/** 起点经度 ° */
|
|
94
156
|
startPositionLong?: number;
|
|
157
|
+
/** 主运动类型 running/cycling 等 */
|
|
95
158
|
sport?: string;
|
|
159
|
+
/** 子运动类型 generic/interval 等 */
|
|
96
160
|
subSport?: string;
|
|
161
|
+
/** 总耗时(含暂停)s */
|
|
97
162
|
totalElapsedTime?: number;
|
|
163
|
+
/** 总计时(不含暂停)s */
|
|
98
164
|
totalTimerTime?: number;
|
|
165
|
+
/** 总距离 m */
|
|
99
166
|
totalDistance?: number;
|
|
167
|
+
/** 总圈数/总步数/总划水数(见子字段) */
|
|
100
168
|
totalCycles?: number;
|
|
169
|
+
/** 总步数(running) */
|
|
101
170
|
totalStrides?: number;
|
|
171
|
+
/** 总划水数(swimming) */
|
|
102
172
|
totalStrokes?: number;
|
|
173
|
+
/** 总热量 kcal */
|
|
103
174
|
totalCalories?: number;
|
|
175
|
+
/** 脂肪热量 kcal */
|
|
104
176
|
totalFatCalories?: number;
|
|
177
|
+
/** 平均速度 m/s;enhancedAvgSpeed 优先 */
|
|
105
178
|
avgSpeed?: number;
|
|
179
|
+
/** 高精度平均速度 m/s */
|
|
106
180
|
enhancedAvgSpeed?: number;
|
|
181
|
+
/** 最大速度 m/s;enhancedMaxSpeed 优先 */
|
|
107
182
|
maxSpeed?: number;
|
|
183
|
+
/** 高精度最大速度 m/s */
|
|
108
184
|
enhancedMaxSpeed?: number;
|
|
185
|
+
/** 平均心率 bpm */
|
|
109
186
|
avgHeartRate?: number;
|
|
187
|
+
/** 最大心率 bpm */
|
|
110
188
|
maxHeartRate?: number;
|
|
189
|
+
/** 平均踏频/步频 rpm;子字段 avgRunningCadence */
|
|
111
190
|
avgCadence?: number;
|
|
191
|
+
/** 平均步频 spm(running) */
|
|
112
192
|
avgRunningCadence?: number;
|
|
193
|
+
/** 最大踏频/步频 rpm;子字段 maxRunningCadence */
|
|
113
194
|
maxCadence?: number;
|
|
195
|
+
/** 最大步频 spm(running) */
|
|
114
196
|
maxRunningCadence?: number;
|
|
197
|
+
/** 平均功率 W */
|
|
115
198
|
avgPower?: number;
|
|
199
|
+
/** 最大功率 W */
|
|
116
200
|
maxPower?: number;
|
|
201
|
+
/** 累计爬升 m */
|
|
117
202
|
totalAscent?: number;
|
|
203
|
+
/** 累计下降 m */
|
|
118
204
|
totalDescent?: number;
|
|
205
|
+
/** 训练效果 0–5 */
|
|
119
206
|
totalTrainingEffect?: number;
|
|
207
|
+
/** 第一圈索引 */
|
|
120
208
|
firstLapIndex?: number;
|
|
209
|
+
/** 圈数 */
|
|
121
210
|
numLaps?: number;
|
|
211
|
+
/** 事件组(通常 0) */
|
|
122
212
|
eventGroup?: number;
|
|
213
|
+
/** 触发方式 activityEnd/manual 等 */
|
|
123
214
|
trigger?: string;
|
|
215
|
+
/** 东北角纬度 °(边界框) */
|
|
124
216
|
necLat?: number;
|
|
217
|
+
/** 东北角经度 °(边界框) */
|
|
125
218
|
necLong?: number;
|
|
219
|
+
/** 西南角纬度 °(边界框) */
|
|
126
220
|
swcLat?: number;
|
|
221
|
+
/** 西南角经度 °(边界框) */
|
|
127
222
|
swcLong?: number;
|
|
223
|
+
/** 游泳趟数 */
|
|
128
224
|
numLengths?: number;
|
|
225
|
+
/** 标准化功率 W */
|
|
129
226
|
normalizedPower?: number;
|
|
227
|
+
/** 训练压力分数 TSS */
|
|
130
228
|
trainingStressScore?: number;
|
|
229
|
+
/** 强度系数 IF */
|
|
131
230
|
intensityFactor?: number;
|
|
231
|
+
/** 左右平衡 %(左 50-右 50) */
|
|
132
232
|
leftRightBalance?: number;
|
|
233
|
+
/** 终点纬度 ° */
|
|
133
234
|
endPositionLat?: number;
|
|
235
|
+
/** 终点经度 ° */
|
|
134
236
|
endPositionLong?: number;
|
|
237
|
+
/** 平均每趟划水数 */
|
|
135
238
|
avgStrokeCount?: number;
|
|
239
|
+
/** 平均每划距离 m */
|
|
136
240
|
avgStrokeDistance?: number;
|
|
241
|
+
/** 游泳划水类型 */
|
|
137
242
|
swimStroke?: string;
|
|
243
|
+
/** 泳池长度 m */
|
|
138
244
|
poolLength?: number;
|
|
245
|
+
/** 阈值功率 W */
|
|
139
246
|
thresholdPower?: number;
|
|
247
|
+
/** 泳池长度单位 metric/imperial */
|
|
140
248
|
poolLengthUnit?: string;
|
|
249
|
+
/** 有效趟数 */
|
|
141
250
|
numActiveLengths?: number;
|
|
251
|
+
/** 总做功 J */
|
|
142
252
|
totalWork?: number;
|
|
253
|
+
/** 平均海拔 m;enhancedAvgAltitude 优先 */
|
|
143
254
|
avgAltitude?: number;
|
|
255
|
+
/** 高精度平均海拔 m */
|
|
144
256
|
enhancedAvgAltitude?: number;
|
|
257
|
+
/** 最大海拔 m;enhancedMaxAltitude 优先 */
|
|
145
258
|
maxAltitude?: number;
|
|
259
|
+
/** 高精度最大海拔 m */
|
|
146
260
|
enhancedMaxAltitude?: number;
|
|
261
|
+
/** GPS 精度 m */
|
|
147
262
|
gpsAccuracy?: number;
|
|
263
|
+
/** 平均坡度 % */
|
|
148
264
|
avgGrade?: number;
|
|
265
|
+
/** 平均正坡度 % */
|
|
149
266
|
avgPosGrade?: number;
|
|
267
|
+
/** 平均负坡度 % */
|
|
150
268
|
avgNegGrade?: number;
|
|
269
|
+
/** 最大正坡度 % */
|
|
151
270
|
maxPosGrade?: number;
|
|
271
|
+
/** 最大负坡度 % */
|
|
152
272
|
maxNegGrade?: number;
|
|
273
|
+
/** 平均温度 °C */
|
|
153
274
|
avgTemperature?: number;
|
|
275
|
+
/** 最高温度 °C */
|
|
154
276
|
maxTemperature?: number;
|
|
277
|
+
/** 最低温度 °C */
|
|
155
278
|
minTemperature?: number;
|
|
279
|
+
/** 总移动时间 s */
|
|
156
280
|
totalMovingTime?: number;
|
|
281
|
+
/** 平均上升速度 m/s */
|
|
157
282
|
avgPosVerticalSpeed?: number;
|
|
283
|
+
/** 平均下降速度 m/s */
|
|
158
284
|
avgNegVerticalSpeed?: number;
|
|
285
|
+
/** 最大上升速度 m/s */
|
|
159
286
|
maxPosVerticalSpeed?: number;
|
|
287
|
+
/** 最大下降速度 m/s */
|
|
160
288
|
maxNegVerticalSpeed?: number;
|
|
289
|
+
/** 最小心率 bpm */
|
|
161
290
|
minHeartRate?: number;
|
|
291
|
+
/** 各心率区间停留时间 s 数组 */
|
|
162
292
|
timeInHrZone?: number[];
|
|
293
|
+
/** 各速度区间停留时间 s 数组 */
|
|
163
294
|
timeInSpeedZone?: number[];
|
|
295
|
+
/** 各踏频区间停留时间 s 数组 */
|
|
164
296
|
timeInCadenceZone?: number[];
|
|
297
|
+
/** 各功率区间停留时间 s 数组 */
|
|
165
298
|
timeInPowerZone?: number[];
|
|
299
|
+
/** 平均圈时 s */
|
|
166
300
|
avgLapTime?: number;
|
|
301
|
+
/** 最快圈索引 */
|
|
167
302
|
bestLapIndex?: number;
|
|
303
|
+
/** 最小海拔 m;enhancedMinAltitude 优先 */
|
|
168
304
|
minAltitude?: number;
|
|
305
|
+
/** 高精度最小海拔 m */
|
|
169
306
|
enhancedMinAltitude?: number;
|
|
307
|
+
/** 玩家得分(球类) */
|
|
170
308
|
playerScore?: number;
|
|
309
|
+
/** 对手得分(球类) */
|
|
171
310
|
opponentScore?: number;
|
|
311
|
+
/** 对手名称(球类) */
|
|
172
312
|
opponentName?: string;
|
|
313
|
+
/** 划水次数(游泳) */
|
|
173
314
|
strokeCount?: number[];
|
|
315
|
+
/** 区间计数 */
|
|
174
316
|
zoneCount?: number[];
|
|
317
|
+
/** 最大球速 m/s */
|
|
175
318
|
maxBallSpeed?: number;
|
|
319
|
+
/** 平均球速 m/s */
|
|
176
320
|
avgBallSpeed?: number;
|
|
321
|
+
/** 平均垂直振幅 cm */
|
|
177
322
|
avgVerticalOscillation?: number;
|
|
323
|
+
/** 平均触地时间占比 % */
|
|
178
324
|
avgStanceTimePercent?: number;
|
|
325
|
+
/** 平均触地时间 ms */
|
|
179
326
|
avgStanceTime?: number;
|
|
327
|
+
/** 平均小数步频 rpm */
|
|
180
328
|
avgFractionalCadence?: number;
|
|
329
|
+
/** 最大小数步频 rpm */
|
|
181
330
|
maxFractionalCadence?: number;
|
|
331
|
+
/** 总小数步/圈 */
|
|
182
332
|
totalFractionalCycles?: number;
|
|
333
|
+
/** 平均总血红蛋白 g/dL */
|
|
183
334
|
avgTotalHemoglobinConc?: number;
|
|
335
|
+
/** 最小总血红蛋白 g/dL */
|
|
184
336
|
minTotalHemoglobinConc?: number;
|
|
337
|
+
/** 最大总血红蛋白 g/dL */
|
|
185
338
|
maxTotalHemoglobinConc?: number;
|
|
339
|
+
/** 平均血红蛋白氧饱和度 % */
|
|
186
340
|
avgSaturatedHemoglobinPercent?: number;
|
|
341
|
+
/** 最小氧饱和度 % */
|
|
187
342
|
minSaturatedHemoglobinPercent?: number;
|
|
343
|
+
/** 最大氧饱和度 % */
|
|
188
344
|
maxSaturatedHemoglobinPercent?: number;
|
|
345
|
+
/** 左腿力矩效率 % */
|
|
189
346
|
avgLeftTorqueEffectiveness?: number;
|
|
347
|
+
/** 右腿力矩效率 % */
|
|
190
348
|
avgRightTorqueEffectiveness?: number;
|
|
349
|
+
/** 左踩踏平滑度 % */
|
|
191
350
|
avgLeftPedalSmoothness?: number;
|
|
351
|
+
/** 右踩踏平滑度 % */
|
|
192
352
|
avgRightPedalSmoothness?: number;
|
|
353
|
+
/** 综合踩踏平滑度 % */
|
|
193
354
|
avgCombinedPedalSmoothness?: number;
|
|
355
|
+
/** 运动配置文件名称 */
|
|
194
356
|
sportProfileName?: string;
|
|
357
|
+
/** 运动配置索引 */
|
|
195
358
|
sportIndex?: number;
|
|
359
|
+
/** 总站立时间 s(骑行) */
|
|
196
360
|
timeStanding?: number;
|
|
361
|
+
/** 站立次数(骑行) */
|
|
197
362
|
standCount?: number;
|
|
363
|
+
/** 平均左踏板中心偏移 mm */
|
|
198
364
|
avgLeftPco?: number;
|
|
365
|
+
/** 平均右踏板中心偏移 mm */
|
|
199
366
|
avgRightPco?: number;
|
|
367
|
+
/** 平均左发力相位 ° */
|
|
200
368
|
avgLeftPowerPhase?: number[];
|
|
369
|
+
/** 平均左峰值相位 ° */
|
|
201
370
|
avgLeftPowerPhasePeak?: number[];
|
|
371
|
+
/** 平均右发力相位 ° */
|
|
202
372
|
avgRightPowerPhase?: number[];
|
|
373
|
+
/** 平均右峰值相位 ° */
|
|
203
374
|
avgRightPowerPhasePeak?: number[];
|
|
375
|
+
/** 坐/站平均功率 W */
|
|
204
376
|
avgPowerPosition?: number[];
|
|
377
|
+
/** 坐/站最大功率 W */
|
|
205
378
|
maxPowerPosition?: number[];
|
|
379
|
+
/** 坐/站平均踏频 rpm */
|
|
206
380
|
avgCadencePosition?: number[];
|
|
381
|
+
/** 坐/站最大踏频 rpm */
|
|
207
382
|
maxCadencePosition?: number[];
|
|
383
|
+
/** 平均电机功率 W(eBike) */
|
|
208
384
|
avgLevMotorPower?: number;
|
|
385
|
+
/** 最大电机功率 W(eBike) */
|
|
209
386
|
maxLevMotorPower?: number;
|
|
387
|
+
/** 电池消耗 %(eBike) */
|
|
210
388
|
levBatteryConsumption?: number;
|
|
389
|
+
/** 平均垂直率 % */
|
|
211
390
|
avgVerticalRatio?: number;
|
|
391
|
+
/** 平均左右触地平衡 %(左 50-右 50) */
|
|
212
392
|
avgStanceTimeBalance?: number;
|
|
393
|
+
/** 平均步长 cm */
|
|
213
394
|
avgStepLength?: number;
|
|
395
|
+
/** 无氧训练效果 0–5 */
|
|
214
396
|
totalAnaerobicTrainingEffect?: number;
|
|
397
|
+
/** 平均 VAM m/s */
|
|
215
398
|
avgVam?: number;
|
|
399
|
+
/** 平均深度 m(潜水) */
|
|
216
400
|
avgDepth?: number;
|
|
401
|
+
/** 最大深度 m(潜水) */
|
|
217
402
|
maxDepth?: number;
|
|
403
|
+
/** 水面休息时间 s(潜水) */
|
|
218
404
|
surfaceInterval?: number;
|
|
405
|
+
/** 起潜 CNS%(潜水) */
|
|
219
406
|
startCns?: number;
|
|
407
|
+
/** 结束 CNS%(潜水) */
|
|
220
408
|
endCns?: number;
|
|
409
|
+
/** 起潜 N2%(潜水) */
|
|
221
410
|
startN2?: number;
|
|
411
|
+
/** 结束 N2%(潜水) */
|
|
222
412
|
endN2?: number;
|
|
413
|
+
/** 平均呼吸率 breaths/min;255=无效 */
|
|
223
414
|
avgRespirationRate?: number;
|
|
415
|
+
/** 最大呼吸率 breaths/min;255=无效 */
|
|
224
416
|
maxRespirationRate?: number;
|
|
417
|
+
/** 最小呼吸率 breaths/min;255=无效 */
|
|
225
418
|
minRespirationRate?: number;
|
|
419
|
+
/** 高精度平均呼吸率 breaths/min;65535=无效 */
|
|
226
420
|
enhancedAvgRespirationRate?: number;
|
|
421
|
+
/** 高精度最大呼吸率 breaths/min;65535=无效 */
|
|
227
422
|
enhancedMaxRespirationRate?: number;
|
|
423
|
+
/** 高精度最小呼吸率 breaths/min;65535=无效 */
|
|
228
424
|
enhancedMinRespirationRate?: number;
|
|
425
|
+
/** 氧毒性单位 OTUs(潜水) */
|
|
229
426
|
o2Toxicity?: number;
|
|
427
|
+
/** 潜水编号 */
|
|
230
428
|
diveNumber?: number;
|
|
429
|
+
/** 训练负荷峰值 EPOC·min */
|
|
231
430
|
trainingLoadPeak?: number;
|
|
431
|
+
/** 总地形崎岖度 kGrit */
|
|
232
432
|
totalGrit?: number;
|
|
433
|
+
/** 总流畅度 Flow */
|
|
233
434
|
totalFlow?: number;
|
|
435
|
+
/** 跳跃次数(山地车) */
|
|
234
436
|
jumpCount?: number;
|
|
437
|
+
/** 平均崎岖度 kGrit */
|
|
235
438
|
avgGrit?: number;
|
|
439
|
+
/** 平均流畅度 Flow */
|
|
236
440
|
avgFlow?: number;
|
|
441
|
+
/** 主观感觉 0-100 */
|
|
237
442
|
workoutFeel?: number;
|
|
443
|
+
/** 主观用力 0-10 */
|
|
238
444
|
workoutRpe?: number;
|
|
445
|
+
/** 平均血氧饱和度 % */
|
|
239
446
|
avgSpo2?: number;
|
|
447
|
+
/** 平均压力 % */
|
|
240
448
|
avgStress?: number;
|
|
449
|
+
/** HRV SDNN ms */
|
|
241
450
|
sdrrHrv?: number;
|
|
451
|
+
/** HRV RMSSD ms */
|
|
242
452
|
rmssdHrv?: number;
|
|
453
|
+
/** 小数爬升 m */
|
|
243
454
|
totalFractionalAscent?: number;
|
|
455
|
+
/** 小数下降 m */
|
|
244
456
|
totalFractionalDescent?: number;
|
|
457
|
+
/** 平均核心体温 °C */
|
|
245
458
|
avgCoreTemperature?: number;
|
|
459
|
+
/** 最低核心体温 °C */
|
|
246
460
|
minCoreTemperature?: number;
|
|
461
|
+
/** 最高核心体温 °C */
|
|
247
462
|
maxCoreTemperature?: number;
|
|
248
463
|
lapMesgs?: LapMesgType[];
|
|
464
|
+
setMesgs?: SetMesgType[];
|
|
249
465
|
}
|
|
466
|
+
/**
|
|
467
|
+
* FIT 文件 record 消息(单条采样点)TypeScript 定义
|
|
468
|
+
* 字段顺序与协议保持一致,全部驼峰命名 + 中文注释
|
|
469
|
+
* 单位已换算为常用展示值,无效值(255/65535)请在前端显示为“–”
|
|
470
|
+
*/
|
|
250
471
|
export interface RecordMesgType {
|
|
472
|
+
/** 采样时间戳(UTC) */
|
|
251
473
|
timestamp?: Date;
|
|
474
|
+
/** 纬度 ° */
|
|
252
475
|
positionLat?: number;
|
|
476
|
+
/** 经度 ° */
|
|
253
477
|
positionLong?: number;
|
|
478
|
+
/** 海拔 m;enhancedAltitude 优先 */
|
|
254
479
|
altitude?: number;
|
|
480
|
+
/** 高精度海拔 m */
|
|
255
481
|
enhancedAltitude?: number;
|
|
482
|
+
/** 瞬时心率 bpm */
|
|
256
483
|
heartRate?: number;
|
|
484
|
+
/** 步频/踏频 rpm(跑步=spm) */
|
|
257
485
|
cadence?: number;
|
|
486
|
+
/** 累计距离 m */
|
|
258
487
|
distance?: number;
|
|
488
|
+
/** 速度 m/s;enhancedSpeed 优先 */
|
|
259
489
|
speed?: number;
|
|
490
|
+
/** 高精度速度 m/s */
|
|
260
491
|
enhancedSpeed?: number;
|
|
492
|
+
/** 瞬时功率 W */
|
|
261
493
|
power?: number;
|
|
494
|
+
/** 压缩速距(内部) */
|
|
262
495
|
compressedSpeedDistance?: Uint8Array;
|
|
496
|
+
/** 坡度 % */
|
|
263
497
|
grade?: number;
|
|
498
|
+
/** 阻力级别 0-100 */
|
|
264
499
|
resistance?: number;
|
|
500
|
+
/** 偏离航线时间 s */
|
|
265
501
|
timeFromCourse?: number;
|
|
502
|
+
/** 单圈长度 m */
|
|
266
503
|
cycleLength?: number;
|
|
504
|
+
/** 环境温度 °C */
|
|
267
505
|
temperature?: number;
|
|
506
|
+
/** 1 秒平均速度 m/s */
|
|
268
507
|
speed1s?: number;
|
|
508
|
+
/** 单圈圈数 */
|
|
269
509
|
cycles?: number;
|
|
510
|
+
/** 总圈数 */
|
|
270
511
|
totalCycles?: number;
|
|
512
|
+
/** 压缩累计功率(内部) */
|
|
271
513
|
compressedAccumulatedPower?: number;
|
|
514
|
+
/** 累计功率 W */
|
|
272
515
|
accumulatedPower?: number;
|
|
516
|
+
/** 左右平衡 %(左 50-右 50) */
|
|
273
517
|
leftRightBalance?: number;
|
|
518
|
+
/** GPS 精度 m */
|
|
274
519
|
gpsAccuracy?: number;
|
|
520
|
+
/** 垂直速度 m/s(正=上升) */
|
|
275
521
|
verticalSpeed?: number;
|
|
522
|
+
/** 瞬时热量 kcal */
|
|
276
523
|
calories?: number;
|
|
524
|
+
/** 垂直振幅 cm(mm→cm) */
|
|
277
525
|
verticalOscillation?: number;
|
|
526
|
+
/** 触地时间占比 % */
|
|
278
527
|
stanceTimePercent?: number;
|
|
528
|
+
/** 触地时间 ms */
|
|
279
529
|
stanceTime?: number;
|
|
530
|
+
/** 活动类型 running/cycling 等 */
|
|
280
531
|
activityType?: string;
|
|
532
|
+
/** 左腿力矩效率 % */
|
|
281
533
|
leftTorqueEffectiveness?: number;
|
|
534
|
+
/** 右腿力矩效率 % */
|
|
282
535
|
rightTorqueEffectiveness?: number;
|
|
536
|
+
/** 左踩踏平滑度 % */
|
|
283
537
|
leftPedalSmoothness?: number;
|
|
538
|
+
/** 右踩踏平滑度 % */
|
|
284
539
|
rightPedalSmoothness?: number;
|
|
540
|
+
/** 综合踩踏平滑度 % */
|
|
285
541
|
combinedPedalSmoothness?: number;
|
|
542
|
+
/** 128 分度时间(内部) */
|
|
286
543
|
time128?: number;
|
|
544
|
+
/** 游泳划水类型 */
|
|
287
545
|
strokeType?: string;
|
|
546
|
+
/** 训练区间 1-5 */
|
|
288
547
|
zone?: number;
|
|
548
|
+
/** 球速 m/s */
|
|
289
549
|
ballSpeed?: number;
|
|
550
|
+
/** 高分辨率踏频 rpm */
|
|
290
551
|
cadence256?: number;
|
|
552
|
+
/** 小数步频/踏频 rpm(需加回 cadence) */
|
|
291
553
|
fractionalCadence?: number;
|
|
554
|
+
/** 总血红蛋白浓度 g/dL */
|
|
292
555
|
totalHemoglobinConc?: number;
|
|
556
|
+
/** 最小总血红蛋白 g/dL */
|
|
293
557
|
totalHemoglobinConcMin?: number;
|
|
558
|
+
/** 最大总血红蛋白 g/dL */
|
|
294
559
|
totalHemoglobinConcMax?: number;
|
|
560
|
+
/** 血红蛋白氧饱和度 % */
|
|
295
561
|
saturatedHemoglobinPercent?: number;
|
|
562
|
+
/** 最小氧饱和度 % */
|
|
296
563
|
saturatedHemoglobinPercentMin?: number;
|
|
564
|
+
/** 最大氧饱和度 % */
|
|
297
565
|
saturatedHemoglobinPercentMax?: number;
|
|
566
|
+
/** 设备索引 */
|
|
298
567
|
deviceIndex?: number;
|
|
568
|
+
/** 左踏板中心偏移 mm */
|
|
299
569
|
leftPco?: number;
|
|
570
|
+
/** 右踏板中心偏移 mm */
|
|
300
571
|
rightPco?: number;
|
|
572
|
+
/** 左发力相位 ° */
|
|
301
573
|
leftPowerPhase?: number;
|
|
574
|
+
/** 左峰值相位 ° */
|
|
302
575
|
leftPowerPhasePeak?: number;
|
|
576
|
+
/** 右发力相位 ° */
|
|
303
577
|
rightPowerPhase?: number;
|
|
578
|
+
/** 右峰值相位 ° */
|
|
304
579
|
rightPowerPhasePeak?: number;
|
|
580
|
+
/** 电池电量 % */
|
|
305
581
|
batterySoc?: number;
|
|
582
|
+
/** 电机功率 W */
|
|
306
583
|
motorPower?: number;
|
|
584
|
+
/** 垂直率 % */
|
|
307
585
|
verticalRatio?: number;
|
|
586
|
+
/** 左右触地平衡 %(左 50-右 50) */
|
|
308
587
|
stanceTimeBalance?: number;
|
|
588
|
+
/** 步长 cm(mm→cm) */
|
|
309
589
|
stepLength?: number;
|
|
590
|
+
/** 16 分度步幅 m */
|
|
310
591
|
cycleLength16?: number;
|
|
592
|
+
/** 绝对气压 Pa */
|
|
311
593
|
absolutePressure?: number;
|
|
594
|
+
/** 潜水深度 m */
|
|
312
595
|
depth?: number;
|
|
596
|
+
/** 下一减压停深度 m */
|
|
313
597
|
nextStopDepth?: number;
|
|
598
|
+
/** 下一减压停时间 s */
|
|
314
599
|
nextStopTime?: number;
|
|
600
|
+
/** 升水时间 s */
|
|
315
601
|
timeToSurface?: number;
|
|
602
|
+
/** 免减压极限时间 s */
|
|
316
603
|
ndlTime?: number;
|
|
604
|
+
/** 中枢神经系统毒性负荷 % */
|
|
317
605
|
cnsLoad?: number;
|
|
606
|
+
/** 氮气负荷 % */
|
|
318
607
|
n2Load?: number;
|
|
608
|
+
/** 呼吸率 breaths/min;255=无效 */
|
|
319
609
|
respirationRate?: number;
|
|
610
|
+
/** 高精度呼吸率 breaths/min;65535=无效 */
|
|
320
611
|
enhancedRespirationRate?: number;
|
|
612
|
+
/** 地形崎岖度(0-1) */
|
|
321
613
|
grit?: number;
|
|
614
|
+
/** 流畅度(0-1) */
|
|
322
615
|
flow?: number;
|
|
616
|
+
/** 实时压力指数 */
|
|
323
617
|
currentStress?: number;
|
|
618
|
+
/** 预估续航 km */
|
|
324
619
|
ebikeTravelRange?: number;
|
|
620
|
+
/** 电池电量 % */
|
|
325
621
|
ebikeBatteryLevel?: number;
|
|
622
|
+
/** 助力模式 */
|
|
326
623
|
ebikeAssistMode?: number;
|
|
624
|
+
/** 助力等级 % */
|
|
327
625
|
ebikeAssistLevelPercent?: number;
|
|
626
|
+
/** 剩余气体时间 s */
|
|
328
627
|
airTimeRemaining?: number;
|
|
628
|
+
/** 水面耗气率 bar/min */
|
|
329
629
|
pressureSac?: number;
|
|
630
|
+
/** 体积耗气率 L/min */
|
|
330
631
|
volumeSac?: number;
|
|
632
|
+
/** 每分通气量 L/min */
|
|
331
633
|
rmv?: number;
|
|
634
|
+
/** 上升速率 m/s */
|
|
332
635
|
ascentRate?: number;
|
|
636
|
+
/** 氧分压 % */
|
|
333
637
|
po2?: number;
|
|
638
|
+
/** 核心体温 °C(×100→°C) */
|
|
334
639
|
coreTemperature?: number;
|
|
335
640
|
}
|
|
641
|
+
/**
|
|
642
|
+
* FIT 文件 lengthMesg 消息
|
|
643
|
+
* 字段顺序与协议保持一致,全部驼峰命名 + 中文注释
|
|
644
|
+
*/
|
|
336
645
|
export interface LengthMesgType {
|
|
337
646
|
timestamp: Date;
|
|
338
647
|
messageIndex: number;
|
|
648
|
+
/**
|
|
649
|
+
* 事件类型,通常为 length,表示记录的是泳池长度相关数据
|
|
650
|
+
*/
|
|
339
651
|
event?: string;
|
|
652
|
+
/**
|
|
653
|
+
* 事件结束类型,如 stop 表示该趟游泳已经结束
|
|
654
|
+
*/
|
|
340
655
|
eventType?: string;
|
|
656
|
+
/**
|
|
657
|
+
* 该趟游泳的开始时间。
|
|
658
|
+
*/
|
|
341
659
|
startTime?: Date;
|
|
660
|
+
/**
|
|
661
|
+
* 从开始到结束的总经过时间(秒)。
|
|
662
|
+
*/
|
|
342
663
|
totalElapsedTime?: number;
|
|
664
|
+
/**
|
|
665
|
+
* 计时器记录的总时间(秒),通常与 totalElapsedTime 相同
|
|
666
|
+
*/
|
|
343
667
|
totalTimerTime?: number;
|
|
668
|
+
/**
|
|
669
|
+
* 完成该趟游泳的总划水次数
|
|
670
|
+
*/
|
|
344
671
|
totalStrokes?: number;
|
|
672
|
+
/**
|
|
673
|
+
* 平均速度(米/秒)
|
|
674
|
+
*/
|
|
345
675
|
avgSpeed?: number;
|
|
676
|
+
/**
|
|
677
|
+
* 游泳姿势,如蛙泳(breaststroke)、自由泳(freestyle)等
|
|
678
|
+
*/
|
|
346
679
|
swimStroke?: "breaststroke" | "freestyle" | "backstroke" | "butterfly" | "drill" | "mixed" | "im" | "invalid";
|
|
680
|
+
/**
|
|
681
|
+
* 平均划水频率(次/分钟)
|
|
682
|
+
*/
|
|
347
683
|
avgSwimmingCadence?: number;
|
|
684
|
+
/**
|
|
685
|
+
* 事件组,用于将相关事件分组
|
|
686
|
+
*/
|
|
348
687
|
eventGroup?: number;
|
|
688
|
+
/**
|
|
689
|
+
* 该趟游泳消耗的总卡路里
|
|
690
|
+
*/
|
|
349
691
|
totalCalories?: number;
|
|
692
|
+
/**
|
|
693
|
+
* 长度类型,如 active 表示活动状态,idle 表示空闲状态
|
|
694
|
+
*/
|
|
350
695
|
lengthType?: "active" | "idle";
|
|
696
|
+
/**
|
|
697
|
+
* 玩家得分,通常用于比赛或训练中的计分
|
|
698
|
+
*/
|
|
351
699
|
playerScore?: number;
|
|
700
|
+
/**
|
|
701
|
+
* 对手得分,通常用于比赛或训练中的计分
|
|
702
|
+
*/
|
|
352
703
|
opponentScore?: number;
|
|
704
|
+
/**
|
|
705
|
+
* 划水次数,与 totalStrokes 类似,但可能更具体
|
|
706
|
+
*/
|
|
353
707
|
strokeCount?: number;
|
|
708
|
+
/**
|
|
709
|
+
* 在特定训练强度区间(如心率区间)中的计数
|
|
710
|
+
*/
|
|
354
711
|
zoneCount?: number;
|
|
712
|
+
/**
|
|
713
|
+
* 更精确的平均呼吸频率(次/分钟)
|
|
714
|
+
*/
|
|
355
715
|
enhancedAvgRespirationRate?: number;
|
|
716
|
+
/**
|
|
717
|
+
* 更精确的最大呼吸频率(次/分钟)
|
|
718
|
+
*/
|
|
356
719
|
enHancedMaxRespirationRate?: number;
|
|
720
|
+
/**
|
|
721
|
+
* 平均呼吸频率(次/分钟)
|
|
722
|
+
*/
|
|
357
723
|
avgRespirationRate?: number;
|
|
724
|
+
/**
|
|
725
|
+
* 最大呼吸频率(次/分钟)
|
|
726
|
+
*/
|
|
358
727
|
maxRespirationRate?: number;
|
|
359
728
|
}
|
|
729
|
+
/**
|
|
730
|
+
* FIT 文件 lap 消息(单圈数据)TypeScript 定义
|
|
731
|
+
* 字段顺序与协议保持一致,全部驼峰命名 + 中文注释
|
|
732
|
+
* 单位已换算为常用展示值,无效值(255/65535)请在前端显示为“–”
|
|
733
|
+
*/
|
|
360
734
|
export interface LapMesgType {
|
|
735
|
+
/** 圈索引(0 起) */
|
|
361
736
|
messageIndex: number;
|
|
737
|
+
/** 圈结束时间戳(UTC) */
|
|
362
738
|
timestamp?: Date;
|
|
739
|
+
/** 事件类型 – lap */
|
|
363
740
|
event?: string;
|
|
741
|
+
/** 事件子类型 – stop 等 */
|
|
364
742
|
eventType?: string;
|
|
743
|
+
/** 圈开始时间戳(UTC) */
|
|
365
744
|
startTime?: Date;
|
|
745
|
+
/** 起点纬度 ° */
|
|
366
746
|
startPositionLat?: number;
|
|
747
|
+
/** 起点经度 ° */
|
|
367
748
|
startPositionLong?: number;
|
|
749
|
+
/** 终点纬度 ° */
|
|
368
750
|
endPositionLat?: number;
|
|
751
|
+
/** 终点经度 ° */
|
|
369
752
|
endPositionLong?: number;
|
|
753
|
+
/** 圈耗时(含暂停)s */
|
|
370
754
|
totalElapsedTime?: number;
|
|
755
|
+
/** 圈计时(不含暂停)s */
|
|
371
756
|
totalTimerTime?: number;
|
|
757
|
+
/** 圈距离 m */
|
|
372
758
|
totalDistance?: number;
|
|
759
|
+
/** 圈步/踏/划次数(见子字段) */
|
|
373
760
|
totalCycles?: number;
|
|
761
|
+
/** 圈步数(running) */
|
|
374
762
|
totalStrides?: number;
|
|
763
|
+
/** 圈划水数(swimming) */
|
|
375
764
|
totalStrokes?: number;
|
|
765
|
+
/** 圈热量 kcal */
|
|
376
766
|
totalCalories?: number;
|
|
767
|
+
/** 圈脂肪热量 kcal */
|
|
377
768
|
totalFatCalories?: number;
|
|
769
|
+
/** 圈平均速度 m/s;enhancedAvgSpeed 优先 */
|
|
378
770
|
avgSpeed?: number;
|
|
771
|
+
/** 高精度圈平均速度 m/s */
|
|
379
772
|
enhancedAvgSpeed?: number;
|
|
773
|
+
/** 圈最大速度 m/s;enhancedMaxSpeed 优先 */
|
|
380
774
|
maxSpeed?: number;
|
|
775
|
+
/** 高精度圈最大速度 m/s */
|
|
381
776
|
enhancedMaxSpeed?: number;
|
|
777
|
+
/** 圈平均心率 bpm */
|
|
382
778
|
avgHeartRate?: number;
|
|
779
|
+
/** 圈最大心率 bpm */
|
|
383
780
|
maxHeartRate?: number;
|
|
781
|
+
/** 圈平均踏频/步频 rpm;子字段 avgRunningCadence */
|
|
384
782
|
avgCadence?: number;
|
|
783
|
+
/** 圈平均步频 spm(running) */
|
|
385
784
|
avgRunningCadence?: number;
|
|
785
|
+
/** 圈最大踏频/步频 rpm;子字段 maxRunningCadence */
|
|
386
786
|
maxCadence?: number;
|
|
787
|
+
/** 圈最大步频 spm(running) */
|
|
387
788
|
maxRunningCadence?: number;
|
|
789
|
+
/** 圈平均功率 W */
|
|
388
790
|
avgPower?: number;
|
|
791
|
+
/** 圈最大功率 W */
|
|
389
792
|
maxPower?: number;
|
|
793
|
+
/** 圈爬升 m */
|
|
390
794
|
totalAscent?: number;
|
|
795
|
+
/** 圈下降 m */
|
|
391
796
|
totalDescent?: number;
|
|
797
|
+
/** 强度区间(Active/Rest) */
|
|
392
798
|
intensity?: string;
|
|
799
|
+
/** 圈触发方式 time/distance/position 等 */
|
|
393
800
|
lapTrigger?: string;
|
|
801
|
+
/** 运动类型(与 session 相同) */
|
|
394
802
|
sport?: string;
|
|
803
|
+
/** 事件组(通常 0) */
|
|
395
804
|
eventGroup?: number;
|
|
805
|
+
/** 游泳趟数 */
|
|
396
806
|
numLengths?: number;
|
|
807
|
+
/** 圈标准化功率 W */
|
|
397
808
|
normalizedPower?: number;
|
|
809
|
+
/** 圈左右平衡 %(左 50-右 50) */
|
|
398
810
|
leftRightBalance?: number;
|
|
811
|
+
/** 第一趟索引(游泳) */
|
|
399
812
|
firstLengthIndex?: number;
|
|
813
|
+
/** 平均每趟划水距离 m(游泳) */
|
|
400
814
|
avgStrokeDistance?: number;
|
|
815
|
+
/** 游泳划水类型 */
|
|
401
816
|
swimStroke?: string;
|
|
817
|
+
/** 子运动类型 */
|
|
402
818
|
subSport?: string;
|
|
819
|
+
/** 有效趟数(游泳) */
|
|
403
820
|
numActiveLengths?: number;
|
|
821
|
+
/** 圈做功 J */
|
|
404
822
|
totalWork?: number;
|
|
823
|
+
/** 圈平均海拔 m;enhancedAvgAltitude 优先 */
|
|
405
824
|
avgAltitude?: number;
|
|
825
|
+
/** 高精度圈平均海拔 m */
|
|
406
826
|
enhancedAvgAltitude?: number;
|
|
827
|
+
/** 圈最大海拔 m;enhancedMaxAltitude 优先 */
|
|
407
828
|
maxAltitude?: number;
|
|
829
|
+
/** 高精度圈最大海拔 m */
|
|
408
830
|
enhancedMaxAltitude?: number;
|
|
831
|
+
/** GPS 精度 m */
|
|
409
832
|
gpsAccuracy?: number;
|
|
833
|
+
/** 圈平均坡度 % */
|
|
410
834
|
avgGrade?: number;
|
|
835
|
+
/** 圈平均正坡度 % */
|
|
411
836
|
avgPosGrade?: number;
|
|
837
|
+
/** 圈平均负坡度 % */
|
|
412
838
|
avgNegGrade?: number;
|
|
839
|
+
/** 圈最大正坡度 % */
|
|
413
840
|
maxPosGrade?: number;
|
|
841
|
+
/** 圈最大负坡度 % */
|
|
414
842
|
maxNegGrade?: number;
|
|
843
|
+
/** 圈平均温度 °C */
|
|
415
844
|
avgTemperature?: number;
|
|
845
|
+
/** 圈最高温度 °C */
|
|
416
846
|
maxTemperature?: number;
|
|
847
|
+
/** 圈总移动时间 s */
|
|
417
848
|
totalMovingTime?: number;
|
|
849
|
+
/** 圈平均上升速度 m/s */
|
|
418
850
|
avgPosVerticalSpeed?: number;
|
|
851
|
+
/** 圈平均下降速度 m/s */
|
|
419
852
|
avgNegVerticalSpeed?: number;
|
|
853
|
+
/** 圈最大上升速度 m/s */
|
|
420
854
|
maxPosVerticalSpeed?: number;
|
|
855
|
+
/** 圈最大下降速度 m/s */
|
|
421
856
|
maxNegVerticalSpeed?: number;
|
|
857
|
+
/** 圈最小心率 bpm */
|
|
422
858
|
minHeartRate?: number;
|
|
859
|
+
/** 各心率区间停留时间 s 数组 */
|
|
423
860
|
timeInHrZone?: number[];
|
|
861
|
+
/** 各速度区间停留时间 s 数组 */
|
|
424
862
|
timeInSpeedZone?: number[];
|
|
863
|
+
/** 各踏频区间停留时间 s 数组 */
|
|
425
864
|
timeInCadenceZone?: number[];
|
|
865
|
+
/** 各功率区间停留时间 s 数组 */
|
|
426
866
|
timeInPowerZone?: number[];
|
|
867
|
+
/** 重复次数(间歇) */
|
|
427
868
|
repetitionNum?: number;
|
|
869
|
+
/** 圈最小海拔 m;enhancedMinAltitude 优先 */
|
|
428
870
|
minAltitude?: number;
|
|
871
|
+
/** 高精度圈最小海拔 m */
|
|
429
872
|
enhancedMinAltitude?: number;
|
|
873
|
+
/** 训练课索引(结构化训练) */
|
|
430
874
|
wktStepIndex?: number;
|
|
875
|
+
/** 对手得分(球类) */
|
|
431
876
|
opponentScore?: number;
|
|
877
|
+
/** 每趟划水次数(游泳) */
|
|
432
878
|
strokeCount?: number[];
|
|
879
|
+
/** 各区间的次数 */
|
|
433
880
|
zoneCount?: number[];
|
|
881
|
+
/** 平均垂直振幅 cm */
|
|
434
882
|
avgVerticalOscillation?: number;
|
|
883
|
+
/** 平均触地时间占比 % */
|
|
435
884
|
avgStanceTimePercent?: number;
|
|
885
|
+
/** 平均触地时间 ms */
|
|
436
886
|
avgStanceTime?: number;
|
|
887
|
+
/** 平均小数步频 rpm */
|
|
437
888
|
avgFractionalCadence?: number;
|
|
889
|
+
/** 最大小数步频 rpm */
|
|
438
890
|
maxFractionalCadence?: number;
|
|
891
|
+
/** 圈小数步/踏次数 */
|
|
439
892
|
totalFractionalCycles?: number;
|
|
893
|
+
/** 玩家得分(球类) */
|
|
440
894
|
playerScore?: number;
|
|
895
|
+
/** 平均总血红蛋白 g/dL */
|
|
441
896
|
avgTotalHemoglobinConc?: number;
|
|
897
|
+
/** 最小总血红蛋白 g/dL */
|
|
442
898
|
minTotalHemoglobinConc?: number;
|
|
899
|
+
/** 最大总血红蛋白 g/dL */
|
|
443
900
|
maxTotalHemoglobinConc?: number;
|
|
901
|
+
/** 平均血红蛋白氧饱和度 % */
|
|
444
902
|
avgSaturatedHemoglobinPercent?: number;
|
|
903
|
+
/** 最小氧饱和度 % */
|
|
445
904
|
minSaturatedHemoglobinPercent?: number;
|
|
905
|
+
/** 最大氧饱和度 % */
|
|
446
906
|
maxSaturatedHemoglobinPercent?: number;
|
|
907
|
+
/** 左腿力矩效率 % */
|
|
447
908
|
avgLeftTorqueEffectiveness?: number;
|
|
909
|
+
/** 右腿力矩效率 % */
|
|
448
910
|
avgRightTorqueEffectiveness?: number;
|
|
911
|
+
/** 左踩踏平滑度 % */
|
|
449
912
|
avgLeftPedalSmoothness?: number;
|
|
913
|
+
/** 右踩踏平滑度 % */
|
|
450
914
|
avgRightPedalSmoothness?: number;
|
|
915
|
+
/** 综合踩踏平滑度 % */
|
|
451
916
|
avgCombinedPedalSmoothness?: number;
|
|
917
|
+
/** 圈站立时间 s(骑行) */
|
|
452
918
|
timeStanding?: number;
|
|
919
|
+
/** 圈站立次数(骑行) */
|
|
453
920
|
standCount?: number;
|
|
921
|
+
/** 平均左踏板中心偏移 mm */
|
|
454
922
|
avgLeftPco?: number;
|
|
923
|
+
/** 平均右踏板中心偏移 mm */
|
|
455
924
|
avgRightPco?: number;
|
|
925
|
+
/** 平均左发力相位 ° */
|
|
456
926
|
avgLeftPowerPhase?: number[];
|
|
927
|
+
/** 平均左峰值相位 ° */
|
|
457
928
|
avgLeftPowerPhasePeak?: number[];
|
|
929
|
+
/** 平均右发力相位 ° */
|
|
458
930
|
avgRightPowerPhase?: number[];
|
|
931
|
+
/** 平均右峰值相位 ° */
|
|
459
932
|
avgRightPowerPhasePeak?: number[];
|
|
933
|
+
/** 坐/站平均功率 W */
|
|
460
934
|
avgPowerPosition?: number[];
|
|
935
|
+
/** 坐/站最大功率 W */
|
|
461
936
|
maxPowerPosition?: number[];
|
|
937
|
+
/** 坐/站平均踏频 rpm */
|
|
462
938
|
avgCadencePosition?: number[];
|
|
939
|
+
/** 坐/站最大踏频 rpm */
|
|
463
940
|
maxCadencePosition?: number[];
|
|
941
|
+
/** 平均电机功率 W(eBike) */
|
|
464
942
|
avgLevMotorPower?: number;
|
|
943
|
+
/** 最大电机功率 W(eBike) */
|
|
465
944
|
maxLevMotorPower?: number;
|
|
945
|
+
/** 电池消耗 %(eBike) */
|
|
466
946
|
levBatteryConsumption?: number;
|
|
947
|
+
/** 平均垂直率 % */
|
|
467
948
|
avgVerticalRatio?: number;
|
|
949
|
+
/** 平均左右触地平衡 % */
|
|
468
950
|
avgStanceTimeBalance?: number;
|
|
951
|
+
/** 平均步长 cm */
|
|
469
952
|
avgStepLength?: number;
|
|
953
|
+
/** 平均 VAM m/s */
|
|
470
954
|
avgVam?: number;
|
|
955
|
+
/** 平均深度 m(潜水) */
|
|
471
956
|
avgDepth?: number;
|
|
957
|
+
/** 最大深度 m(潜水) */
|
|
472
958
|
maxDepth?: number;
|
|
959
|
+
/** 最低温度 °C */
|
|
473
960
|
minTemperature?: number;
|
|
961
|
+
/** 高精度平均呼吸率 breaths/min;65535=无效 */
|
|
474
962
|
enhancedAvgRespirationRate?: number;
|
|
963
|
+
/** 高精度最大呼吸率 breaths/min;65535=无效 */
|
|
475
964
|
enhancedMaxRespirationRate?: number;
|
|
965
|
+
/** 平均呼吸率 breaths/min;255=无效 */
|
|
476
966
|
avgRespirationRate?: number;
|
|
967
|
+
/** 最大呼吸率 breaths/min;255=无效 */
|
|
477
968
|
maxRespirationRate?: number;
|
|
969
|
+
/** 总地形崎岖度 kGrit */
|
|
478
970
|
totalGrit?: number;
|
|
971
|
+
/** 总流畅度 Flow */
|
|
479
972
|
totalFlow?: number;
|
|
973
|
+
/** 跳跃次数(山地车) */
|
|
480
974
|
jumpCount?: number;
|
|
975
|
+
/** 平均崎岖度 kGrit */
|
|
481
976
|
avgGrit?: number;
|
|
977
|
+
/** 平均流畅度 Flow */
|
|
482
978
|
avgFlow?: number;
|
|
979
|
+
/** 小数爬升 m */
|
|
483
980
|
totalFractionalAscent?: number;
|
|
981
|
+
/** 小数下降 m */
|
|
484
982
|
totalFractionalDescent?: number;
|
|
983
|
+
/** 平均核心体温 °C */
|
|
485
984
|
avgCoreTemperature?: number;
|
|
985
|
+
/** 最低核心体温 °C */
|
|
486
986
|
minCoreTemperature?: number;
|
|
987
|
+
/** 最高核心体温 °C */
|
|
487
988
|
maxCoreTemperature?: number;
|
|
488
989
|
recordMesgs?: RecordMesgType[];
|
|
489
990
|
lengthMesgs?: LengthMesgType[];
|
|
@@ -497,15 +998,23 @@ export interface ActivityMesgType {
|
|
|
497
998
|
eventType?: string;
|
|
498
999
|
[key: string]: number | string | undefined | any;
|
|
499
1000
|
}
|
|
1001
|
+
/**
|
|
1002
|
+
* FIT message processing context
|
|
1003
|
+
*/
|
|
500
1004
|
export interface FITContext extends IProcessingContext {
|
|
1005
|
+
/** Raw binary data */
|
|
501
1006
|
rawData?: Buffer;
|
|
1007
|
+
/** Raw messages parsed by FIT SDK */
|
|
502
1008
|
rawMessages?: FITDecoderMesgs;
|
|
1009
|
+
/** Final result */
|
|
503
1010
|
result?: FITFileType;
|
|
1011
|
+
/** FIT file header information */
|
|
504
1012
|
fileHeader?: {
|
|
505
1013
|
type?: string;
|
|
506
1014
|
manufacturer?: string;
|
|
507
1015
|
product?: number;
|
|
508
1016
|
};
|
|
1017
|
+
/** FIT specific performance statistics */
|
|
509
1018
|
performance: {
|
|
510
1019
|
startTime: number;
|
|
511
1020
|
parseTime?: number;
|