1use crate::protocol::message_type::MessageType;
2use crate::protocol::MatchOffsetFn;
3
4fn match_offset_accelerometer_data(_: usize) -> Option<i16> {
5 None
6}
7fn match_offset_activity(_: usize) -> Option<i16> {
8 None
9}
10fn match_offset_ant_channel_id(_: usize) -> Option<i16> {
11 None
12}
13fn match_offset_ant_rx(_: usize) -> Option<i16> {
14 None
15}
16fn match_offset_ant_tx(_: usize) -> Option<i16> {
17 None
18}
19fn match_offset_aviation_attitude(_: usize) -> Option<i16> {
20 None
21}
22fn match_offset_barometer_data(_: usize) -> Option<i16> {
23 None
24}
25fn match_offset_bike_profile(k: usize) -> Option<i16> {
26 match k {
27 19 => Some(-110i16),
28 _ => None,
29 }
30}
31fn match_offset_blood_pressure(_: usize) -> Option<i16> {
32 None
33}
34fn match_offset_cadence_zone(_: usize) -> Option<i16> {
35 None
36}
37fn match_offset_camera_event(_: usize) -> Option<i16> {
38 None
39}
40fn match_offset_capabilities(_: usize) -> Option<i16> {
41 None
42}
43fn match_offset_climb_pro(_: usize) -> Option<i16> {
44 None
45}
46fn match_offset_connectivity(_: usize) -> Option<i16> {
47 None
48}
49fn match_offset_course(_: usize) -> Option<i16> {
50 None
51}
52fn match_offset_course_point(_: usize) -> Option<i16> {
53 None
54}
55fn match_offset_developer_data_id(_: usize) -> Option<i16> {
56 None
57}
58fn match_offset_device_aux_battery_info(_: usize) -> Option<i16> {
59 None
60}
61fn match_offset_device_info(_: usize) -> Option<i16> {
62 None
63}
64fn match_offset_device_settings(_: usize) -> Option<i16> {
65 None
66}
67fn match_offset_dive_alarm(_: usize) -> Option<i16> {
68 None
69}
70fn match_offset_dive_gas(_: usize) -> Option<i16> {
71 None
72}
73fn match_offset_dive_settings(_: usize) -> Option<i16> {
74 None
75}
76fn match_offset_dive_summary(_: usize) -> Option<i16> {
77 None
78}
79fn match_offset_event(_: usize) -> Option<i16> {
80 None
81}
82fn match_offset_exd_data_concept_configuration(_: usize) -> Option<i16> {
83 None
84}
85fn match_offset_exd_data_field_configuration(_: usize) -> Option<i16> {
86 None
87}
88fn match_offset_exd_screen_configuration(_: usize) -> Option<i16> {
89 None
90}
91fn match_offset_exercise_title(_: usize) -> Option<i16> {
92 None
93}
94fn match_offset_field_capabilities(_: usize) -> Option<i16> {
95 None
96}
97fn match_offset_field_description(_: usize) -> Option<i16> {
98 None
99}
100fn match_offset_file_capabilities(_: usize) -> Option<i16> {
101 None
102}
103fn match_offset_file_creator(_: usize) -> Option<i16> {
104 None
105}
106fn match_offset_file_id(_: usize) -> Option<i16> {
107 None
108}
109fn match_offset_goal(_: usize) -> Option<i16> {
110 None
111}
112fn match_offset_gps_metadata(k: usize) -> Option<i16> {
113 match k {
114 3 => Some(500i16),
115 _ => None,
116 }
117}
118fn match_offset_gyroscope_data(_: usize) -> Option<i16> {
119 None
120}
121fn match_offset_hr(_: usize) -> Option<i16> {
122 None
123}
124fn match_offset_hr_zone(_: usize) -> Option<i16> {
125 None
126}
127fn match_offset_hrm_profile(_: usize) -> Option<i16> {
128 None
129}
130fn match_offset_hrv(_: usize) -> Option<i16> {
131 None
132}
133fn match_offset_jump(_: usize) -> Option<i16> {
134 None
135}
136fn match_offset_lap(k: usize) -> Option<i16> {
137 match k {
138 42 => Some(500i16),
139 43 => Some(500i16),
140 62 => Some(500i16),
141 112 => Some(500i16),
142 113 => Some(500i16),
143 114 => Some(500i16),
144 _ => None,
145 }
146}
147fn match_offset_length(_: usize) -> Option<i16> {
148 None
149}
150fn match_offset_magnetometer_data(_: usize) -> Option<i16> {
151 None
152}
153fn match_offset_memo_glob(_: usize) -> Option<i16> {
154 None
155}
156fn match_offset_mesg_capabilities(_: usize) -> Option<i16> {
157 None
158}
159fn match_offset_met_zone(_: usize) -> Option<i16> {
160 None
161}
162fn match_offset_monitoring(_: usize) -> Option<i16> {
163 None
164}
165fn match_offset_monitoring_info(_: usize) -> Option<i16> {
166 None
167}
168fn match_offset_nmea_sentence(_: usize) -> Option<i16> {
169 None
170}
171fn match_offset_obdii_data(_: usize) -> Option<i16> {
172 None
173}
174fn match_offset_ohr_settings(_: usize) -> Option<i16> {
175 None
176}
177fn match_offset_one_d_sensor_calibration(_: usize) -> Option<i16> {
178 None
179}
180fn match_offset_power_zone(_: usize) -> Option<i16> {
181 None
182}
183fn match_offset_record(k: usize) -> Option<i16> {
184 match k {
185 2 => Some(500i16),
186 78 => Some(500i16),
187 _ => None,
188 }
189}
190fn match_offset_schedule(_: usize) -> Option<i16> {
191 None
192}
193fn match_offset_sdm_profile(_: usize) -> Option<i16> {
194 None
195}
196fn match_offset_segment_file(_: usize) -> Option<i16> {
197 None
198}
199fn match_offset_segment_id(_: usize) -> Option<i16> {
200 None
201}
202fn match_offset_segment_lap(k: usize) -> Option<i16> {
203 match k {
204 34 => Some(500i16),
205 35 => Some(500i16),
206 54 => Some(500i16),
207 _ => None,
208 }
209}
210fn match_offset_segment_leaderboard_entry(_: usize) -> Option<i16> {
211 None
212}
213fn match_offset_segment_point(k: usize) -> Option<i16> {
214 match k {
215 4 => Some(500i16),
216 _ => None,
217 }
218}
219fn match_offset_session(k: usize) -> Option<i16> {
220 match k {
221 49 => Some(500i16),
222 50 => Some(500i16),
223 71 => Some(500i16),
224 126 => Some(500i16),
225 127 => Some(500i16),
226 128 => Some(500i16),
227 _ => None,
228 }
229}
230fn match_offset_set(_: usize) -> Option<i16> {
231 None
232}
233fn match_offset_slave_device(_: usize) -> Option<i16> {
234 None
235}
236fn match_offset_software(_: usize) -> Option<i16> {
237 None
238}
239fn match_offset_speed_zone(_: usize) -> Option<i16> {
240 None
241}
242fn match_offset_sport(_: usize) -> Option<i16> {
243 None
244}
245fn match_offset_stress_level(_: usize) -> Option<i16> {
246 None
247}
248fn match_offset_three_d_sensor_calibration(_: usize) -> Option<i16> {
249 None
250}
251fn match_offset_timestamp_correlation(_: usize) -> Option<i16> {
252 None
253}
254fn match_offset_totals(_: usize) -> Option<i16> {
255 None
256}
257fn match_offset_training_file(_: usize) -> Option<i16> {
258 None
259}
260fn match_offset_user_profile(_: usize) -> Option<i16> {
261 None
262}
263fn match_offset_video(_: usize) -> Option<i16> {
264 None
265}
266fn match_offset_video_clip(_: usize) -> Option<i16> {
267 None
268}
269fn match_offset_video_description(_: usize) -> Option<i16> {
270 None
271}
272fn match_offset_video_frame(_: usize) -> Option<i16> {
273 None
274}
275fn match_offset_video_title(_: usize) -> Option<i16> {
276 None
277}
278fn match_offset_watchface_settings(_: usize) -> Option<i16> {
279 None
280}
281fn match_offset_weather_alert(_: usize) -> Option<i16> {
282 None
283}
284fn match_offset_weather_conditions(_: usize) -> Option<i16> {
285 None
286}
287fn match_offset_weight_scale(_: usize) -> Option<i16> {
288 None
289}
290fn match_offset_workout(_: usize) -> Option<i16> {
291 None
292}
293fn match_offset_workout_session(_: usize) -> Option<i16> {
294 None
295}
296fn match_offset_workout_step(_: usize) -> Option<i16> {
297 None
298}
299fn match_offset_zones_target(_: usize) -> Option<i16> {
300 None
301}
302fn match_offset_none(_: usize) -> Option<i16> {
303 None
304}
305
306pub fn get_field_offset_fn(m: MessageType) -> MatchOffsetFn {
321 match m {
322 MessageType::FileId => match_offset_file_id,
323 MessageType::FileCreator => match_offset_file_creator,
324 MessageType::TimestampCorrelation => match_offset_timestamp_correlation,
325 MessageType::Software => match_offset_software,
326 MessageType::SlaveDevice => match_offset_slave_device,
327 MessageType::Capabilities => match_offset_capabilities,
328 MessageType::FileCapabilities => match_offset_file_capabilities,
329 MessageType::MesgCapabilities => match_offset_mesg_capabilities,
330 MessageType::FieldCapabilities => match_offset_field_capabilities,
331 MessageType::DeviceSettings => match_offset_device_settings,
332 MessageType::UserProfile => match_offset_user_profile,
333 MessageType::HrmProfile => match_offset_hrm_profile,
334 MessageType::SdmProfile => match_offset_sdm_profile,
335 MessageType::BikeProfile => match_offset_bike_profile,
336 MessageType::Connectivity => match_offset_connectivity,
337 MessageType::WatchfaceSettings => match_offset_watchface_settings,
338 MessageType::OhrSettings => match_offset_ohr_settings,
339 MessageType::ZonesTarget => match_offset_zones_target,
340 MessageType::Sport => match_offset_sport,
341 MessageType::HrZone => match_offset_hr_zone,
342 MessageType::SpeedZone => match_offset_speed_zone,
343 MessageType::CadenceZone => match_offset_cadence_zone,
344 MessageType::PowerZone => match_offset_power_zone,
345 MessageType::MetZone => match_offset_met_zone,
346 MessageType::DiveSettings => match_offset_dive_settings,
347 MessageType::DiveAlarm => match_offset_dive_alarm,
348 MessageType::DiveGas => match_offset_dive_gas,
349 MessageType::Goal => match_offset_goal,
350 MessageType::Activity => match_offset_activity,
351 MessageType::Session => match_offset_session,
352 MessageType::Lap => match_offset_lap,
353 MessageType::Length => match_offset_length,
354 MessageType::Record => match_offset_record,
355 MessageType::Event => match_offset_event,
356 MessageType::DeviceInfo => match_offset_device_info,
357 MessageType::DeviceAuxBatteryInfo => match_offset_device_aux_battery_info,
358 MessageType::TrainingFile => match_offset_training_file,
359 MessageType::WeatherConditions => match_offset_weather_conditions,
360 MessageType::WeatherAlert => match_offset_weather_alert,
361 MessageType::GpsMetadata => match_offset_gps_metadata,
362 MessageType::CameraEvent => match_offset_camera_event,
363 MessageType::GyroscopeData => match_offset_gyroscope_data,
364 MessageType::AccelerometerData => match_offset_accelerometer_data,
365 MessageType::MagnetometerData => match_offset_magnetometer_data,
366 MessageType::BarometerData => match_offset_barometer_data,
367 MessageType::ThreeDSensorCalibration => match_offset_three_d_sensor_calibration,
368 MessageType::OneDSensorCalibration => match_offset_one_d_sensor_calibration,
369 MessageType::VideoFrame => match_offset_video_frame,
370 MessageType::ObdiiData => match_offset_obdii_data,
371 MessageType::NmeaSentence => match_offset_nmea_sentence,
372 MessageType::AviationAttitude => match_offset_aviation_attitude,
373 MessageType::Video => match_offset_video,
374 MessageType::VideoTitle => match_offset_video_title,
375 MessageType::VideoDescription => match_offset_video_description,
376 MessageType::VideoClip => match_offset_video_clip,
377 MessageType::Set => match_offset_set,
378 MessageType::Jump => match_offset_jump,
379 MessageType::ClimbPro => match_offset_climb_pro,
380 MessageType::FieldDescription => match_offset_field_description,
381 MessageType::DeveloperDataId => match_offset_developer_data_id,
382 MessageType::Course => match_offset_course,
383 MessageType::CoursePoint => match_offset_course_point,
384 MessageType::SegmentId => match_offset_segment_id,
385 MessageType::SegmentLeaderboardEntry => match_offset_segment_leaderboard_entry,
386 MessageType::SegmentPoint => match_offset_segment_point,
387 MessageType::SegmentLap => match_offset_segment_lap,
388 MessageType::SegmentFile => match_offset_segment_file,
389 MessageType::Workout => match_offset_workout,
390 MessageType::WorkoutSession => match_offset_workout_session,
391 MessageType::WorkoutStep => match_offset_workout_step,
392 MessageType::ExerciseTitle => match_offset_exercise_title,
393 MessageType::Schedule => match_offset_schedule,
394 MessageType::Totals => match_offset_totals,
395 MessageType::WeightScale => match_offset_weight_scale,
396 MessageType::BloodPressure => match_offset_blood_pressure,
397 MessageType::MonitoringInfo => match_offset_monitoring_info,
398 MessageType::Monitoring => match_offset_monitoring,
399 MessageType::Hr => match_offset_hr,
400 MessageType::StressLevel => match_offset_stress_level,
401 MessageType::MemoGlob => match_offset_memo_glob,
402 MessageType::AntChannelId => match_offset_ant_channel_id,
403 MessageType::AntRx => match_offset_ant_rx,
404 MessageType::AntTx => match_offset_ant_tx,
405 MessageType::ExdScreenConfiguration => match_offset_exd_screen_configuration,
406 MessageType::ExdDataFieldConfiguration => match_offset_exd_data_field_configuration,
407 MessageType::ExdDataConceptConfiguration => match_offset_exd_data_concept_configuration,
408 MessageType::DiveSummary => match_offset_dive_summary,
409 MessageType::Hrv => match_offset_hrv,
410 _ => match_offset_none,
411 }
412}