trackswap 0.0.1 → 0.0.2

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.
Files changed (78) hide show
  1. package/dist/FIT/base.d.ts +91 -0
  2. package/dist/FIT/base.js +101 -0
  3. package/dist/FIT/crc.d.ts +1 -0
  4. package/dist/FIT/crc.js +16 -0
  5. package/dist/FIT/decoder.d.ts +83 -0
  6. package/dist/FIT/decoder.js +323 -0
  7. package/dist/FIT/encoder.d.ts +142 -0
  8. package/dist/FIT/encoder.js +445 -0
  9. package/dist/FIT/index.d.ts +12 -0
  10. package/dist/FIT/index.js +13 -0
  11. package/dist/FIT/mesg.d.ts +40 -0
  12. package/dist/FIT/mesg.js +208 -0
  13. package/dist/FIT/middleware.d.ts +48 -0
  14. package/dist/FIT/middleware.js +206 -0
  15. package/dist/FIT/plugins.d.ts +26 -0
  16. package/dist/FIT/plugins.js +104 -0
  17. package/dist/FIT/processor.d.ts +58 -0
  18. package/dist/FIT/processor.js +170 -0
  19. package/dist/FIT/types/course_point.d.ts +56 -0
  20. package/dist/FIT/types/course_point.js +58 -0
  21. package/dist/FIT/types/event.d.ts +49 -0
  22. package/dist/FIT/types/event.js +50 -0
  23. package/dist/FIT/types/event_type.d.ts +18 -0
  24. package/dist/FIT/types/event_type.js +19 -0
  25. package/dist/FIT/types/file.d.ts +23 -0
  26. package/dist/FIT/types/file.js +24 -0
  27. package/dist/FIT/types/index.d.ts +119 -0
  28. package/dist/FIT/types/index.js +297 -0
  29. package/dist/FIT/types/mesg_num.d.ts +105 -0
  30. package/dist/FIT/types/mesg_num.js +106 -0
  31. package/dist/FIT/types/sport.d.ts +47 -0
  32. package/dist/FIT/types/sport.js +48 -0
  33. package/dist/FIT/types.d.ts +231 -0
  34. package/dist/FIT/types.js +1 -0
  35. package/dist/FIT/util.d.ts +1 -0
  36. package/dist/FIT/util.js +7 -0
  37. package/dist/GPX/base.d.ts +43 -67
  38. package/dist/GPX/base.js +40 -67
  39. package/dist/GPX/converters.d.ts +12 -36
  40. package/dist/GPX/converters.js +11 -103
  41. package/dist/GPX/decoder.d.ts +5 -5
  42. package/dist/GPX/decoder.js +6 -0
  43. package/dist/GPX/encoder.d.ts +4 -0
  44. package/dist/GPX/encoder.js +3 -0
  45. package/dist/GPX/index.d.ts +1 -1
  46. package/dist/GPX/index.js +1 -1
  47. package/dist/GPX/middleware.d.ts +27 -0
  48. package/dist/GPX/middleware.js +93 -0
  49. package/dist/GPX/processor.d.ts +1 -1
  50. package/dist/GPX/processor.js +12 -11
  51. package/dist/GPX/types.d.ts +2 -3
  52. package/dist/TCX/base.d.ts +52 -0
  53. package/dist/TCX/base.js +62 -0
  54. package/dist/TCX/converters.d.ts +75 -0
  55. package/dist/TCX/converters.js +333 -0
  56. package/dist/TCX/decoder.d.ts +87 -0
  57. package/dist/TCX/decoder.js +350 -0
  58. package/dist/TCX/encoder.d.ts +150 -0
  59. package/dist/TCX/encoder.js +513 -0
  60. package/dist/TCX/index.d.ts +10 -0
  61. package/dist/TCX/index.js +9 -0
  62. package/dist/TCX/middleware.d.ts +27 -0
  63. package/dist/TCX/middleware.js +93 -0
  64. package/dist/TCX/processor.d.ts +48 -0
  65. package/dist/TCX/processor.js +197 -0
  66. package/dist/TCX/types.d.ts +203 -0
  67. package/dist/TCX/types.js +1 -0
  68. package/dist/core/base.d.ts +119 -0
  69. package/dist/core/base.js +138 -0
  70. package/dist/core/decoder.d.ts +66 -0
  71. package/dist/core/decoder.js +90 -0
  72. package/dist/core/index.d.ts +2 -0
  73. package/dist/core/index.js +4 -0
  74. package/dist/core/processor.d.ts +69 -0
  75. package/dist/core/processor.js +265 -0
  76. package/dist/core/xml-utils.d.ts +41 -0
  77. package/dist/core/xml-utils.js +140 -0
  78. package/package.json +8 -5
@@ -0,0 +1,297 @@
1
+ // FIT types mapping
2
+ // 简化的枚举映射
3
+ const enum_maps = {
4
+ file: {
5
+ course: 6,
6
+ device: 1,
7
+ settings: 2,
8
+ sport: 3,
9
+ activity: 4,
10
+ workout: 5,
11
+ schedules: 7,
12
+ weight: 9,
13
+ totals: 10,
14
+ goals: 11,
15
+ blood_pressure: 14,
16
+ monitoring_a: 15,
17
+ activity_summary: 20,
18
+ monitoring_daily: 28,
19
+ monitoring_b: 32,
20
+ segment_list: 35,
21
+ exd_configuration: 40,
22
+ invalid: 0,
23
+ },
24
+ sport: {
25
+ generic: 0,
26
+ running: 1,
27
+ cycling: 2,
28
+ transition: 3,
29
+ fitness_equipment: 4,
30
+ swimming: 5,
31
+ basketball: 6,
32
+ soccer: 7,
33
+ tennis: 8,
34
+ american_football: 9,
35
+ training: 10,
36
+ walking: 11,
37
+ cross_country_skiing: 12,
38
+ alpine_skiing: 13,
39
+ snowboarding: 14,
40
+ rowing: 15,
41
+ mountaineering: 16,
42
+ hiking: 17,
43
+ multisport: 18,
44
+ paddling: 19,
45
+ invalid: 254,
46
+ },
47
+ event: {
48
+ timer: 0,
49
+ workout: 3,
50
+ workout_step: 4,
51
+ power_down: 5,
52
+ power_up: 6,
53
+ off_course: 7,
54
+ session: 8,
55
+ lap: 9,
56
+ course_point: 10,
57
+ battery: 11,
58
+ virtual_partner_pace: 12,
59
+ hr_high_alert: 13,
60
+ hr_low_alert: 14,
61
+ speed_high_alert: 15,
62
+ speed_low_alert: 16,
63
+ cad_high_alert: 17,
64
+ cad_low_alert: 18,
65
+ power_high_alert: 19,
66
+ power_low_alert: 20,
67
+ recovery_hr: 21,
68
+ battery_low: 22,
69
+ time_duration_alert: 23,
70
+ distance_duration_alert: 24,
71
+ calorie_duration_alert: 25,
72
+ activity: 26,
73
+ fitness_equipment: 27,
74
+ length: 28,
75
+ user_marker: 32,
76
+ sport_point: 33,
77
+ calibration: 36,
78
+ front_gear_change: 42,
79
+ rear_gear_change: 43,
80
+ rider_position_change: 44,
81
+ elev_high_alert: 45,
82
+ elev_low_alert: 46,
83
+ comm_timeout: 47,
84
+ invalid: 255,
85
+ },
86
+ event_type: {
87
+ start: 0,
88
+ stop: 1,
89
+ consecutive_depreciated: 2,
90
+ marker: 3,
91
+ stop_all: 4,
92
+ begin_depreciated: 5,
93
+ end_depreciated: 6,
94
+ end_all_depreciated: 7,
95
+ stop_disable: 8,
96
+ stop_disable_all: 9,
97
+ invalid: 255,
98
+ },
99
+ course_point: {
100
+ generic: 0,
101
+ summit: 1,
102
+ valley: 2,
103
+ water: 3,
104
+ food: 4,
105
+ danger: 5,
106
+ left: 6,
107
+ right: 7,
108
+ straight: 8,
109
+ first_aid: 9,
110
+ fourth_category: 10,
111
+ third_category: 11,
112
+ second_category: 12,
113
+ first_category: 13,
114
+ hors_category: 14,
115
+ sprint: 15,
116
+ left_fork: 16,
117
+ right_fork: 17,
118
+ middle_fork: 18,
119
+ slight_left: 19,
120
+ sharp_left: 20,
121
+ slight_right: 21,
122
+ sharp_right: 22,
123
+ u_turn: 23,
124
+ segment_start: 24,
125
+ segment_end: 25,
126
+ invalid: 255,
127
+ },
128
+ };
129
+ const _enum = (name) => {
130
+ const enum_map = enum_maps[name];
131
+ return {
132
+ size: 1,
133
+ baseType: 0,
134
+ mapValue: (value) => {
135
+ if (typeof value === "string") {
136
+ return enum_map[value] ?? 255;
137
+ }
138
+ return value;
139
+ },
140
+ setValue: function (byteOffset, value) {
141
+ this.setUint8(byteOffset, value);
142
+ },
143
+ };
144
+ };
145
+ export const types = {
146
+ enum_file: _enum("file"),
147
+ enum_activity: _enum("sport"),
148
+ enum_sport: _enum("sport"),
149
+ enum_sub_sport: _enum("sport"),
150
+ enum_event: _enum("event"),
151
+ enum_event_type: _enum("event_type"),
152
+ enum_course_point: _enum("course_point"),
153
+ uint8: {
154
+ size: 1,
155
+ baseType: 2,
156
+ setValue: DataView.prototype.setUint8,
157
+ },
158
+ sint8: {
159
+ size: 1,
160
+ baseType: 1,
161
+ setValue: DataView.prototype.setInt8,
162
+ },
163
+ uint16: {
164
+ size: 2,
165
+ baseType: 0x84,
166
+ setValue: DataView.prototype.setUint16,
167
+ },
168
+ sint16: {
169
+ size: 2,
170
+ baseType: 0x83,
171
+ setValue: DataView.prototype.setInt16,
172
+ },
173
+ uint32: {
174
+ size: 4,
175
+ baseType: 0x86,
176
+ setValue: DataView.prototype.setUint32,
177
+ },
178
+ sint32: {
179
+ size: 4,
180
+ baseType: 0x85,
181
+ setValue: DataView.prototype.setInt32,
182
+ },
183
+ string: {
184
+ size: 0, // Variable size
185
+ baseType: 7,
186
+ mapValue: (value) => Array.from(encodedStr(value)),
187
+ setValue: dvSetUint8Array,
188
+ },
189
+ distance: {
190
+ size: 4,
191
+ baseType: 0x86,
192
+ setValue: DataView.prototype.setUint32,
193
+ mapValue: (value) => Math.round(value * 1000),
194
+ },
195
+ speed: {
196
+ size: 2,
197
+ baseType: 0x84,
198
+ setValue: DataView.prototype.setUint16,
199
+ mapValue: (value) => Math.round(value * 100),
200
+ },
201
+ altitude: {
202
+ size: 2,
203
+ baseType: 0x84,
204
+ setValue: DataView.prototype.setUint16,
205
+ mapValue: (value) => Math.round((value + 500) * 5),
206
+ },
207
+ seconds: {
208
+ size: 4,
209
+ baseType: 0x86,
210
+ setValue: DataView.prototype.setUint32,
211
+ mapValue: (value) => Math.round(value * 1000),
212
+ },
213
+ date_time: {
214
+ size: 4,
215
+ baseType: 0x86,
216
+ setValue: DataView.prototype.setUint32,
217
+ mapValue: (value) => {
218
+ let timestamp;
219
+ if (value instanceof Date) {
220
+ timestamp = Math.floor(value.getTime() / 1000);
221
+ // 转换为FIT时间戳:Unix时间戳 - FIT epoch偏移量
222
+ return timestamp - 631065600;
223
+ }
224
+ else if (typeof value === "string") {
225
+ timestamp = Math.floor(new Date(value).getTime() / 1000);
226
+ // 转换为FIT时间戳:Unix时间戳 - FIT epoch偏移量
227
+ return timestamp - 631065600;
228
+ }
229
+ else {
230
+ // 如果输入的数字值看起来像是FIT时间戳(小于Unix时间戳),直接返回
231
+ // FIT时间戳从1989开始,所以值通常比较小
232
+ if (value < 631065600) {
233
+ // 直接返回,假设已经是FIT时间戳
234
+ return Math.floor(value);
235
+ }
236
+ // 否则处理为Unix时间戳
237
+ if (value > 9999999999) {
238
+ // 毫秒级时间戳
239
+ timestamp = Math.floor(value / 1000);
240
+ }
241
+ else {
242
+ // 秒级时间戳
243
+ timestamp = Math.floor(value);
244
+ }
245
+ // 转换为FIT时间戳:Unix时间戳 - FIT epoch偏移量
246
+ return timestamp - 631065600;
247
+ }
248
+ }, // "1989-12-31T00:00" epoch
249
+ },
250
+ semicircles: {
251
+ size: 4,
252
+ baseType: 0x85,
253
+ setValue: DataView.prototype.setInt32,
254
+ mapValue: (value) => Math.round((value / 180) * 0x80000000),
255
+ },
256
+ };
257
+ export function encodedStrlen(str) {
258
+ // Calculate the byte length of a UTF-8 encoded string
259
+ return Array.from(encodedStr(str)).length + 1; // +1 for null terminator
260
+ }
261
+ function* encodedStr(s) {
262
+ for (const codePoint of codePoints(s)) {
263
+ if (codePoint < 0x80) {
264
+ yield codePoint;
265
+ }
266
+ else if (codePoint < 0x800) {
267
+ yield 0xc0 | (codePoint >> 6);
268
+ yield 0x80 | (codePoint & 0x3f);
269
+ }
270
+ else if (codePoint < 0x10000) {
271
+ yield 0xe0 | (codePoint >> 12);
272
+ yield 0x80 | ((codePoint >> 6) & 0x3f);
273
+ yield 0x80 | (codePoint & 0x3f);
274
+ }
275
+ else {
276
+ yield 0xf0 | (codePoint >> 18);
277
+ yield 0x80 | ((codePoint >> 12) & 0x3f);
278
+ yield 0x80 | ((codePoint >> 6) & 0x3f);
279
+ yield 0x80 | (codePoint & 0x3f);
280
+ }
281
+ }
282
+ yield 0; // null terminator
283
+ }
284
+ function* codePoints(s) {
285
+ for (let i = 0; i < s.length;) {
286
+ const cp = s.codePointAt(i);
287
+ if (cp === undefined)
288
+ break;
289
+ yield cp;
290
+ i += cp > 0xffff ? 2 : 1;
291
+ }
292
+ }
293
+ function dvSetUint8Array(offset, values) {
294
+ for (let i = 0; i < values.length; i++) {
295
+ this.setUint8(offset + i, values[i]);
296
+ }
297
+ }
@@ -0,0 +1,105 @@
1
+ export declare enum MesgNum {
2
+ FILE_ID = 0,// 文件标识
3
+ CAPABILITIES = 1,// 设备能力
4
+ DEVICE_SETTINGS = 2,// 设备设置
5
+ USER_PROFILE = 3,// 用户档案
6
+ HRM_PROFILE = 4,// 心率监测器档案
7
+ SDM_PROFILE = 5,// 速度距离监测器档案
8
+ BIKE_PROFILE = 6,// 自行车档案
9
+ ZONES_TARGET = 7,// 区间目标
10
+ HR_ZONE = 8,// 心率区间
11
+ POWER_ZONE = 9,// 功率区间
12
+ MET_ZONE = 10,// 代谢当量区间
13
+ SPORT = 12,// 运动类型
14
+ GOAL = 15,// 目标
15
+ SESSION = 18,// 运动段
16
+ LAP = 19,// 计圈
17
+ RECORD = 20,// 记录点
18
+ EVENT = 21,// 事件
19
+ DEVICE_INFO = 23,// 设备信息
20
+ WORKOUT = 26,// 训练
21
+ WORKOUT_STEP = 27,// 训练步骤
22
+ SCHEDULE = 28,// 日程安排
23
+ WEIGHT_SCALE = 30,// 体重秤
24
+ COURSE = 31,// 路线
25
+ COURSE_POINT = 32,// 路线点
26
+ TOTALS = 33,// 总计
27
+ ACTIVITY = 34,// 活动
28
+ SOFTWARE = 35,// 软件
29
+ FILE_CAPABILITIES = 37,// 文件能力
30
+ MESG_CAPABILITIES = 38,// 消息能力
31
+ FIELD_CAPABILITIES = 39,// 字段能力
32
+ FILE_CREATOR = 49,// 文件创建者
33
+ BLOOD_PRESSURE = 51,// 血压
34
+ SPEED_ZONE = 53,// 速度区间
35
+ MONITORING = 55,// 监测
36
+ TRAINING_FILE = 72,// 训练文件
37
+ HRV = 78,// 心率变异性
38
+ ANT_RX = 80,// ANT接收
39
+ ANT_TX = 81,// ANT发送
40
+ ANT_CHANNEL_ID = 82,// ANT通道ID
41
+ LENGTH = 101,// 长度
42
+ MONITORING_INFO = 103,// 监测信息
43
+ PAD = 105,// 填充
44
+ SLAVE_DEVICE = 106,// 从设备
45
+ CONNECTIVITY = 127,// 连接性
46
+ WEATHER_CONDITIONS = 128,// 天气状况
47
+ WEATHER_ALERT = 129,// 天气预警
48
+ CADENCE_ZONE = 131,// 步频区间
49
+ HR = 132,// 心率
50
+ SEGMENT_LAP = 142,// 段落计圈
51
+ MEMO_GLOB = 145,// 备忘录
52
+ SEGMENT_ID = 148,// 段落ID
53
+ SEGMENT_LEADERBOARD_ENTRY = 149,// 段落排行榜条目
54
+ SEGMENT_POINT = 150,// 段落点
55
+ SEGMENT_FILE = 151,// 段落文件
56
+ WORKOUT_SESSION = 158,// 训练段
57
+ WATCHFACE_SETTINGS = 159,// 表盘设置
58
+ GPS_METADATA = 160,// GPS元数据
59
+ CAMERA_EVENT = 161,// 相机事件
60
+ TIMESTAMP_CORRELATION = 162,// 时间戳关联
61
+ GYROSCOPE_DATA = 164,// 陀螺仪数据
62
+ ACCELEROMETER_DATA = 165,// 加速度计数据
63
+ THREE_D_SENSOR_CALIBRATION = 167,// 3D传感器校准
64
+ VIDEO_FRAME = 169,// 视频帧
65
+ OBDII_DATA = 174,// OBD-II数据
66
+ NMEA_SENTENCE = 177,// NMEA语句
67
+ AVIATION_ATTITUDE = 178,// 航空姿态
68
+ VIDEO = 184,// 视频
69
+ VIDEO_TITLE = 185,// 视频标题
70
+ VIDEO_DESCRIPTION = 186,// 视频描述
71
+ VIDEO_CLIP = 187,// 视频片段
72
+ SET = 225,// 组
73
+ JUMP = 285,// 跳跃
74
+ CLIMB_PRO = 317,// 攀爬专业
75
+ FIELD_DESCRIPTION = 206,// 字段描述
76
+ DEVELOPER_DATA_ID = 207,// 开发者数据ID
77
+ MAGNETOMETER_DATA = 208,// 磁力计数据
78
+ BAROMETER_DATA = 209,// 气压计数据
79
+ ONE_D_SENSOR_CALIBRATION = 210,// 1D传感器校准
80
+ MONITORING_HR_DATA = 211,// 心率监测数据
81
+ TIME_IN_ZONE = 216,// 区间时间
82
+ DIVE_SETTINGS = 258,// 潜水设置
83
+ DIVE_GAS = 259,// 潜水气体
84
+ DIVE_ALARM = 262,// 潜水警报
85
+ EXERCISE_TITLE = 264,// 运动标题
86
+ DIVE_SUMMARY = 268,// 潜水总结
87
+ SPLIT = 312,// 分段
88
+ SPLIT_SUMMARY = 313,// 分段总结
89
+ HSA_BODY_BATTERY_DATA = 314,// 身体电量数据
90
+ HSA_EVENT = 315,// HSA事件
91
+ TANK_UPDATE = 319,// 水箱更新
92
+ TANK_SUMMARY = 323,// 水箱总结
93
+ SLEEP_ASSESSMENT = 346,// 睡眠评估
94
+ HRV_STATUS_SUMMARY = 370,// 心率变异性状态总结
95
+ HRV_VALUE = 371,// 心率变异性值
96
+ RAW_BBI = 372,// 原始心跳间隔
97
+ DEVICE_AUX_BATTERY_INFO = 375,// 设备辅助电池信息
98
+ HSA_GYROSCOPE_DATA = 376,// HSA陀螺仪数据
99
+ CHRONO_SHOT_SESSION = 387,// 计时拍摄会话
100
+ CHRONO_SHOT_DATA = 388,// 计时拍摄数据
101
+ HSA_CONFIGURATION_DATA = 389,// HSA配置数据
102
+ DIVE_APNEA_ALARM = 393,// 屏息潜水警报
103
+ SKIN_TEMP_OVERNIGHT = 398,// 夜间皮肤温度
104
+ HSA_WRIST_TEMPERATURE_DATA = 409
105
+ }
@@ -0,0 +1,106 @@
1
+ export var MesgNum;
2
+ (function (MesgNum) {
3
+ MesgNum[MesgNum["FILE_ID"] = 0] = "FILE_ID";
4
+ MesgNum[MesgNum["CAPABILITIES"] = 1] = "CAPABILITIES";
5
+ MesgNum[MesgNum["DEVICE_SETTINGS"] = 2] = "DEVICE_SETTINGS";
6
+ MesgNum[MesgNum["USER_PROFILE"] = 3] = "USER_PROFILE";
7
+ MesgNum[MesgNum["HRM_PROFILE"] = 4] = "HRM_PROFILE";
8
+ MesgNum[MesgNum["SDM_PROFILE"] = 5] = "SDM_PROFILE";
9
+ MesgNum[MesgNum["BIKE_PROFILE"] = 6] = "BIKE_PROFILE";
10
+ MesgNum[MesgNum["ZONES_TARGET"] = 7] = "ZONES_TARGET";
11
+ MesgNum[MesgNum["HR_ZONE"] = 8] = "HR_ZONE";
12
+ MesgNum[MesgNum["POWER_ZONE"] = 9] = "POWER_ZONE";
13
+ MesgNum[MesgNum["MET_ZONE"] = 10] = "MET_ZONE";
14
+ MesgNum[MesgNum["SPORT"] = 12] = "SPORT";
15
+ MesgNum[MesgNum["GOAL"] = 15] = "GOAL";
16
+ MesgNum[MesgNum["SESSION"] = 18] = "SESSION";
17
+ MesgNum[MesgNum["LAP"] = 19] = "LAP";
18
+ MesgNum[MesgNum["RECORD"] = 20] = "RECORD";
19
+ MesgNum[MesgNum["EVENT"] = 21] = "EVENT";
20
+ MesgNum[MesgNum["DEVICE_INFO"] = 23] = "DEVICE_INFO";
21
+ MesgNum[MesgNum["WORKOUT"] = 26] = "WORKOUT";
22
+ MesgNum[MesgNum["WORKOUT_STEP"] = 27] = "WORKOUT_STEP";
23
+ MesgNum[MesgNum["SCHEDULE"] = 28] = "SCHEDULE";
24
+ MesgNum[MesgNum["WEIGHT_SCALE"] = 30] = "WEIGHT_SCALE";
25
+ MesgNum[MesgNum["COURSE"] = 31] = "COURSE";
26
+ MesgNum[MesgNum["COURSE_POINT"] = 32] = "COURSE_POINT";
27
+ MesgNum[MesgNum["TOTALS"] = 33] = "TOTALS";
28
+ MesgNum[MesgNum["ACTIVITY"] = 34] = "ACTIVITY";
29
+ MesgNum[MesgNum["SOFTWARE"] = 35] = "SOFTWARE";
30
+ MesgNum[MesgNum["FILE_CAPABILITIES"] = 37] = "FILE_CAPABILITIES";
31
+ MesgNum[MesgNum["MESG_CAPABILITIES"] = 38] = "MESG_CAPABILITIES";
32
+ MesgNum[MesgNum["FIELD_CAPABILITIES"] = 39] = "FIELD_CAPABILITIES";
33
+ MesgNum[MesgNum["FILE_CREATOR"] = 49] = "FILE_CREATOR";
34
+ MesgNum[MesgNum["BLOOD_PRESSURE"] = 51] = "BLOOD_PRESSURE";
35
+ MesgNum[MesgNum["SPEED_ZONE"] = 53] = "SPEED_ZONE";
36
+ MesgNum[MesgNum["MONITORING"] = 55] = "MONITORING";
37
+ MesgNum[MesgNum["TRAINING_FILE"] = 72] = "TRAINING_FILE";
38
+ MesgNum[MesgNum["HRV"] = 78] = "HRV";
39
+ MesgNum[MesgNum["ANT_RX"] = 80] = "ANT_RX";
40
+ MesgNum[MesgNum["ANT_TX"] = 81] = "ANT_TX";
41
+ MesgNum[MesgNum["ANT_CHANNEL_ID"] = 82] = "ANT_CHANNEL_ID";
42
+ MesgNum[MesgNum["LENGTH"] = 101] = "LENGTH";
43
+ MesgNum[MesgNum["MONITORING_INFO"] = 103] = "MONITORING_INFO";
44
+ MesgNum[MesgNum["PAD"] = 105] = "PAD";
45
+ MesgNum[MesgNum["SLAVE_DEVICE"] = 106] = "SLAVE_DEVICE";
46
+ MesgNum[MesgNum["CONNECTIVITY"] = 127] = "CONNECTIVITY";
47
+ MesgNum[MesgNum["WEATHER_CONDITIONS"] = 128] = "WEATHER_CONDITIONS";
48
+ MesgNum[MesgNum["WEATHER_ALERT"] = 129] = "WEATHER_ALERT";
49
+ MesgNum[MesgNum["CADENCE_ZONE"] = 131] = "CADENCE_ZONE";
50
+ MesgNum[MesgNum["HR"] = 132] = "HR";
51
+ MesgNum[MesgNum["SEGMENT_LAP"] = 142] = "SEGMENT_LAP";
52
+ MesgNum[MesgNum["MEMO_GLOB"] = 145] = "MEMO_GLOB";
53
+ MesgNum[MesgNum["SEGMENT_ID"] = 148] = "SEGMENT_ID";
54
+ MesgNum[MesgNum["SEGMENT_LEADERBOARD_ENTRY"] = 149] = "SEGMENT_LEADERBOARD_ENTRY";
55
+ MesgNum[MesgNum["SEGMENT_POINT"] = 150] = "SEGMENT_POINT";
56
+ MesgNum[MesgNum["SEGMENT_FILE"] = 151] = "SEGMENT_FILE";
57
+ MesgNum[MesgNum["WORKOUT_SESSION"] = 158] = "WORKOUT_SESSION";
58
+ MesgNum[MesgNum["WATCHFACE_SETTINGS"] = 159] = "WATCHFACE_SETTINGS";
59
+ MesgNum[MesgNum["GPS_METADATA"] = 160] = "GPS_METADATA";
60
+ MesgNum[MesgNum["CAMERA_EVENT"] = 161] = "CAMERA_EVENT";
61
+ MesgNum[MesgNum["TIMESTAMP_CORRELATION"] = 162] = "TIMESTAMP_CORRELATION";
62
+ MesgNum[MesgNum["GYROSCOPE_DATA"] = 164] = "GYROSCOPE_DATA";
63
+ MesgNum[MesgNum["ACCELEROMETER_DATA"] = 165] = "ACCELEROMETER_DATA";
64
+ MesgNum[MesgNum["THREE_D_SENSOR_CALIBRATION"] = 167] = "THREE_D_SENSOR_CALIBRATION";
65
+ MesgNum[MesgNum["VIDEO_FRAME"] = 169] = "VIDEO_FRAME";
66
+ MesgNum[MesgNum["OBDII_DATA"] = 174] = "OBDII_DATA";
67
+ MesgNum[MesgNum["NMEA_SENTENCE"] = 177] = "NMEA_SENTENCE";
68
+ MesgNum[MesgNum["AVIATION_ATTITUDE"] = 178] = "AVIATION_ATTITUDE";
69
+ MesgNum[MesgNum["VIDEO"] = 184] = "VIDEO";
70
+ MesgNum[MesgNum["VIDEO_TITLE"] = 185] = "VIDEO_TITLE";
71
+ MesgNum[MesgNum["VIDEO_DESCRIPTION"] = 186] = "VIDEO_DESCRIPTION";
72
+ MesgNum[MesgNum["VIDEO_CLIP"] = 187] = "VIDEO_CLIP";
73
+ MesgNum[MesgNum["SET"] = 225] = "SET";
74
+ MesgNum[MesgNum["JUMP"] = 285] = "JUMP";
75
+ MesgNum[MesgNum["CLIMB_PRO"] = 317] = "CLIMB_PRO";
76
+ MesgNum[MesgNum["FIELD_DESCRIPTION"] = 206] = "FIELD_DESCRIPTION";
77
+ MesgNum[MesgNum["DEVELOPER_DATA_ID"] = 207] = "DEVELOPER_DATA_ID";
78
+ MesgNum[MesgNum["MAGNETOMETER_DATA"] = 208] = "MAGNETOMETER_DATA";
79
+ MesgNum[MesgNum["BAROMETER_DATA"] = 209] = "BAROMETER_DATA";
80
+ MesgNum[MesgNum["ONE_D_SENSOR_CALIBRATION"] = 210] = "ONE_D_SENSOR_CALIBRATION";
81
+ MesgNum[MesgNum["MONITORING_HR_DATA"] = 211] = "MONITORING_HR_DATA";
82
+ MesgNum[MesgNum["TIME_IN_ZONE"] = 216] = "TIME_IN_ZONE";
83
+ MesgNum[MesgNum["DIVE_SETTINGS"] = 258] = "DIVE_SETTINGS";
84
+ MesgNum[MesgNum["DIVE_GAS"] = 259] = "DIVE_GAS";
85
+ MesgNum[MesgNum["DIVE_ALARM"] = 262] = "DIVE_ALARM";
86
+ MesgNum[MesgNum["EXERCISE_TITLE"] = 264] = "EXERCISE_TITLE";
87
+ MesgNum[MesgNum["DIVE_SUMMARY"] = 268] = "DIVE_SUMMARY";
88
+ MesgNum[MesgNum["SPLIT"] = 312] = "SPLIT";
89
+ MesgNum[MesgNum["SPLIT_SUMMARY"] = 313] = "SPLIT_SUMMARY";
90
+ MesgNum[MesgNum["HSA_BODY_BATTERY_DATA"] = 314] = "HSA_BODY_BATTERY_DATA";
91
+ MesgNum[MesgNum["HSA_EVENT"] = 315] = "HSA_EVENT";
92
+ MesgNum[MesgNum["TANK_UPDATE"] = 319] = "TANK_UPDATE";
93
+ MesgNum[MesgNum["TANK_SUMMARY"] = 323] = "TANK_SUMMARY";
94
+ MesgNum[MesgNum["SLEEP_ASSESSMENT"] = 346] = "SLEEP_ASSESSMENT";
95
+ MesgNum[MesgNum["HRV_STATUS_SUMMARY"] = 370] = "HRV_STATUS_SUMMARY";
96
+ MesgNum[MesgNum["HRV_VALUE"] = 371] = "HRV_VALUE";
97
+ MesgNum[MesgNum["RAW_BBI"] = 372] = "RAW_BBI";
98
+ MesgNum[MesgNum["DEVICE_AUX_BATTERY_INFO"] = 375] = "DEVICE_AUX_BATTERY_INFO";
99
+ MesgNum[MesgNum["HSA_GYROSCOPE_DATA"] = 376] = "HSA_GYROSCOPE_DATA";
100
+ MesgNum[MesgNum["CHRONO_SHOT_SESSION"] = 387] = "CHRONO_SHOT_SESSION";
101
+ MesgNum[MesgNum["CHRONO_SHOT_DATA"] = 388] = "CHRONO_SHOT_DATA";
102
+ MesgNum[MesgNum["HSA_CONFIGURATION_DATA"] = 389] = "HSA_CONFIGURATION_DATA";
103
+ MesgNum[MesgNum["DIVE_APNEA_ALARM"] = 393] = "DIVE_APNEA_ALARM";
104
+ MesgNum[MesgNum["SKIN_TEMP_OVERNIGHT"] = 398] = "SKIN_TEMP_OVERNIGHT";
105
+ MesgNum[MesgNum["HSA_WRIST_TEMPERATURE_DATA"] = 409] = "HSA_WRIST_TEMPERATURE_DATA";
106
+ })(MesgNum || (MesgNum = {}));
@@ -0,0 +1,47 @@
1
+ export declare enum Sport {
2
+ GENERIC = 0,// 通用
3
+ RUNNING = 1,// 跑步
4
+ CYCLING = 2,// 骑行
5
+ TRANSITION = 3,// 过渡
6
+ FITNESS_EQUIPMENT = 4,// 健身器材
7
+ SWIMMING = 5,// 游泳
8
+ BASKETBALL = 6,// 篮球
9
+ SOCCER = 7,// 足球
10
+ TENNIS = 8,// 网球
11
+ AMERICAN_FOOTBALL = 9,// 美式足球
12
+ TRAINING = 10,// 训练
13
+ WALKING = 11,// 步行
14
+ CROSS_COUNTRY_SKIING = 12,// 越野滑雪
15
+ ALPINE_SKIING = 13,// 高山滑雪
16
+ SNOWBOARDING = 14,// 滑雪板
17
+ ROWING = 15,// 划船
18
+ MOUNTAINEERING = 16,// 登山
19
+ HIKING = 17,// 徒步
20
+ MULTISPORT = 18,// 多项运动
21
+ PADDLING = 19,// 划水
22
+ FLYING = 20,// 飞行
23
+ E_BIKING = 21,// 电动自行车
24
+ MOTORCYCLING = 22,// 摩托车
25
+ BOATING = 23,// 划船
26
+ DRIVING = 24,// 驾驶
27
+ GOLF = 25,// 高尔夫
28
+ HANG_GLIDING = 26,// 悬挂滑翔
29
+ HORSEBACK_RIDING = 27,// 骑马
30
+ HUNTING = 28,// 狩猎
31
+ FISHING = 29,// 钓鱼
32
+ INLINE_SKATING = 30,// 轮滑
33
+ ROCK_CLIMBING = 31,// 攀岩
34
+ SAILING = 32,// 帆船
35
+ ICE_SKATING = 33,// 滑冰
36
+ SKY_DIVING = 34,// 跳伞
37
+ SNOWSHOEING = 35,// 雪鞋行走
38
+ SNOWMOBILING = 36,// 雪地摩托
39
+ STAND_UP_PADDLEBOARDING = 37,// 站立式划桨
40
+ SURFING = 38,// 冲浪
41
+ WAKEBOARDING = 39,// 尾波滑水
42
+ WATER_SKIING = 40,// 滑水
43
+ YOGA = 41,// 瑜伽
44
+ PILATES = 42,// 普拉提
45
+ CALISTHENICS = 43,// 徒手健身
46
+ ALL = 254
47
+ }
@@ -0,0 +1,48 @@
1
+ export var Sport;
2
+ (function (Sport) {
3
+ Sport[Sport["GENERIC"] = 0] = "GENERIC";
4
+ Sport[Sport["RUNNING"] = 1] = "RUNNING";
5
+ Sport[Sport["CYCLING"] = 2] = "CYCLING";
6
+ Sport[Sport["TRANSITION"] = 3] = "TRANSITION";
7
+ Sport[Sport["FITNESS_EQUIPMENT"] = 4] = "FITNESS_EQUIPMENT";
8
+ Sport[Sport["SWIMMING"] = 5] = "SWIMMING";
9
+ Sport[Sport["BASKETBALL"] = 6] = "BASKETBALL";
10
+ Sport[Sport["SOCCER"] = 7] = "SOCCER";
11
+ Sport[Sport["TENNIS"] = 8] = "TENNIS";
12
+ Sport[Sport["AMERICAN_FOOTBALL"] = 9] = "AMERICAN_FOOTBALL";
13
+ Sport[Sport["TRAINING"] = 10] = "TRAINING";
14
+ Sport[Sport["WALKING"] = 11] = "WALKING";
15
+ Sport[Sport["CROSS_COUNTRY_SKIING"] = 12] = "CROSS_COUNTRY_SKIING";
16
+ Sport[Sport["ALPINE_SKIING"] = 13] = "ALPINE_SKIING";
17
+ Sport[Sport["SNOWBOARDING"] = 14] = "SNOWBOARDING";
18
+ Sport[Sport["ROWING"] = 15] = "ROWING";
19
+ Sport[Sport["MOUNTAINEERING"] = 16] = "MOUNTAINEERING";
20
+ Sport[Sport["HIKING"] = 17] = "HIKING";
21
+ Sport[Sport["MULTISPORT"] = 18] = "MULTISPORT";
22
+ Sport[Sport["PADDLING"] = 19] = "PADDLING";
23
+ Sport[Sport["FLYING"] = 20] = "FLYING";
24
+ Sport[Sport["E_BIKING"] = 21] = "E_BIKING";
25
+ Sport[Sport["MOTORCYCLING"] = 22] = "MOTORCYCLING";
26
+ Sport[Sport["BOATING"] = 23] = "BOATING";
27
+ Sport[Sport["DRIVING"] = 24] = "DRIVING";
28
+ Sport[Sport["GOLF"] = 25] = "GOLF";
29
+ Sport[Sport["HANG_GLIDING"] = 26] = "HANG_GLIDING";
30
+ Sport[Sport["HORSEBACK_RIDING"] = 27] = "HORSEBACK_RIDING";
31
+ Sport[Sport["HUNTING"] = 28] = "HUNTING";
32
+ Sport[Sport["FISHING"] = 29] = "FISHING";
33
+ Sport[Sport["INLINE_SKATING"] = 30] = "INLINE_SKATING";
34
+ Sport[Sport["ROCK_CLIMBING"] = 31] = "ROCK_CLIMBING";
35
+ Sport[Sport["SAILING"] = 32] = "SAILING";
36
+ Sport[Sport["ICE_SKATING"] = 33] = "ICE_SKATING";
37
+ Sport[Sport["SKY_DIVING"] = 34] = "SKY_DIVING";
38
+ Sport[Sport["SNOWSHOEING"] = 35] = "SNOWSHOEING";
39
+ Sport[Sport["SNOWMOBILING"] = 36] = "SNOWMOBILING";
40
+ Sport[Sport["STAND_UP_PADDLEBOARDING"] = 37] = "STAND_UP_PADDLEBOARDING";
41
+ Sport[Sport["SURFING"] = 38] = "SURFING";
42
+ Sport[Sport["WAKEBOARDING"] = 39] = "WAKEBOARDING";
43
+ Sport[Sport["WATER_SKIING"] = 40] = "WATER_SKIING";
44
+ Sport[Sport["YOGA"] = 41] = "YOGA";
45
+ Sport[Sport["PILATES"] = 42] = "PILATES";
46
+ Sport[Sport["CALISTHENICS"] = 43] = "CALISTHENICS";
47
+ Sport[Sport["ALL"] = 254] = "ALL";
48
+ })(Sport || (Sport = {}));