1pub mod acquisition;
19pub mod bootload;
20pub mod ext_events;
21pub mod file_io;
22pub mod flash;
23pub mod gnss;
24pub mod imu;
25pub mod integrity;
26pub mod invalid;
27pub mod linux;
28pub mod logging;
29pub mod mag;
30pub mod navigation;
31pub mod ndb;
32pub mod observation;
33pub mod orientation;
34pub mod piksi;
35pub mod profiling;
36pub mod sbas;
37pub mod settings;
38pub mod signing;
39pub mod solution_meta;
40pub mod ssr;
41pub mod system;
42pub mod telemetry;
43pub mod tracking;
44pub mod unknown;
45pub mod user;
46pub mod vehicle;
47use self::acquisition::msg_acq_result::MsgAcqResult;
48use self::acquisition::msg_acq_result_dep_a::MsgAcqResultDepA;
49use self::acquisition::msg_acq_result_dep_b::MsgAcqResultDepB;
50use self::acquisition::msg_acq_result_dep_c::MsgAcqResultDepC;
51use self::acquisition::msg_acq_sv_profile::MsgAcqSvProfile;
52use self::acquisition::msg_acq_sv_profile_dep::MsgAcqSvProfileDep;
53use self::bootload::msg_bootloader_handshake_dep_a::MsgBootloaderHandshakeDepA;
54use self::bootload::msg_bootloader_handshake_req::MsgBootloaderHandshakeReq;
55use self::bootload::msg_bootloader_handshake_resp::MsgBootloaderHandshakeResp;
56use self::bootload::msg_bootloader_jump_to_app::MsgBootloaderJumpToApp;
57use self::bootload::msg_nap_device_dna_req::MsgNapDeviceDnaReq;
58use self::bootload::msg_nap_device_dna_resp::MsgNapDeviceDnaResp;
59use self::ext_events::msg_ext_event::MsgExtEvent;
60use self::file_io::msg_fileio_config_req::MsgFileioConfigReq;
61use self::file_io::msg_fileio_config_resp::MsgFileioConfigResp;
62use self::file_io::msg_fileio_read_dir_req::MsgFileioReadDirReq;
63use self::file_io::msg_fileio_read_dir_resp::MsgFileioReadDirResp;
64use self::file_io::msg_fileio_read_req::MsgFileioReadReq;
65use self::file_io::msg_fileio_read_resp::MsgFileioReadResp;
66use self::file_io::msg_fileio_remove::MsgFileioRemove;
67use self::file_io::msg_fileio_write_req::MsgFileioWriteReq;
68use self::file_io::msg_fileio_write_resp::MsgFileioWriteResp;
69use self::flash::msg_flash_done::MsgFlashDone;
70use self::flash::msg_flash_erase::MsgFlashErase;
71use self::flash::msg_flash_program::MsgFlashProgram;
72use self::flash::msg_flash_read_req::MsgFlashReadReq;
73use self::flash::msg_flash_read_resp::MsgFlashReadResp;
74use self::flash::msg_m25_flash_write_status::MsgM25FlashWriteStatus;
75use self::flash::msg_stm_flash_lock_sector::MsgStmFlashLockSector;
76use self::flash::msg_stm_flash_unlock_sector::MsgStmFlashUnlockSector;
77use self::flash::msg_stm_unique_id_req::MsgStmUniqueIdReq;
78use self::flash::msg_stm_unique_id_resp::MsgStmUniqueIdResp;
79use self::imu::msg_imu_aux::MsgImuAux;
80use self::imu::msg_imu_comp::MsgImuComp;
81use self::imu::msg_imu_raw::MsgImuRaw;
82use self::integrity::msg_acknowledge::MsgAcknowledge;
83use self::integrity::msg_ssr_flag_high_level::MsgSsrFlagHighLevel;
84use self::integrity::msg_ssr_flag_high_level_dep_a::MsgSsrFlagHighLevelDepA;
85use self::integrity::msg_ssr_flag_iono_grid_point_sat_los::MsgSsrFlagIonoGridPointSatLos;
86use self::integrity::msg_ssr_flag_iono_grid_points::MsgSsrFlagIonoGridPoints;
87use self::integrity::msg_ssr_flag_iono_tile_sat_los::MsgSsrFlagIonoTileSatLos;
88use self::integrity::msg_ssr_flag_satellites::MsgSsrFlagSatellites;
89use self::integrity::msg_ssr_flag_tropo_grid_points::MsgSsrFlagTropoGridPoints;
90use self::invalid::Invalid;
91use self::linux::msg_linux_cpu_state::MsgLinuxCpuState;
92use self::linux::msg_linux_cpu_state_dep_a::MsgLinuxCpuStateDepA;
93use self::linux::msg_linux_mem_state::MsgLinuxMemState;
94use self::linux::msg_linux_mem_state_dep_a::MsgLinuxMemStateDepA;
95use self::linux::msg_linux_process_fd_count::MsgLinuxProcessFdCount;
96use self::linux::msg_linux_process_fd_summary::MsgLinuxProcessFdSummary;
97use self::linux::msg_linux_process_socket_counts::MsgLinuxProcessSocketCounts;
98use self::linux::msg_linux_process_socket_queues::MsgLinuxProcessSocketQueues;
99use self::linux::msg_linux_socket_usage::MsgLinuxSocketUsage;
100use self::linux::msg_linux_sys_state::MsgLinuxSysState;
101use self::linux::msg_linux_sys_state_dep_a::MsgLinuxSysStateDepA;
102use self::logging::msg_fwd::MsgFwd;
103use self::logging::msg_log::MsgLog;
104use self::logging::msg_print_dep::MsgPrintDep;
105use self::mag::msg_mag_raw::MsgMagRaw;
106use self::navigation::msg_age_corrections::MsgAgeCorrections;
107use self::navigation::msg_baseline_ecef::MsgBaselineEcef;
108use self::navigation::msg_baseline_ecef_dep_a::MsgBaselineEcefDepA;
109use self::navigation::msg_baseline_heading_dep_a::MsgBaselineHeadingDepA;
110use self::navigation::msg_baseline_ned::MsgBaselineNed;
111use self::navigation::msg_baseline_ned_dep_a::MsgBaselineNedDepA;
112use self::navigation::msg_dops::MsgDops;
113use self::navigation::msg_dops_dep_a::MsgDopsDepA;
114use self::navigation::msg_gps_time::MsgGpsTime;
115use self::navigation::msg_gps_time_dep_a::MsgGpsTimeDepA;
116use self::navigation::msg_gps_time_gnss::MsgGpsTimeGnss;
117use self::navigation::msg_pos_ecef::MsgPosEcef;
118use self::navigation::msg_pos_ecef_cov::MsgPosEcefCov;
119use self::navigation::msg_pos_ecef_cov_gnss::MsgPosEcefCovGnss;
120use self::navigation::msg_pos_ecef_dep_a::MsgPosEcefDepA;
121use self::navigation::msg_pos_ecef_gnss::MsgPosEcefGnss;
122use self::navigation::msg_pos_llh::MsgPosLlh;
123use self::navigation::msg_pos_llh_acc::MsgPosLlhAcc;
124use self::navigation::msg_pos_llh_cov::MsgPosLlhCov;
125use self::navigation::msg_pos_llh_cov_gnss::MsgPosLlhCovGnss;
126use self::navigation::msg_pos_llh_dep_a::MsgPosLlhDepA;
127use self::navigation::msg_pos_llh_gnss::MsgPosLlhGnss;
128use self::navigation::msg_pose_relative::MsgPoseRelative;
129use self::navigation::msg_protection_level::MsgProtectionLevel;
130use self::navigation::msg_protection_level_dep_a::MsgProtectionLevelDepA;
131use self::navigation::msg_reference_frame_param::MsgReferenceFrameParam;
132use self::navigation::msg_utc_leap_second::MsgUtcLeapSecond;
133use self::navigation::msg_utc_time::MsgUtcTime;
134use self::navigation::msg_utc_time_gnss::MsgUtcTimeGnss;
135use self::navigation::msg_vel_body::MsgVelBody;
136use self::navigation::msg_vel_cog::MsgVelCog;
137use self::navigation::msg_vel_ecef::MsgVelEcef;
138use self::navigation::msg_vel_ecef_cov::MsgVelEcefCov;
139use self::navigation::msg_vel_ecef_cov_gnss::MsgVelEcefCovGnss;
140use self::navigation::msg_vel_ecef_dep_a::MsgVelEcefDepA;
141use self::navigation::msg_vel_ecef_gnss::MsgVelEcefGnss;
142use self::navigation::msg_vel_ned::MsgVelNed;
143use self::navigation::msg_vel_ned_cov::MsgVelNedCov;
144use self::navigation::msg_vel_ned_cov_gnss::MsgVelNedCovGnss;
145use self::navigation::msg_vel_ned_dep_a::MsgVelNedDepA;
146use self::navigation::msg_vel_ned_gnss::MsgVelNedGnss;
147use self::ndb::msg_ndb_event::MsgNdbEvent;
148use self::observation::msg_almanac_glo::MsgAlmanacGlo;
149use self::observation::msg_almanac_glo_dep::MsgAlmanacGloDep;
150use self::observation::msg_almanac_gps::MsgAlmanacGps;
151use self::observation::msg_almanac_gps_dep::MsgAlmanacGpsDep;
152use self::observation::msg_base_pos_ecef::MsgBasePosEcef;
153use self::observation::msg_base_pos_llh::MsgBasePosLlh;
154use self::observation::msg_ephemeris_bds::MsgEphemerisBds;
155use self::observation::msg_ephemeris_dep_a::MsgEphemerisDepA;
156use self::observation::msg_ephemeris_dep_b::MsgEphemerisDepB;
157use self::observation::msg_ephemeris_dep_c::MsgEphemerisDepC;
158use self::observation::msg_ephemeris_dep_d::MsgEphemerisDepD;
159use self::observation::msg_ephemeris_gal::MsgEphemerisGal;
160use self::observation::msg_ephemeris_gal_dep_a::MsgEphemerisGalDepA;
161use self::observation::msg_ephemeris_glo::MsgEphemerisGlo;
162use self::observation::msg_ephemeris_glo_dep_a::MsgEphemerisGloDepA;
163use self::observation::msg_ephemeris_glo_dep_b::MsgEphemerisGloDepB;
164use self::observation::msg_ephemeris_glo_dep_c::MsgEphemerisGloDepC;
165use self::observation::msg_ephemeris_glo_dep_d::MsgEphemerisGloDepD;
166use self::observation::msg_ephemeris_gps::MsgEphemerisGps;
167use self::observation::msg_ephemeris_gps_dep_e::MsgEphemerisGpsDepE;
168use self::observation::msg_ephemeris_gps_dep_f::MsgEphemerisGpsDepF;
169use self::observation::msg_ephemeris_qzss::MsgEphemerisQzss;
170use self::observation::msg_ephemeris_sbas::MsgEphemerisSbas;
171use self::observation::msg_ephemeris_sbas_dep_a::MsgEphemerisSbasDepA;
172use self::observation::msg_ephemeris_sbas_dep_b::MsgEphemerisSbasDepB;
173use self::observation::msg_glo_biases::MsgGloBiases;
174use self::observation::msg_gnss_capb::MsgGnssCapb;
175use self::observation::msg_group_delay::MsgGroupDelay;
176use self::observation::msg_group_delay_dep_a::MsgGroupDelayDepA;
177use self::observation::msg_group_delay_dep_b::MsgGroupDelayDepB;
178use self::observation::msg_iono::MsgIono;
179use self::observation::msg_obs::MsgObs;
180use self::observation::msg_obs_dep_a::MsgObsDepA;
181use self::observation::msg_obs_dep_b::MsgObsDepB;
182use self::observation::msg_obs_dep_c::MsgObsDepC;
183use self::observation::msg_osr::MsgOsr;
184use self::observation::msg_sv_az_el::MsgSvAzEl;
185use self::observation::msg_sv_configuration_gps_dep::MsgSvConfigurationGpsDep;
186use self::orientation::msg_angular_rate::MsgAngularRate;
187use self::orientation::msg_baseline_heading::MsgBaselineHeading;
188use self::orientation::msg_orient_euler::MsgOrientEuler;
189use self::orientation::msg_orient_quat::MsgOrientQuat;
190use self::piksi::msg_almanac::MsgAlmanac;
191use self::piksi::msg_cell_modem_status::MsgCellModemStatus;
192use self::piksi::msg_command_output::MsgCommandOutput;
193use self::piksi::msg_command_req::MsgCommandReq;
194use self::piksi::msg_command_resp::MsgCommandResp;
195use self::piksi::msg_cw_results::MsgCwResults;
196use self::piksi::msg_cw_start::MsgCwStart;
197use self::piksi::msg_device_monitor::MsgDeviceMonitor;
198use self::piksi::msg_front_end_gain::MsgFrontEndGain;
199use self::piksi::msg_iar_state::MsgIarState;
200use self::piksi::msg_init_base_dep::MsgInitBaseDep;
201use self::piksi::msg_mask_satellite::MsgMaskSatellite;
202use self::piksi::msg_mask_satellite_dep::MsgMaskSatelliteDep;
203use self::piksi::msg_network_bandwidth_usage::MsgNetworkBandwidthUsage;
204use self::piksi::msg_network_state_req::MsgNetworkStateReq;
205use self::piksi::msg_network_state_resp::MsgNetworkStateResp;
206use self::piksi::msg_reset::MsgReset;
207use self::piksi::msg_reset_dep::MsgResetDep;
208use self::piksi::msg_reset_filters::MsgResetFilters;
209use self::piksi::msg_set_time::MsgSetTime;
210use self::piksi::msg_specan::MsgSpecan;
211use self::piksi::msg_specan_dep::MsgSpecanDep;
212use self::piksi::msg_thread_state::MsgThreadState;
213use self::piksi::msg_uart_state::MsgUartState;
214use self::piksi::msg_uart_state_depa::MsgUartStateDepa;
215use self::profiling::msg_measurement_point::MsgMeasurementPoint;
216use self::profiling::msg_profiling_resource_counter::MsgProfilingResourceCounter;
217use self::profiling::msg_profiling_system_info::MsgProfilingSystemInfo;
218use self::profiling::msg_profiling_thread_info::MsgProfilingThreadInfo;
219use self::sbas::msg_sbas_raw::MsgSbasRaw;
220use self::settings::msg_settings_read_by_index_done::MsgSettingsReadByIndexDone;
221use self::settings::msg_settings_read_by_index_req::MsgSettingsReadByIndexReq;
222use self::settings::msg_settings_read_by_index_resp::MsgSettingsReadByIndexResp;
223use self::settings::msg_settings_read_req::MsgSettingsReadReq;
224use self::settings::msg_settings_read_resp::MsgSettingsReadResp;
225use self::settings::msg_settings_register::MsgSettingsRegister;
226use self::settings::msg_settings_register_resp::MsgSettingsRegisterResp;
227use self::settings::msg_settings_save::MsgSettingsSave;
228use self::settings::msg_settings_write::MsgSettingsWrite;
229use self::settings::msg_settings_write_resp::MsgSettingsWriteResp;
230use self::signing::msg_aes_cmac_signature::MsgAesCmacSignature;
231use self::signing::msg_certificate_chain::MsgCertificateChain;
232use self::signing::msg_certificate_chain_dep::MsgCertificateChainDep;
233use self::signing::msg_ecdsa_certificate::MsgEcdsaCertificate;
234use self::signing::msg_ecdsa_signature::MsgEcdsaSignature;
235use self::signing::msg_ecdsa_signature_dep_a::MsgEcdsaSignatureDepA;
236use self::signing::msg_ecdsa_signature_dep_b::MsgEcdsaSignatureDepB;
237use self::signing::msg_ed25519_certificate_dep::MsgEd25519CertificateDep;
238use self::signing::msg_ed25519_signature_dep_a::MsgEd25519SignatureDepA;
239use self::signing::msg_ed25519_signature_dep_b::MsgEd25519SignatureDepB;
240use self::solution_meta::msg_soln_meta::MsgSolnMeta;
241use self::solution_meta::msg_soln_meta_dep_a::MsgSolnMetaDepA;
242use self::ssr::msg_ssr_code_biases::MsgSsrCodeBiases;
243use self::ssr::msg_ssr_code_phase_biases_bounds::MsgSsrCodePhaseBiasesBounds;
244use self::ssr::msg_ssr_grid_definition_dep_a::MsgSsrGridDefinitionDepA;
245use self::ssr::msg_ssr_gridded_correction::MsgSsrGriddedCorrection;
246use self::ssr::msg_ssr_gridded_correction_bounds::MsgSsrGriddedCorrectionBounds;
247use self::ssr::msg_ssr_gridded_correction_dep_a::MsgSsrGriddedCorrectionDepA;
248use self::ssr::msg_ssr_gridded_correction_no_std_dep_a::MsgSsrGriddedCorrectionNoStdDepA;
249use self::ssr::msg_ssr_orbit_clock::MsgSsrOrbitClock;
250use self::ssr::msg_ssr_orbit_clock_bounds::MsgSsrOrbitClockBounds;
251use self::ssr::msg_ssr_orbit_clock_bounds_degradation::MsgSsrOrbitClockBoundsDegradation;
252use self::ssr::msg_ssr_orbit_clock_dep_a::MsgSsrOrbitClockDepA;
253use self::ssr::msg_ssr_phase_biases::MsgSsrPhaseBiases;
254use self::ssr::msg_ssr_satellite_apc::MsgSsrSatelliteApc;
255use self::ssr::msg_ssr_satellite_apc_dep::MsgSsrSatelliteApcDep;
256use self::ssr::msg_ssr_stec_correction::MsgSsrStecCorrection;
257use self::ssr::msg_ssr_stec_correction_dep::MsgSsrStecCorrectionDep;
258use self::ssr::msg_ssr_stec_correction_dep_a::MsgSsrStecCorrectionDepA;
259use self::ssr::msg_ssr_tile_definition::MsgSsrTileDefinition;
260use self::ssr::msg_ssr_tile_definition_dep_a::MsgSsrTileDefinitionDepA;
261use self::ssr::msg_ssr_tile_definition_dep_b::MsgSsrTileDefinitionDepB;
262use self::system::msg_csac_telemetry::MsgCsacTelemetry;
263use self::system::msg_csac_telemetry_labels::MsgCsacTelemetryLabels;
264use self::system::msg_dgnss_status::MsgDgnssStatus;
265use self::system::msg_gnss_time_offset::MsgGnssTimeOffset;
266use self::system::msg_group_meta::MsgGroupMeta;
267use self::system::msg_heartbeat::MsgHeartbeat;
268use self::system::msg_ins_status::MsgInsStatus;
269use self::system::msg_ins_updates::MsgInsUpdates;
270use self::system::msg_pps_time::MsgPpsTime;
271use self::system::msg_sensor_aid_event::MsgSensorAidEvent;
272use self::system::msg_startup::MsgStartup;
273use self::system::msg_status_journal::MsgStatusJournal;
274use self::system::msg_status_report::MsgStatusReport;
275use self::telemetry::msg_tel_sv::MsgTelSv;
276use self::tracking::msg_measurement_state::MsgMeasurementState;
277use self::tracking::msg_tracking_iq::MsgTrackingIq;
278use self::tracking::msg_tracking_iq_dep_a::MsgTrackingIqDepA;
279use self::tracking::msg_tracking_iq_dep_b::MsgTrackingIqDepB;
280use self::tracking::msg_tracking_state::MsgTrackingState;
281use self::tracking::msg_tracking_state_dep_a::MsgTrackingStateDepA;
282use self::tracking::msg_tracking_state_dep_b::MsgTrackingStateDepB;
283use self::tracking::msg_tracking_state_detailed_dep::MsgTrackingStateDetailedDep;
284use self::tracking::msg_tracking_state_detailed_dep_a::MsgTrackingStateDetailedDepA;
285use self::unknown::Unknown;
286use self::user::msg_user_data::MsgUserData;
287use self::vehicle::msg_odometry::MsgOdometry;
288use self::vehicle::msg_wheeltick::MsgWheeltick;
289
290mod lib {
291 pub use std::convert::{TryFrom, TryInto};
294
295 pub use crate::sbp_string::{
296 DoubleNullTerminated, Multipart, NullTerminated, SbpString, Unterminated,
297 };
298 #[cfg(feature = "swiftnav")]
299 pub use crate::time;
300 pub use crate::wire_format::{PayloadParseError, WireFormat};
301
302 pub use super::{ConcreteMessage, FriendlyName, Sbp, SbpMessage, TryFromSbpError};
303
304 pub use bytes::{Buf, BufMut};
305
306 #[cfg(feature = "serde")]
307 pub use serde_big_array::BigArray;
308
309 macro_rules! get_bit_range {
310 ($bitrange:expr, $source_ty:ty, $target_ty:ty, $msb:expr, $lsb:expr) => {{
311 let source_bit_len = std::mem::size_of::<$source_ty>() * 8;
312 let target_bit_len = std::mem::size_of::<$target_ty>() * 8;
313 let result = (($bitrange << (source_bit_len - $msb - 1))
314 >> (source_bit_len - $msb - 1 + $lsb)) as $target_ty;
315 result << (target_bit_len - ($msb - $lsb + 1)) >> (target_bit_len - ($msb - $lsb + 1))
316 }};
317 }
318
319 macro_rules! set_bit_range {
320 ($bitrange:expr, $value: expr, $source_ty:ty, $target_ty:ty, $msb:expr, $lsb:expr) => {
321 let source_bit_len = std::mem::size_of::<$source_ty>() * 8;
322 let mask: $source_ty = !(0 as $source_ty)
323 << (source_bit_len - $msb - 1)
324 >> (source_bit_len - $msb - 1 + $lsb)
325 << ($lsb);
326 *$bitrange &= !mask;
327 *$bitrange |= ($value as $source_ty << $lsb) & mask;
328 };
329 }
330
331 pub(crate) use get_bit_range;
332 pub(crate) use set_bit_range;
333}
334
335use lib::*;
336
337pub trait SbpMessage: WireFormat + Clone {
339 fn message_name(&self) -> &'static str;
341 fn message_type(&self) -> Option<u16>;
343 fn sender_id(&self) -> Option<u16>;
345 fn set_sender_id(&mut self, new_id: u16);
347 fn encoded_len(&self) -> usize;
349 #[cfg(feature = "swiftnav")]
351 fn gps_time(&self) -> Option<Result<crate::time::MessageTime, crate::time::GpsTimeError>> {
352 None
353 }
354 fn friendly_name(&self) -> &'static str {
356 ""
357 }
358 fn is_valid(&self) -> bool;
361 fn into_valid_msg(self) -> Result<Self, crate::messages::invalid::Invalid>;
362}
363
364pub trait ConcreteMessage: SbpMessage + TryFrom<Sbp, Error = TryFromSbpError> {
367 const MESSAGE_TYPE: u16;
369 const MESSAGE_NAME: &'static str;
371}
372
373pub trait FriendlyName {
375 fn friendly_name() -> &'static str;
376}
377
378#[derive(Debug, Clone)]
380pub struct TryFromSbpError(pub Sbp);
381
382impl std::fmt::Display for TryFromSbpError {
383 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
384 write!(f, "invalid message type for conversion")
385 }
386}
387
388impl std::error::Error for TryFromSbpError {}
389
390#[cfg_attr(feature = "serde", derive(serde::Serialize), serde(untagged))]
392#[derive(Debug, PartialEq, Clone)]
393#[non_exhaustive]
394pub enum Sbp {
395 MsgPrintDep(MsgPrintDep),
397 MsgTrackingStateDetailedDep(MsgTrackingStateDetailedDep),
399 MsgTrackingStateDepB(MsgTrackingStateDepB),
401 MsgAcqResultDepB(MsgAcqResultDepB),
403 MsgAcqResultDepA(MsgAcqResultDepA),
405 MsgTrackingStateDepA(MsgTrackingStateDepA),
407 MsgThreadState(MsgThreadState),
409 MsgUartStateDepa(MsgUartStateDepa),
411 MsgIarState(MsgIarState),
413 MsgEphemerisDepA(MsgEphemerisDepA),
415 MsgMaskSatelliteDep(MsgMaskSatelliteDep),
417 MsgTrackingIqDepA(MsgTrackingIqDepA),
419 MsgUartState(MsgUartState),
421 MsgAcqSvProfileDep(MsgAcqSvProfileDep),
423 MsgAcqResultDepC(MsgAcqResultDepC),
425 MsgTrackingStateDetailedDepA(MsgTrackingStateDetailedDepA),
427 MsgResetFilters(MsgResetFilters),
429 MsgInitBaseDep(MsgInitBaseDep),
431 MsgMaskSatellite(MsgMaskSatellite),
433 MsgTrackingIqDepB(MsgTrackingIqDepB),
435 MsgTrackingIq(MsgTrackingIq),
437 MsgAcqSvProfile(MsgAcqSvProfile),
439 MsgAcqResult(MsgAcqResult),
441 MsgTrackingState(MsgTrackingState),
443 MsgObsDepB(MsgObsDepB),
445 MsgBasePosLlh(MsgBasePosLlh),
447 MsgObsDepA(MsgObsDepA),
449 MsgEphemerisDepB(MsgEphemerisDepB),
451 MsgEphemerisDepC(MsgEphemerisDepC),
453 MsgBasePosEcef(MsgBasePosEcef),
455 MsgObsDepC(MsgObsDepC),
457 MsgObs(MsgObs),
459 MsgSpecanDep(MsgSpecanDep),
461 MsgSpecan(MsgSpecan),
463 MsgMeasurementState(MsgMeasurementState),
465 MsgSetTime(MsgSetTime),
467 MsgAlmanac(MsgAlmanac),
469 MsgAlmanacGpsDep(MsgAlmanacGpsDep),
471 MsgAlmanacGloDep(MsgAlmanacGloDep),
473 MsgAlmanacGps(MsgAlmanacGps),
475 MsgAlmanacGlo(MsgAlmanacGlo),
477 MsgGloBiases(MsgGloBiases),
479 MsgEphemerisDepD(MsgEphemerisDepD),
481 MsgEphemerisGpsDepE(MsgEphemerisGpsDepE),
483 MsgEphemerisSbasDepA(MsgEphemerisSbasDepA),
485 MsgEphemerisGloDepA(MsgEphemerisGloDepA),
487 MsgEphemerisSbasDepB(MsgEphemerisSbasDepB),
489 MsgEphemerisGloDepB(MsgEphemerisGloDepB),
491 MsgEphemerisGpsDepF(MsgEphemerisGpsDepF),
493 MsgEphemerisGloDepC(MsgEphemerisGloDepC),
495 MsgEphemerisGloDepD(MsgEphemerisGloDepD),
497 MsgEphemerisBds(MsgEphemerisBds),
499 MsgEphemerisGps(MsgEphemerisGps),
501 MsgEphemerisGlo(MsgEphemerisGlo),
503 MsgEphemerisSbas(MsgEphemerisSbas),
505 MsgEphemerisGal(MsgEphemerisGal),
507 MsgEphemerisQzss(MsgEphemerisQzss),
509 MsgIono(MsgIono),
511 MsgSvConfigurationGpsDep(MsgSvConfigurationGpsDep),
513 MsgGroupDelayDepA(MsgGroupDelayDepA),
515 MsgGroupDelayDepB(MsgGroupDelayDepB),
517 MsgGroupDelay(MsgGroupDelay),
519 MsgEphemerisGalDepA(MsgEphemerisGalDepA),
521 MsgGnssCapb(MsgGnssCapb),
523 MsgSvAzEl(MsgSvAzEl),
525 MsgSettingsWrite(MsgSettingsWrite),
527 MsgSettingsSave(MsgSettingsSave),
529 MsgSettingsReadByIndexReq(MsgSettingsReadByIndexReq),
531 MsgFileioReadResp(MsgFileioReadResp),
533 MsgSettingsReadReq(MsgSettingsReadReq),
535 MsgSettingsReadResp(MsgSettingsReadResp),
537 MsgSettingsReadByIndexDone(MsgSettingsReadByIndexDone),
539 MsgSettingsReadByIndexResp(MsgSettingsReadByIndexResp),
541 MsgFileioReadReq(MsgFileioReadReq),
543 MsgFileioReadDirReq(MsgFileioReadDirReq),
545 MsgFileioReadDirResp(MsgFileioReadDirResp),
547 MsgFileioWriteResp(MsgFileioWriteResp),
549 MsgFileioRemove(MsgFileioRemove),
551 MsgFileioWriteReq(MsgFileioWriteReq),
553 MsgSettingsRegister(MsgSettingsRegister),
555 MsgSettingsWriteResp(MsgSettingsWriteResp),
557 MsgBootloaderHandshakeDepA(MsgBootloaderHandshakeDepA),
559 MsgBootloaderJumpToApp(MsgBootloaderJumpToApp),
561 MsgResetDep(MsgResetDep),
563 MsgBootloaderHandshakeReq(MsgBootloaderHandshakeReq),
565 MsgBootloaderHandshakeResp(MsgBootloaderHandshakeResp),
567 MsgDeviceMonitor(MsgDeviceMonitor),
569 MsgReset(MsgReset),
571 MsgCommandReq(MsgCommandReq),
573 MsgCommandResp(MsgCommandResp),
575 MsgNetworkStateReq(MsgNetworkStateReq),
577 MsgNetworkStateResp(MsgNetworkStateResp),
579 MsgCommandOutput(MsgCommandOutput),
581 MsgNetworkBandwidthUsage(MsgNetworkBandwidthUsage),
583 MsgCellModemStatus(MsgCellModemStatus),
585 MsgFrontEndGain(MsgFrontEndGain),
587 MsgCwResults(MsgCwResults),
589 MsgCwStart(MsgCwStart),
591 MsgNapDeviceDnaResp(MsgNapDeviceDnaResp),
593 MsgNapDeviceDnaReq(MsgNapDeviceDnaReq),
595 MsgFlashDone(MsgFlashDone),
597 MsgFlashReadResp(MsgFlashReadResp),
599 MsgFlashErase(MsgFlashErase),
601 MsgStmFlashLockSector(MsgStmFlashLockSector),
603 MsgStmFlashUnlockSector(MsgStmFlashUnlockSector),
605 MsgStmUniqueIdResp(MsgStmUniqueIdResp),
607 MsgFlashProgram(MsgFlashProgram),
609 MsgFlashReadReq(MsgFlashReadReq),
611 MsgStmUniqueIdReq(MsgStmUniqueIdReq),
613 MsgM25FlashWriteStatus(MsgM25FlashWriteStatus),
615 MsgGpsTimeDepA(MsgGpsTimeDepA),
617 MsgExtEvent(MsgExtEvent),
619 MsgGpsTime(MsgGpsTime),
621 MsgUtcTime(MsgUtcTime),
623 MsgGpsTimeGnss(MsgGpsTimeGnss),
625 MsgUtcTimeGnss(MsgUtcTimeGnss),
627 MsgTelSv(MsgTelSv),
629 MsgSettingsRegisterResp(MsgSettingsRegisterResp),
631 MsgPosEcefDepA(MsgPosEcefDepA),
633 MsgPosLlhDepA(MsgPosLlhDepA),
635 MsgBaselineEcefDepA(MsgBaselineEcefDepA),
637 MsgBaselineNedDepA(MsgBaselineNedDepA),
639 MsgVelEcefDepA(MsgVelEcefDepA),
641 MsgVelNedDepA(MsgVelNedDepA),
643 MsgDopsDepA(MsgDopsDepA),
645 MsgBaselineHeadingDepA(MsgBaselineHeadingDepA),
647 MsgDops(MsgDops),
649 MsgPosEcef(MsgPosEcef),
651 MsgPosLlh(MsgPosLlh),
653 MsgBaselineEcef(MsgBaselineEcef),
655 MsgBaselineNed(MsgBaselineNed),
657 MsgVelEcef(MsgVelEcef),
659 MsgVelNed(MsgVelNed),
661 MsgBaselineHeading(MsgBaselineHeading),
663 MsgAgeCorrections(MsgAgeCorrections),
665 MsgPosLlhCov(MsgPosLlhCov),
667 MsgVelNedCov(MsgVelNedCov),
669 MsgVelBody(MsgVelBody),
671 MsgPosEcefCov(MsgPosEcefCov),
673 MsgVelEcefCov(MsgVelEcefCov),
675 MsgProtectionLevelDepA(MsgProtectionLevelDepA),
677 MsgProtectionLevel(MsgProtectionLevel),
679 MsgPosLlhAcc(MsgPosLlhAcc),
681 MsgVelCog(MsgVelCog),
683 MsgOrientQuat(MsgOrientQuat),
685 MsgOrientEuler(MsgOrientEuler),
687 MsgAngularRate(MsgAngularRate),
689 MsgPosEcefGnss(MsgPosEcefGnss),
691 MsgPosLlhGnss(MsgPosLlhGnss),
693 MsgVelEcefGnss(MsgVelEcefGnss),
695 MsgVelNedGnss(MsgVelNedGnss),
697 MsgPosLlhCovGnss(MsgPosLlhCovGnss),
699 MsgVelNedCovGnss(MsgVelNedCovGnss),
701 MsgPosEcefCovGnss(MsgPosEcefCovGnss),
703 MsgVelEcefCovGnss(MsgVelEcefCovGnss),
705 MsgUtcLeapSecond(MsgUtcLeapSecond),
707 MsgReferenceFrameParam(MsgReferenceFrameParam),
709 MsgPoseRelative(MsgPoseRelative),
711 MsgNdbEvent(MsgNdbEvent),
713 MsgLog(MsgLog),
715 MsgFwd(MsgFwd),
717 MsgSsrOrbitClockDepA(MsgSsrOrbitClockDepA),
719 MsgSsrOrbitClock(MsgSsrOrbitClock),
721 MsgSsrOrbitClockBounds(MsgSsrOrbitClockBounds),
723 MsgSsrOrbitClockBoundsDegradation(MsgSsrOrbitClockBoundsDegradation),
725 MsgSsrCodeBiases(MsgSsrCodeBiases),
727 MsgSsrPhaseBiases(MsgSsrPhaseBiases),
729 MsgSsrStecCorrectionDepA(MsgSsrStecCorrectionDepA),
731 MsgSsrCodePhaseBiasesBounds(MsgSsrCodePhaseBiasesBounds),
733 MsgSsrGriddedCorrectionNoStdDepA(MsgSsrGriddedCorrectionNoStdDepA),
735 MsgSsrGridDefinitionDepA(MsgSsrGridDefinitionDepA),
737 MsgSsrTileDefinitionDepA(MsgSsrTileDefinitionDepA),
739 MsgSsrTileDefinitionDepB(MsgSsrTileDefinitionDepB),
741 MsgSsrTileDefinition(MsgSsrTileDefinition),
743 MsgSsrGriddedCorrectionDepA(MsgSsrGriddedCorrectionDepA),
745 MsgSsrStecCorrectionDep(MsgSsrStecCorrectionDep),
747 MsgSsrGriddedCorrection(MsgSsrGriddedCorrection),
749 MsgSsrStecCorrection(MsgSsrStecCorrection),
751 MsgSsrGriddedCorrectionBounds(MsgSsrGriddedCorrectionBounds),
753 MsgSsrSatelliteApcDep(MsgSsrSatelliteApcDep),
755 MsgSsrSatelliteApc(MsgSsrSatelliteApc),
757 MsgOsr(MsgOsr),
759 MsgUserData(MsgUserData),
761 MsgImuRaw(MsgImuRaw),
763 MsgImuAux(MsgImuAux),
765 MsgMagRaw(MsgMagRaw),
767 MsgOdometry(MsgOdometry),
769 MsgWheeltick(MsgWheeltick),
771 MsgImuComp(MsgImuComp),
773 MsgSsrFlagHighLevelDepA(MsgSsrFlagHighLevelDepA),
775 MsgSsrFlagHighLevel(MsgSsrFlagHighLevel),
777 MsgSsrFlagSatellites(MsgSsrFlagSatellites),
779 MsgSsrFlagTropoGridPoints(MsgSsrFlagTropoGridPoints),
781 MsgSsrFlagIonoGridPoints(MsgSsrFlagIonoGridPoints),
783 MsgSsrFlagIonoTileSatLos(MsgSsrFlagIonoTileSatLos),
785 MsgSsrFlagIonoGridPointSatLos(MsgSsrFlagIonoGridPointSatLos),
787 MsgAcknowledge(MsgAcknowledge),
789 MsgEd25519SignatureDepA(MsgEd25519SignatureDepA),
791 MsgEd25519CertificateDep(MsgEd25519CertificateDep),
793 MsgEd25519SignatureDepB(MsgEd25519SignatureDepB),
795 MsgEcdsaCertificate(MsgEcdsaCertificate),
797 MsgCertificateChainDep(MsgCertificateChainDep),
799 MsgEcdsaSignatureDepA(MsgEcdsaSignatureDepA),
801 MsgEcdsaSignatureDepB(MsgEcdsaSignatureDepB),
803 MsgEcdsaSignature(MsgEcdsaSignature),
805 MsgCertificateChain(MsgCertificateChain),
807 MsgAesCmacSignature(MsgAesCmacSignature),
809 MsgFileioConfigReq(MsgFileioConfigReq),
811 MsgFileioConfigResp(MsgFileioConfigResp),
813 MsgSbasRaw(MsgSbasRaw),
815 MsgLinuxCpuStateDepA(MsgLinuxCpuStateDepA),
817 MsgLinuxMemStateDepA(MsgLinuxMemStateDepA),
819 MsgLinuxSysStateDepA(MsgLinuxSysStateDepA),
821 MsgLinuxProcessSocketCounts(MsgLinuxProcessSocketCounts),
823 MsgLinuxProcessSocketQueues(MsgLinuxProcessSocketQueues),
825 MsgLinuxSocketUsage(MsgLinuxSocketUsage),
827 MsgLinuxProcessFdCount(MsgLinuxProcessFdCount),
829 MsgLinuxProcessFdSummary(MsgLinuxProcessFdSummary),
831 MsgLinuxCpuState(MsgLinuxCpuState),
833 MsgLinuxMemState(MsgLinuxMemState),
835 MsgLinuxSysState(MsgLinuxSysState),
837 MsgMeasurementPoint(MsgMeasurementPoint),
839 MsgProfilingSystemInfo(MsgProfilingSystemInfo),
841 MsgProfilingThreadInfo(MsgProfilingThreadInfo),
843 MsgProfilingResourceCounter(MsgProfilingResourceCounter),
845 MsgStartup(MsgStartup),
847 MsgDgnssStatus(MsgDgnssStatus),
849 MsgInsStatus(MsgInsStatus),
851 MsgCsacTelemetry(MsgCsacTelemetry),
853 MsgCsacTelemetryLabels(MsgCsacTelemetryLabels),
855 MsgInsUpdates(MsgInsUpdates),
857 MsgGnssTimeOffset(MsgGnssTimeOffset),
859 MsgPpsTime(MsgPpsTime),
861 MsgSensorAidEvent(MsgSensorAidEvent),
863 MsgGroupMeta(MsgGroupMeta),
865 MsgSolnMeta(MsgSolnMeta),
867 MsgSolnMetaDepA(MsgSolnMetaDepA),
869 MsgStatusJournal(MsgStatusJournal),
871 MsgStatusReport(MsgStatusReport),
873 MsgHeartbeat(MsgHeartbeat),
875 Unknown(Unknown),
877 Invalid(Invalid),
879}
880
881#[cfg(feature = "serde_json")]
882impl<'de> serde::Deserialize<'de> for Sbp {
883 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
884 where
885 D: serde::Deserializer<'de>,
886 {
887 let value = serde_json::Value::deserialize(deserializer)?;
888 match value
889 .get("msg_type")
890 .and_then(|v| v.as_u64())
891 .and_then(|v| v.try_into().ok())
892 {
893 Some(MsgPrintDep::MESSAGE_TYPE) => {
894 serde_json::from_value::<MsgPrintDep>(value).map(Sbp::MsgPrintDep)
895 }
896 Some(MsgTrackingStateDetailedDep::MESSAGE_TYPE) => {
897 serde_json::from_value::<MsgTrackingStateDetailedDep>(value)
898 .map(Sbp::MsgTrackingStateDetailedDep)
899 }
900 Some(MsgTrackingStateDepB::MESSAGE_TYPE) => {
901 serde_json::from_value::<MsgTrackingStateDepB>(value).map(Sbp::MsgTrackingStateDepB)
902 }
903 Some(MsgAcqResultDepB::MESSAGE_TYPE) => {
904 serde_json::from_value::<MsgAcqResultDepB>(value).map(Sbp::MsgAcqResultDepB)
905 }
906 Some(MsgAcqResultDepA::MESSAGE_TYPE) => {
907 serde_json::from_value::<MsgAcqResultDepA>(value).map(Sbp::MsgAcqResultDepA)
908 }
909 Some(MsgTrackingStateDepA::MESSAGE_TYPE) => {
910 serde_json::from_value::<MsgTrackingStateDepA>(value).map(Sbp::MsgTrackingStateDepA)
911 }
912 Some(MsgThreadState::MESSAGE_TYPE) => {
913 serde_json::from_value::<MsgThreadState>(value).map(Sbp::MsgThreadState)
914 }
915 Some(MsgUartStateDepa::MESSAGE_TYPE) => {
916 serde_json::from_value::<MsgUartStateDepa>(value).map(Sbp::MsgUartStateDepa)
917 }
918 Some(MsgIarState::MESSAGE_TYPE) => {
919 serde_json::from_value::<MsgIarState>(value).map(Sbp::MsgIarState)
920 }
921 Some(MsgEphemerisDepA::MESSAGE_TYPE) => {
922 serde_json::from_value::<MsgEphemerisDepA>(value).map(Sbp::MsgEphemerisDepA)
923 }
924 Some(MsgMaskSatelliteDep::MESSAGE_TYPE) => {
925 serde_json::from_value::<MsgMaskSatelliteDep>(value).map(Sbp::MsgMaskSatelliteDep)
926 }
927 Some(MsgTrackingIqDepA::MESSAGE_TYPE) => {
928 serde_json::from_value::<MsgTrackingIqDepA>(value).map(Sbp::MsgTrackingIqDepA)
929 }
930 Some(MsgUartState::MESSAGE_TYPE) => {
931 serde_json::from_value::<MsgUartState>(value).map(Sbp::MsgUartState)
932 }
933 Some(MsgAcqSvProfileDep::MESSAGE_TYPE) => {
934 serde_json::from_value::<MsgAcqSvProfileDep>(value).map(Sbp::MsgAcqSvProfileDep)
935 }
936 Some(MsgAcqResultDepC::MESSAGE_TYPE) => {
937 serde_json::from_value::<MsgAcqResultDepC>(value).map(Sbp::MsgAcqResultDepC)
938 }
939 Some(MsgTrackingStateDetailedDepA::MESSAGE_TYPE) => {
940 serde_json::from_value::<MsgTrackingStateDetailedDepA>(value)
941 .map(Sbp::MsgTrackingStateDetailedDepA)
942 }
943 Some(MsgResetFilters::MESSAGE_TYPE) => {
944 serde_json::from_value::<MsgResetFilters>(value).map(Sbp::MsgResetFilters)
945 }
946 Some(MsgInitBaseDep::MESSAGE_TYPE) => {
947 serde_json::from_value::<MsgInitBaseDep>(value).map(Sbp::MsgInitBaseDep)
948 }
949 Some(MsgMaskSatellite::MESSAGE_TYPE) => {
950 serde_json::from_value::<MsgMaskSatellite>(value).map(Sbp::MsgMaskSatellite)
951 }
952 Some(MsgTrackingIqDepB::MESSAGE_TYPE) => {
953 serde_json::from_value::<MsgTrackingIqDepB>(value).map(Sbp::MsgTrackingIqDepB)
954 }
955 Some(MsgTrackingIq::MESSAGE_TYPE) => {
956 serde_json::from_value::<MsgTrackingIq>(value).map(Sbp::MsgTrackingIq)
957 }
958 Some(MsgAcqSvProfile::MESSAGE_TYPE) => {
959 serde_json::from_value::<MsgAcqSvProfile>(value).map(Sbp::MsgAcqSvProfile)
960 }
961 Some(MsgAcqResult::MESSAGE_TYPE) => {
962 serde_json::from_value::<MsgAcqResult>(value).map(Sbp::MsgAcqResult)
963 }
964 Some(MsgTrackingState::MESSAGE_TYPE) => {
965 serde_json::from_value::<MsgTrackingState>(value).map(Sbp::MsgTrackingState)
966 }
967 Some(MsgObsDepB::MESSAGE_TYPE) => {
968 serde_json::from_value::<MsgObsDepB>(value).map(Sbp::MsgObsDepB)
969 }
970 Some(MsgBasePosLlh::MESSAGE_TYPE) => {
971 serde_json::from_value::<MsgBasePosLlh>(value).map(Sbp::MsgBasePosLlh)
972 }
973 Some(MsgObsDepA::MESSAGE_TYPE) => {
974 serde_json::from_value::<MsgObsDepA>(value).map(Sbp::MsgObsDepA)
975 }
976 Some(MsgEphemerisDepB::MESSAGE_TYPE) => {
977 serde_json::from_value::<MsgEphemerisDepB>(value).map(Sbp::MsgEphemerisDepB)
978 }
979 Some(MsgEphemerisDepC::MESSAGE_TYPE) => {
980 serde_json::from_value::<MsgEphemerisDepC>(value).map(Sbp::MsgEphemerisDepC)
981 }
982 Some(MsgBasePosEcef::MESSAGE_TYPE) => {
983 serde_json::from_value::<MsgBasePosEcef>(value).map(Sbp::MsgBasePosEcef)
984 }
985 Some(MsgObsDepC::MESSAGE_TYPE) => {
986 serde_json::from_value::<MsgObsDepC>(value).map(Sbp::MsgObsDepC)
987 }
988 Some(MsgObs::MESSAGE_TYPE) => serde_json::from_value::<MsgObs>(value).map(Sbp::MsgObs),
989 Some(MsgSpecanDep::MESSAGE_TYPE) => {
990 serde_json::from_value::<MsgSpecanDep>(value).map(Sbp::MsgSpecanDep)
991 }
992 Some(MsgSpecan::MESSAGE_TYPE) => {
993 serde_json::from_value::<MsgSpecan>(value).map(Sbp::MsgSpecan)
994 }
995 Some(MsgMeasurementState::MESSAGE_TYPE) => {
996 serde_json::from_value::<MsgMeasurementState>(value).map(Sbp::MsgMeasurementState)
997 }
998 Some(MsgSetTime::MESSAGE_TYPE) => {
999 serde_json::from_value::<MsgSetTime>(value).map(Sbp::MsgSetTime)
1000 }
1001 Some(MsgAlmanac::MESSAGE_TYPE) => {
1002 serde_json::from_value::<MsgAlmanac>(value).map(Sbp::MsgAlmanac)
1003 }
1004 Some(MsgAlmanacGpsDep::MESSAGE_TYPE) => {
1005 serde_json::from_value::<MsgAlmanacGpsDep>(value).map(Sbp::MsgAlmanacGpsDep)
1006 }
1007 Some(MsgAlmanacGloDep::MESSAGE_TYPE) => {
1008 serde_json::from_value::<MsgAlmanacGloDep>(value).map(Sbp::MsgAlmanacGloDep)
1009 }
1010 Some(MsgAlmanacGps::MESSAGE_TYPE) => {
1011 serde_json::from_value::<MsgAlmanacGps>(value).map(Sbp::MsgAlmanacGps)
1012 }
1013 Some(MsgAlmanacGlo::MESSAGE_TYPE) => {
1014 serde_json::from_value::<MsgAlmanacGlo>(value).map(Sbp::MsgAlmanacGlo)
1015 }
1016 Some(MsgGloBiases::MESSAGE_TYPE) => {
1017 serde_json::from_value::<MsgGloBiases>(value).map(Sbp::MsgGloBiases)
1018 }
1019 Some(MsgEphemerisDepD::MESSAGE_TYPE) => {
1020 serde_json::from_value::<MsgEphemerisDepD>(value).map(Sbp::MsgEphemerisDepD)
1021 }
1022 Some(MsgEphemerisGpsDepE::MESSAGE_TYPE) => {
1023 serde_json::from_value::<MsgEphemerisGpsDepE>(value).map(Sbp::MsgEphemerisGpsDepE)
1024 }
1025 Some(MsgEphemerisSbasDepA::MESSAGE_TYPE) => {
1026 serde_json::from_value::<MsgEphemerisSbasDepA>(value).map(Sbp::MsgEphemerisSbasDepA)
1027 }
1028 Some(MsgEphemerisGloDepA::MESSAGE_TYPE) => {
1029 serde_json::from_value::<MsgEphemerisGloDepA>(value).map(Sbp::MsgEphemerisGloDepA)
1030 }
1031 Some(MsgEphemerisSbasDepB::MESSAGE_TYPE) => {
1032 serde_json::from_value::<MsgEphemerisSbasDepB>(value).map(Sbp::MsgEphemerisSbasDepB)
1033 }
1034 Some(MsgEphemerisGloDepB::MESSAGE_TYPE) => {
1035 serde_json::from_value::<MsgEphemerisGloDepB>(value).map(Sbp::MsgEphemerisGloDepB)
1036 }
1037 Some(MsgEphemerisGpsDepF::MESSAGE_TYPE) => {
1038 serde_json::from_value::<MsgEphemerisGpsDepF>(value).map(Sbp::MsgEphemerisGpsDepF)
1039 }
1040 Some(MsgEphemerisGloDepC::MESSAGE_TYPE) => {
1041 serde_json::from_value::<MsgEphemerisGloDepC>(value).map(Sbp::MsgEphemerisGloDepC)
1042 }
1043 Some(MsgEphemerisGloDepD::MESSAGE_TYPE) => {
1044 serde_json::from_value::<MsgEphemerisGloDepD>(value).map(Sbp::MsgEphemerisGloDepD)
1045 }
1046 Some(MsgEphemerisBds::MESSAGE_TYPE) => {
1047 serde_json::from_value::<MsgEphemerisBds>(value).map(Sbp::MsgEphemerisBds)
1048 }
1049 Some(MsgEphemerisGps::MESSAGE_TYPE) => {
1050 serde_json::from_value::<MsgEphemerisGps>(value).map(Sbp::MsgEphemerisGps)
1051 }
1052 Some(MsgEphemerisGlo::MESSAGE_TYPE) => {
1053 serde_json::from_value::<MsgEphemerisGlo>(value).map(Sbp::MsgEphemerisGlo)
1054 }
1055 Some(MsgEphemerisSbas::MESSAGE_TYPE) => {
1056 serde_json::from_value::<MsgEphemerisSbas>(value).map(Sbp::MsgEphemerisSbas)
1057 }
1058 Some(MsgEphemerisGal::MESSAGE_TYPE) => {
1059 serde_json::from_value::<MsgEphemerisGal>(value).map(Sbp::MsgEphemerisGal)
1060 }
1061 Some(MsgEphemerisQzss::MESSAGE_TYPE) => {
1062 serde_json::from_value::<MsgEphemerisQzss>(value).map(Sbp::MsgEphemerisQzss)
1063 }
1064 Some(MsgIono::MESSAGE_TYPE) => {
1065 serde_json::from_value::<MsgIono>(value).map(Sbp::MsgIono)
1066 }
1067 Some(MsgSvConfigurationGpsDep::MESSAGE_TYPE) => {
1068 serde_json::from_value::<MsgSvConfigurationGpsDep>(value)
1069 .map(Sbp::MsgSvConfigurationGpsDep)
1070 }
1071 Some(MsgGroupDelayDepA::MESSAGE_TYPE) => {
1072 serde_json::from_value::<MsgGroupDelayDepA>(value).map(Sbp::MsgGroupDelayDepA)
1073 }
1074 Some(MsgGroupDelayDepB::MESSAGE_TYPE) => {
1075 serde_json::from_value::<MsgGroupDelayDepB>(value).map(Sbp::MsgGroupDelayDepB)
1076 }
1077 Some(MsgGroupDelay::MESSAGE_TYPE) => {
1078 serde_json::from_value::<MsgGroupDelay>(value).map(Sbp::MsgGroupDelay)
1079 }
1080 Some(MsgEphemerisGalDepA::MESSAGE_TYPE) => {
1081 serde_json::from_value::<MsgEphemerisGalDepA>(value).map(Sbp::MsgEphemerisGalDepA)
1082 }
1083 Some(MsgGnssCapb::MESSAGE_TYPE) => {
1084 serde_json::from_value::<MsgGnssCapb>(value).map(Sbp::MsgGnssCapb)
1085 }
1086 Some(MsgSvAzEl::MESSAGE_TYPE) => {
1087 serde_json::from_value::<MsgSvAzEl>(value).map(Sbp::MsgSvAzEl)
1088 }
1089 Some(MsgSettingsWrite::MESSAGE_TYPE) => {
1090 serde_json::from_value::<MsgSettingsWrite>(value).map(Sbp::MsgSettingsWrite)
1091 }
1092 Some(MsgSettingsSave::MESSAGE_TYPE) => {
1093 serde_json::from_value::<MsgSettingsSave>(value).map(Sbp::MsgSettingsSave)
1094 }
1095 Some(MsgSettingsReadByIndexReq::MESSAGE_TYPE) => {
1096 serde_json::from_value::<MsgSettingsReadByIndexReq>(value)
1097 .map(Sbp::MsgSettingsReadByIndexReq)
1098 }
1099 Some(MsgFileioReadResp::MESSAGE_TYPE) => {
1100 serde_json::from_value::<MsgFileioReadResp>(value).map(Sbp::MsgFileioReadResp)
1101 }
1102 Some(MsgSettingsReadReq::MESSAGE_TYPE) => {
1103 serde_json::from_value::<MsgSettingsReadReq>(value).map(Sbp::MsgSettingsReadReq)
1104 }
1105 Some(MsgSettingsReadResp::MESSAGE_TYPE) => {
1106 serde_json::from_value::<MsgSettingsReadResp>(value).map(Sbp::MsgSettingsReadResp)
1107 }
1108 Some(MsgSettingsReadByIndexDone::MESSAGE_TYPE) => {
1109 serde_json::from_value::<MsgSettingsReadByIndexDone>(value)
1110 .map(Sbp::MsgSettingsReadByIndexDone)
1111 }
1112 Some(MsgSettingsReadByIndexResp::MESSAGE_TYPE) => {
1113 serde_json::from_value::<MsgSettingsReadByIndexResp>(value)
1114 .map(Sbp::MsgSettingsReadByIndexResp)
1115 }
1116 Some(MsgFileioReadReq::MESSAGE_TYPE) => {
1117 serde_json::from_value::<MsgFileioReadReq>(value).map(Sbp::MsgFileioReadReq)
1118 }
1119 Some(MsgFileioReadDirReq::MESSAGE_TYPE) => {
1120 serde_json::from_value::<MsgFileioReadDirReq>(value).map(Sbp::MsgFileioReadDirReq)
1121 }
1122 Some(MsgFileioReadDirResp::MESSAGE_TYPE) => {
1123 serde_json::from_value::<MsgFileioReadDirResp>(value).map(Sbp::MsgFileioReadDirResp)
1124 }
1125 Some(MsgFileioWriteResp::MESSAGE_TYPE) => {
1126 serde_json::from_value::<MsgFileioWriteResp>(value).map(Sbp::MsgFileioWriteResp)
1127 }
1128 Some(MsgFileioRemove::MESSAGE_TYPE) => {
1129 serde_json::from_value::<MsgFileioRemove>(value).map(Sbp::MsgFileioRemove)
1130 }
1131 Some(MsgFileioWriteReq::MESSAGE_TYPE) => {
1132 serde_json::from_value::<MsgFileioWriteReq>(value).map(Sbp::MsgFileioWriteReq)
1133 }
1134 Some(MsgSettingsRegister::MESSAGE_TYPE) => {
1135 serde_json::from_value::<MsgSettingsRegister>(value).map(Sbp::MsgSettingsRegister)
1136 }
1137 Some(MsgSettingsWriteResp::MESSAGE_TYPE) => {
1138 serde_json::from_value::<MsgSettingsWriteResp>(value).map(Sbp::MsgSettingsWriteResp)
1139 }
1140 Some(MsgBootloaderHandshakeDepA::MESSAGE_TYPE) => {
1141 serde_json::from_value::<MsgBootloaderHandshakeDepA>(value)
1142 .map(Sbp::MsgBootloaderHandshakeDepA)
1143 }
1144 Some(MsgBootloaderJumpToApp::MESSAGE_TYPE) => {
1145 serde_json::from_value::<MsgBootloaderJumpToApp>(value)
1146 .map(Sbp::MsgBootloaderJumpToApp)
1147 }
1148 Some(MsgResetDep::MESSAGE_TYPE) => {
1149 serde_json::from_value::<MsgResetDep>(value).map(Sbp::MsgResetDep)
1150 }
1151 Some(MsgBootloaderHandshakeReq::MESSAGE_TYPE) => {
1152 serde_json::from_value::<MsgBootloaderHandshakeReq>(value)
1153 .map(Sbp::MsgBootloaderHandshakeReq)
1154 }
1155 Some(MsgBootloaderHandshakeResp::MESSAGE_TYPE) => {
1156 serde_json::from_value::<MsgBootloaderHandshakeResp>(value)
1157 .map(Sbp::MsgBootloaderHandshakeResp)
1158 }
1159 Some(MsgDeviceMonitor::MESSAGE_TYPE) => {
1160 serde_json::from_value::<MsgDeviceMonitor>(value).map(Sbp::MsgDeviceMonitor)
1161 }
1162 Some(MsgReset::MESSAGE_TYPE) => {
1163 serde_json::from_value::<MsgReset>(value).map(Sbp::MsgReset)
1164 }
1165 Some(MsgCommandReq::MESSAGE_TYPE) => {
1166 serde_json::from_value::<MsgCommandReq>(value).map(Sbp::MsgCommandReq)
1167 }
1168 Some(MsgCommandResp::MESSAGE_TYPE) => {
1169 serde_json::from_value::<MsgCommandResp>(value).map(Sbp::MsgCommandResp)
1170 }
1171 Some(MsgNetworkStateReq::MESSAGE_TYPE) => {
1172 serde_json::from_value::<MsgNetworkStateReq>(value).map(Sbp::MsgNetworkStateReq)
1173 }
1174 Some(MsgNetworkStateResp::MESSAGE_TYPE) => {
1175 serde_json::from_value::<MsgNetworkStateResp>(value).map(Sbp::MsgNetworkStateResp)
1176 }
1177 Some(MsgCommandOutput::MESSAGE_TYPE) => {
1178 serde_json::from_value::<MsgCommandOutput>(value).map(Sbp::MsgCommandOutput)
1179 }
1180 Some(MsgNetworkBandwidthUsage::MESSAGE_TYPE) => {
1181 serde_json::from_value::<MsgNetworkBandwidthUsage>(value)
1182 .map(Sbp::MsgNetworkBandwidthUsage)
1183 }
1184 Some(MsgCellModemStatus::MESSAGE_TYPE) => {
1185 serde_json::from_value::<MsgCellModemStatus>(value).map(Sbp::MsgCellModemStatus)
1186 }
1187 Some(MsgFrontEndGain::MESSAGE_TYPE) => {
1188 serde_json::from_value::<MsgFrontEndGain>(value).map(Sbp::MsgFrontEndGain)
1189 }
1190 Some(MsgCwResults::MESSAGE_TYPE) => {
1191 serde_json::from_value::<MsgCwResults>(value).map(Sbp::MsgCwResults)
1192 }
1193 Some(MsgCwStart::MESSAGE_TYPE) => {
1194 serde_json::from_value::<MsgCwStart>(value).map(Sbp::MsgCwStart)
1195 }
1196 Some(MsgNapDeviceDnaResp::MESSAGE_TYPE) => {
1197 serde_json::from_value::<MsgNapDeviceDnaResp>(value).map(Sbp::MsgNapDeviceDnaResp)
1198 }
1199 Some(MsgNapDeviceDnaReq::MESSAGE_TYPE) => {
1200 serde_json::from_value::<MsgNapDeviceDnaReq>(value).map(Sbp::MsgNapDeviceDnaReq)
1201 }
1202 Some(MsgFlashDone::MESSAGE_TYPE) => {
1203 serde_json::from_value::<MsgFlashDone>(value).map(Sbp::MsgFlashDone)
1204 }
1205 Some(MsgFlashReadResp::MESSAGE_TYPE) => {
1206 serde_json::from_value::<MsgFlashReadResp>(value).map(Sbp::MsgFlashReadResp)
1207 }
1208 Some(MsgFlashErase::MESSAGE_TYPE) => {
1209 serde_json::from_value::<MsgFlashErase>(value).map(Sbp::MsgFlashErase)
1210 }
1211 Some(MsgStmFlashLockSector::MESSAGE_TYPE) => {
1212 serde_json::from_value::<MsgStmFlashLockSector>(value)
1213 .map(Sbp::MsgStmFlashLockSector)
1214 }
1215 Some(MsgStmFlashUnlockSector::MESSAGE_TYPE) => {
1216 serde_json::from_value::<MsgStmFlashUnlockSector>(value)
1217 .map(Sbp::MsgStmFlashUnlockSector)
1218 }
1219 Some(MsgStmUniqueIdResp::MESSAGE_TYPE) => {
1220 serde_json::from_value::<MsgStmUniqueIdResp>(value).map(Sbp::MsgStmUniqueIdResp)
1221 }
1222 Some(MsgFlashProgram::MESSAGE_TYPE) => {
1223 serde_json::from_value::<MsgFlashProgram>(value).map(Sbp::MsgFlashProgram)
1224 }
1225 Some(MsgFlashReadReq::MESSAGE_TYPE) => {
1226 serde_json::from_value::<MsgFlashReadReq>(value).map(Sbp::MsgFlashReadReq)
1227 }
1228 Some(MsgStmUniqueIdReq::MESSAGE_TYPE) => {
1229 serde_json::from_value::<MsgStmUniqueIdReq>(value).map(Sbp::MsgStmUniqueIdReq)
1230 }
1231 Some(MsgM25FlashWriteStatus::MESSAGE_TYPE) => {
1232 serde_json::from_value::<MsgM25FlashWriteStatus>(value)
1233 .map(Sbp::MsgM25FlashWriteStatus)
1234 }
1235 Some(MsgGpsTimeDepA::MESSAGE_TYPE) => {
1236 serde_json::from_value::<MsgGpsTimeDepA>(value).map(Sbp::MsgGpsTimeDepA)
1237 }
1238 Some(MsgExtEvent::MESSAGE_TYPE) => {
1239 serde_json::from_value::<MsgExtEvent>(value).map(Sbp::MsgExtEvent)
1240 }
1241 Some(MsgGpsTime::MESSAGE_TYPE) => {
1242 serde_json::from_value::<MsgGpsTime>(value).map(Sbp::MsgGpsTime)
1243 }
1244 Some(MsgUtcTime::MESSAGE_TYPE) => {
1245 serde_json::from_value::<MsgUtcTime>(value).map(Sbp::MsgUtcTime)
1246 }
1247 Some(MsgGpsTimeGnss::MESSAGE_TYPE) => {
1248 serde_json::from_value::<MsgGpsTimeGnss>(value).map(Sbp::MsgGpsTimeGnss)
1249 }
1250 Some(MsgUtcTimeGnss::MESSAGE_TYPE) => {
1251 serde_json::from_value::<MsgUtcTimeGnss>(value).map(Sbp::MsgUtcTimeGnss)
1252 }
1253 Some(MsgTelSv::MESSAGE_TYPE) => {
1254 serde_json::from_value::<MsgTelSv>(value).map(Sbp::MsgTelSv)
1255 }
1256 Some(MsgSettingsRegisterResp::MESSAGE_TYPE) => {
1257 serde_json::from_value::<MsgSettingsRegisterResp>(value)
1258 .map(Sbp::MsgSettingsRegisterResp)
1259 }
1260 Some(MsgPosEcefDepA::MESSAGE_TYPE) => {
1261 serde_json::from_value::<MsgPosEcefDepA>(value).map(Sbp::MsgPosEcefDepA)
1262 }
1263 Some(MsgPosLlhDepA::MESSAGE_TYPE) => {
1264 serde_json::from_value::<MsgPosLlhDepA>(value).map(Sbp::MsgPosLlhDepA)
1265 }
1266 Some(MsgBaselineEcefDepA::MESSAGE_TYPE) => {
1267 serde_json::from_value::<MsgBaselineEcefDepA>(value).map(Sbp::MsgBaselineEcefDepA)
1268 }
1269 Some(MsgBaselineNedDepA::MESSAGE_TYPE) => {
1270 serde_json::from_value::<MsgBaselineNedDepA>(value).map(Sbp::MsgBaselineNedDepA)
1271 }
1272 Some(MsgVelEcefDepA::MESSAGE_TYPE) => {
1273 serde_json::from_value::<MsgVelEcefDepA>(value).map(Sbp::MsgVelEcefDepA)
1274 }
1275 Some(MsgVelNedDepA::MESSAGE_TYPE) => {
1276 serde_json::from_value::<MsgVelNedDepA>(value).map(Sbp::MsgVelNedDepA)
1277 }
1278 Some(MsgDopsDepA::MESSAGE_TYPE) => {
1279 serde_json::from_value::<MsgDopsDepA>(value).map(Sbp::MsgDopsDepA)
1280 }
1281 Some(MsgBaselineHeadingDepA::MESSAGE_TYPE) => {
1282 serde_json::from_value::<MsgBaselineHeadingDepA>(value)
1283 .map(Sbp::MsgBaselineHeadingDepA)
1284 }
1285 Some(MsgDops::MESSAGE_TYPE) => {
1286 serde_json::from_value::<MsgDops>(value).map(Sbp::MsgDops)
1287 }
1288 Some(MsgPosEcef::MESSAGE_TYPE) => {
1289 serde_json::from_value::<MsgPosEcef>(value).map(Sbp::MsgPosEcef)
1290 }
1291 Some(MsgPosLlh::MESSAGE_TYPE) => {
1292 serde_json::from_value::<MsgPosLlh>(value).map(Sbp::MsgPosLlh)
1293 }
1294 Some(MsgBaselineEcef::MESSAGE_TYPE) => {
1295 serde_json::from_value::<MsgBaselineEcef>(value).map(Sbp::MsgBaselineEcef)
1296 }
1297 Some(MsgBaselineNed::MESSAGE_TYPE) => {
1298 serde_json::from_value::<MsgBaselineNed>(value).map(Sbp::MsgBaselineNed)
1299 }
1300 Some(MsgVelEcef::MESSAGE_TYPE) => {
1301 serde_json::from_value::<MsgVelEcef>(value).map(Sbp::MsgVelEcef)
1302 }
1303 Some(MsgVelNed::MESSAGE_TYPE) => {
1304 serde_json::from_value::<MsgVelNed>(value).map(Sbp::MsgVelNed)
1305 }
1306 Some(MsgBaselineHeading::MESSAGE_TYPE) => {
1307 serde_json::from_value::<MsgBaselineHeading>(value).map(Sbp::MsgBaselineHeading)
1308 }
1309 Some(MsgAgeCorrections::MESSAGE_TYPE) => {
1310 serde_json::from_value::<MsgAgeCorrections>(value).map(Sbp::MsgAgeCorrections)
1311 }
1312 Some(MsgPosLlhCov::MESSAGE_TYPE) => {
1313 serde_json::from_value::<MsgPosLlhCov>(value).map(Sbp::MsgPosLlhCov)
1314 }
1315 Some(MsgVelNedCov::MESSAGE_TYPE) => {
1316 serde_json::from_value::<MsgVelNedCov>(value).map(Sbp::MsgVelNedCov)
1317 }
1318 Some(MsgVelBody::MESSAGE_TYPE) => {
1319 serde_json::from_value::<MsgVelBody>(value).map(Sbp::MsgVelBody)
1320 }
1321 Some(MsgPosEcefCov::MESSAGE_TYPE) => {
1322 serde_json::from_value::<MsgPosEcefCov>(value).map(Sbp::MsgPosEcefCov)
1323 }
1324 Some(MsgVelEcefCov::MESSAGE_TYPE) => {
1325 serde_json::from_value::<MsgVelEcefCov>(value).map(Sbp::MsgVelEcefCov)
1326 }
1327 Some(MsgProtectionLevelDepA::MESSAGE_TYPE) => {
1328 serde_json::from_value::<MsgProtectionLevelDepA>(value)
1329 .map(Sbp::MsgProtectionLevelDepA)
1330 }
1331 Some(MsgProtectionLevel::MESSAGE_TYPE) => {
1332 serde_json::from_value::<MsgProtectionLevel>(value).map(Sbp::MsgProtectionLevel)
1333 }
1334 Some(MsgPosLlhAcc::MESSAGE_TYPE) => {
1335 serde_json::from_value::<MsgPosLlhAcc>(value).map(Sbp::MsgPosLlhAcc)
1336 }
1337 Some(MsgVelCog::MESSAGE_TYPE) => {
1338 serde_json::from_value::<MsgVelCog>(value).map(Sbp::MsgVelCog)
1339 }
1340 Some(MsgOrientQuat::MESSAGE_TYPE) => {
1341 serde_json::from_value::<MsgOrientQuat>(value).map(Sbp::MsgOrientQuat)
1342 }
1343 Some(MsgOrientEuler::MESSAGE_TYPE) => {
1344 serde_json::from_value::<MsgOrientEuler>(value).map(Sbp::MsgOrientEuler)
1345 }
1346 Some(MsgAngularRate::MESSAGE_TYPE) => {
1347 serde_json::from_value::<MsgAngularRate>(value).map(Sbp::MsgAngularRate)
1348 }
1349 Some(MsgPosEcefGnss::MESSAGE_TYPE) => {
1350 serde_json::from_value::<MsgPosEcefGnss>(value).map(Sbp::MsgPosEcefGnss)
1351 }
1352 Some(MsgPosLlhGnss::MESSAGE_TYPE) => {
1353 serde_json::from_value::<MsgPosLlhGnss>(value).map(Sbp::MsgPosLlhGnss)
1354 }
1355 Some(MsgVelEcefGnss::MESSAGE_TYPE) => {
1356 serde_json::from_value::<MsgVelEcefGnss>(value).map(Sbp::MsgVelEcefGnss)
1357 }
1358 Some(MsgVelNedGnss::MESSAGE_TYPE) => {
1359 serde_json::from_value::<MsgVelNedGnss>(value).map(Sbp::MsgVelNedGnss)
1360 }
1361 Some(MsgPosLlhCovGnss::MESSAGE_TYPE) => {
1362 serde_json::from_value::<MsgPosLlhCovGnss>(value).map(Sbp::MsgPosLlhCovGnss)
1363 }
1364 Some(MsgVelNedCovGnss::MESSAGE_TYPE) => {
1365 serde_json::from_value::<MsgVelNedCovGnss>(value).map(Sbp::MsgVelNedCovGnss)
1366 }
1367 Some(MsgPosEcefCovGnss::MESSAGE_TYPE) => {
1368 serde_json::from_value::<MsgPosEcefCovGnss>(value).map(Sbp::MsgPosEcefCovGnss)
1369 }
1370 Some(MsgVelEcefCovGnss::MESSAGE_TYPE) => {
1371 serde_json::from_value::<MsgVelEcefCovGnss>(value).map(Sbp::MsgVelEcefCovGnss)
1372 }
1373 Some(MsgUtcLeapSecond::MESSAGE_TYPE) => {
1374 serde_json::from_value::<MsgUtcLeapSecond>(value).map(Sbp::MsgUtcLeapSecond)
1375 }
1376 Some(MsgReferenceFrameParam::MESSAGE_TYPE) => {
1377 serde_json::from_value::<MsgReferenceFrameParam>(value)
1378 .map(Sbp::MsgReferenceFrameParam)
1379 }
1380 Some(MsgPoseRelative::MESSAGE_TYPE) => {
1381 serde_json::from_value::<MsgPoseRelative>(value).map(Sbp::MsgPoseRelative)
1382 }
1383 Some(MsgNdbEvent::MESSAGE_TYPE) => {
1384 serde_json::from_value::<MsgNdbEvent>(value).map(Sbp::MsgNdbEvent)
1385 }
1386 Some(MsgLog::MESSAGE_TYPE) => serde_json::from_value::<MsgLog>(value).map(Sbp::MsgLog),
1387 Some(MsgFwd::MESSAGE_TYPE) => serde_json::from_value::<MsgFwd>(value).map(Sbp::MsgFwd),
1388 Some(MsgSsrOrbitClockDepA::MESSAGE_TYPE) => {
1389 serde_json::from_value::<MsgSsrOrbitClockDepA>(value).map(Sbp::MsgSsrOrbitClockDepA)
1390 }
1391 Some(MsgSsrOrbitClock::MESSAGE_TYPE) => {
1392 serde_json::from_value::<MsgSsrOrbitClock>(value).map(Sbp::MsgSsrOrbitClock)
1393 }
1394 Some(MsgSsrOrbitClockBounds::MESSAGE_TYPE) => {
1395 serde_json::from_value::<MsgSsrOrbitClockBounds>(value)
1396 .map(Sbp::MsgSsrOrbitClockBounds)
1397 }
1398 Some(MsgSsrOrbitClockBoundsDegradation::MESSAGE_TYPE) => {
1399 serde_json::from_value::<MsgSsrOrbitClockBoundsDegradation>(value)
1400 .map(Sbp::MsgSsrOrbitClockBoundsDegradation)
1401 }
1402 Some(MsgSsrCodeBiases::MESSAGE_TYPE) => {
1403 serde_json::from_value::<MsgSsrCodeBiases>(value).map(Sbp::MsgSsrCodeBiases)
1404 }
1405 Some(MsgSsrPhaseBiases::MESSAGE_TYPE) => {
1406 serde_json::from_value::<MsgSsrPhaseBiases>(value).map(Sbp::MsgSsrPhaseBiases)
1407 }
1408 Some(MsgSsrStecCorrectionDepA::MESSAGE_TYPE) => {
1409 serde_json::from_value::<MsgSsrStecCorrectionDepA>(value)
1410 .map(Sbp::MsgSsrStecCorrectionDepA)
1411 }
1412 Some(MsgSsrCodePhaseBiasesBounds::MESSAGE_TYPE) => {
1413 serde_json::from_value::<MsgSsrCodePhaseBiasesBounds>(value)
1414 .map(Sbp::MsgSsrCodePhaseBiasesBounds)
1415 }
1416 Some(MsgSsrGriddedCorrectionNoStdDepA::MESSAGE_TYPE) => {
1417 serde_json::from_value::<MsgSsrGriddedCorrectionNoStdDepA>(value)
1418 .map(Sbp::MsgSsrGriddedCorrectionNoStdDepA)
1419 }
1420 Some(MsgSsrGridDefinitionDepA::MESSAGE_TYPE) => {
1421 serde_json::from_value::<MsgSsrGridDefinitionDepA>(value)
1422 .map(Sbp::MsgSsrGridDefinitionDepA)
1423 }
1424 Some(MsgSsrTileDefinitionDepA::MESSAGE_TYPE) => {
1425 serde_json::from_value::<MsgSsrTileDefinitionDepA>(value)
1426 .map(Sbp::MsgSsrTileDefinitionDepA)
1427 }
1428 Some(MsgSsrTileDefinitionDepB::MESSAGE_TYPE) => {
1429 serde_json::from_value::<MsgSsrTileDefinitionDepB>(value)
1430 .map(Sbp::MsgSsrTileDefinitionDepB)
1431 }
1432 Some(MsgSsrTileDefinition::MESSAGE_TYPE) => {
1433 serde_json::from_value::<MsgSsrTileDefinition>(value).map(Sbp::MsgSsrTileDefinition)
1434 }
1435 Some(MsgSsrGriddedCorrectionDepA::MESSAGE_TYPE) => {
1436 serde_json::from_value::<MsgSsrGriddedCorrectionDepA>(value)
1437 .map(Sbp::MsgSsrGriddedCorrectionDepA)
1438 }
1439 Some(MsgSsrStecCorrectionDep::MESSAGE_TYPE) => {
1440 serde_json::from_value::<MsgSsrStecCorrectionDep>(value)
1441 .map(Sbp::MsgSsrStecCorrectionDep)
1442 }
1443 Some(MsgSsrGriddedCorrection::MESSAGE_TYPE) => {
1444 serde_json::from_value::<MsgSsrGriddedCorrection>(value)
1445 .map(Sbp::MsgSsrGriddedCorrection)
1446 }
1447 Some(MsgSsrStecCorrection::MESSAGE_TYPE) => {
1448 serde_json::from_value::<MsgSsrStecCorrection>(value).map(Sbp::MsgSsrStecCorrection)
1449 }
1450 Some(MsgSsrGriddedCorrectionBounds::MESSAGE_TYPE) => {
1451 serde_json::from_value::<MsgSsrGriddedCorrectionBounds>(value)
1452 .map(Sbp::MsgSsrGriddedCorrectionBounds)
1453 }
1454 Some(MsgSsrSatelliteApcDep::MESSAGE_TYPE) => {
1455 serde_json::from_value::<MsgSsrSatelliteApcDep>(value)
1456 .map(Sbp::MsgSsrSatelliteApcDep)
1457 }
1458 Some(MsgSsrSatelliteApc::MESSAGE_TYPE) => {
1459 serde_json::from_value::<MsgSsrSatelliteApc>(value).map(Sbp::MsgSsrSatelliteApc)
1460 }
1461 Some(MsgOsr::MESSAGE_TYPE) => serde_json::from_value::<MsgOsr>(value).map(Sbp::MsgOsr),
1462 Some(MsgUserData::MESSAGE_TYPE) => {
1463 serde_json::from_value::<MsgUserData>(value).map(Sbp::MsgUserData)
1464 }
1465 Some(MsgImuRaw::MESSAGE_TYPE) => {
1466 serde_json::from_value::<MsgImuRaw>(value).map(Sbp::MsgImuRaw)
1467 }
1468 Some(MsgImuAux::MESSAGE_TYPE) => {
1469 serde_json::from_value::<MsgImuAux>(value).map(Sbp::MsgImuAux)
1470 }
1471 Some(MsgMagRaw::MESSAGE_TYPE) => {
1472 serde_json::from_value::<MsgMagRaw>(value).map(Sbp::MsgMagRaw)
1473 }
1474 Some(MsgOdometry::MESSAGE_TYPE) => {
1475 serde_json::from_value::<MsgOdometry>(value).map(Sbp::MsgOdometry)
1476 }
1477 Some(MsgWheeltick::MESSAGE_TYPE) => {
1478 serde_json::from_value::<MsgWheeltick>(value).map(Sbp::MsgWheeltick)
1479 }
1480 Some(MsgImuComp::MESSAGE_TYPE) => {
1481 serde_json::from_value::<MsgImuComp>(value).map(Sbp::MsgImuComp)
1482 }
1483 Some(MsgSsrFlagHighLevelDepA::MESSAGE_TYPE) => {
1484 serde_json::from_value::<MsgSsrFlagHighLevelDepA>(value)
1485 .map(Sbp::MsgSsrFlagHighLevelDepA)
1486 }
1487 Some(MsgSsrFlagHighLevel::MESSAGE_TYPE) => {
1488 serde_json::from_value::<MsgSsrFlagHighLevel>(value).map(Sbp::MsgSsrFlagHighLevel)
1489 }
1490 Some(MsgSsrFlagSatellites::MESSAGE_TYPE) => {
1491 serde_json::from_value::<MsgSsrFlagSatellites>(value).map(Sbp::MsgSsrFlagSatellites)
1492 }
1493 Some(MsgSsrFlagTropoGridPoints::MESSAGE_TYPE) => {
1494 serde_json::from_value::<MsgSsrFlagTropoGridPoints>(value)
1495 .map(Sbp::MsgSsrFlagTropoGridPoints)
1496 }
1497 Some(MsgSsrFlagIonoGridPoints::MESSAGE_TYPE) => {
1498 serde_json::from_value::<MsgSsrFlagIonoGridPoints>(value)
1499 .map(Sbp::MsgSsrFlagIonoGridPoints)
1500 }
1501 Some(MsgSsrFlagIonoTileSatLos::MESSAGE_TYPE) => {
1502 serde_json::from_value::<MsgSsrFlagIonoTileSatLos>(value)
1503 .map(Sbp::MsgSsrFlagIonoTileSatLos)
1504 }
1505 Some(MsgSsrFlagIonoGridPointSatLos::MESSAGE_TYPE) => {
1506 serde_json::from_value::<MsgSsrFlagIonoGridPointSatLos>(value)
1507 .map(Sbp::MsgSsrFlagIonoGridPointSatLos)
1508 }
1509 Some(MsgAcknowledge::MESSAGE_TYPE) => {
1510 serde_json::from_value::<MsgAcknowledge>(value).map(Sbp::MsgAcknowledge)
1511 }
1512 Some(MsgEd25519SignatureDepA::MESSAGE_TYPE) => {
1513 serde_json::from_value::<MsgEd25519SignatureDepA>(value)
1514 .map(Sbp::MsgEd25519SignatureDepA)
1515 }
1516 Some(MsgEd25519CertificateDep::MESSAGE_TYPE) => {
1517 serde_json::from_value::<MsgEd25519CertificateDep>(value)
1518 .map(Sbp::MsgEd25519CertificateDep)
1519 }
1520 Some(MsgEd25519SignatureDepB::MESSAGE_TYPE) => {
1521 serde_json::from_value::<MsgEd25519SignatureDepB>(value)
1522 .map(Sbp::MsgEd25519SignatureDepB)
1523 }
1524 Some(MsgEcdsaCertificate::MESSAGE_TYPE) => {
1525 serde_json::from_value::<MsgEcdsaCertificate>(value).map(Sbp::MsgEcdsaCertificate)
1526 }
1527 Some(MsgCertificateChainDep::MESSAGE_TYPE) => {
1528 serde_json::from_value::<MsgCertificateChainDep>(value)
1529 .map(Sbp::MsgCertificateChainDep)
1530 }
1531 Some(MsgEcdsaSignatureDepA::MESSAGE_TYPE) => {
1532 serde_json::from_value::<MsgEcdsaSignatureDepA>(value)
1533 .map(Sbp::MsgEcdsaSignatureDepA)
1534 }
1535 Some(MsgEcdsaSignatureDepB::MESSAGE_TYPE) => {
1536 serde_json::from_value::<MsgEcdsaSignatureDepB>(value)
1537 .map(Sbp::MsgEcdsaSignatureDepB)
1538 }
1539 Some(MsgEcdsaSignature::MESSAGE_TYPE) => {
1540 serde_json::from_value::<MsgEcdsaSignature>(value).map(Sbp::MsgEcdsaSignature)
1541 }
1542 Some(MsgCertificateChain::MESSAGE_TYPE) => {
1543 serde_json::from_value::<MsgCertificateChain>(value).map(Sbp::MsgCertificateChain)
1544 }
1545 Some(MsgAesCmacSignature::MESSAGE_TYPE) => {
1546 serde_json::from_value::<MsgAesCmacSignature>(value).map(Sbp::MsgAesCmacSignature)
1547 }
1548 Some(MsgFileioConfigReq::MESSAGE_TYPE) => {
1549 serde_json::from_value::<MsgFileioConfigReq>(value).map(Sbp::MsgFileioConfigReq)
1550 }
1551 Some(MsgFileioConfigResp::MESSAGE_TYPE) => {
1552 serde_json::from_value::<MsgFileioConfigResp>(value).map(Sbp::MsgFileioConfigResp)
1553 }
1554 Some(MsgSbasRaw::MESSAGE_TYPE) => {
1555 serde_json::from_value::<MsgSbasRaw>(value).map(Sbp::MsgSbasRaw)
1556 }
1557 Some(MsgLinuxCpuStateDepA::MESSAGE_TYPE) => {
1558 serde_json::from_value::<MsgLinuxCpuStateDepA>(value).map(Sbp::MsgLinuxCpuStateDepA)
1559 }
1560 Some(MsgLinuxMemStateDepA::MESSAGE_TYPE) => {
1561 serde_json::from_value::<MsgLinuxMemStateDepA>(value).map(Sbp::MsgLinuxMemStateDepA)
1562 }
1563 Some(MsgLinuxSysStateDepA::MESSAGE_TYPE) => {
1564 serde_json::from_value::<MsgLinuxSysStateDepA>(value).map(Sbp::MsgLinuxSysStateDepA)
1565 }
1566 Some(MsgLinuxProcessSocketCounts::MESSAGE_TYPE) => {
1567 serde_json::from_value::<MsgLinuxProcessSocketCounts>(value)
1568 .map(Sbp::MsgLinuxProcessSocketCounts)
1569 }
1570 Some(MsgLinuxProcessSocketQueues::MESSAGE_TYPE) => {
1571 serde_json::from_value::<MsgLinuxProcessSocketQueues>(value)
1572 .map(Sbp::MsgLinuxProcessSocketQueues)
1573 }
1574 Some(MsgLinuxSocketUsage::MESSAGE_TYPE) => {
1575 serde_json::from_value::<MsgLinuxSocketUsage>(value).map(Sbp::MsgLinuxSocketUsage)
1576 }
1577 Some(MsgLinuxProcessFdCount::MESSAGE_TYPE) => {
1578 serde_json::from_value::<MsgLinuxProcessFdCount>(value)
1579 .map(Sbp::MsgLinuxProcessFdCount)
1580 }
1581 Some(MsgLinuxProcessFdSummary::MESSAGE_TYPE) => {
1582 serde_json::from_value::<MsgLinuxProcessFdSummary>(value)
1583 .map(Sbp::MsgLinuxProcessFdSummary)
1584 }
1585 Some(MsgLinuxCpuState::MESSAGE_TYPE) => {
1586 serde_json::from_value::<MsgLinuxCpuState>(value).map(Sbp::MsgLinuxCpuState)
1587 }
1588 Some(MsgLinuxMemState::MESSAGE_TYPE) => {
1589 serde_json::from_value::<MsgLinuxMemState>(value).map(Sbp::MsgLinuxMemState)
1590 }
1591 Some(MsgLinuxSysState::MESSAGE_TYPE) => {
1592 serde_json::from_value::<MsgLinuxSysState>(value).map(Sbp::MsgLinuxSysState)
1593 }
1594 Some(MsgMeasurementPoint::MESSAGE_TYPE) => {
1595 serde_json::from_value::<MsgMeasurementPoint>(value).map(Sbp::MsgMeasurementPoint)
1596 }
1597 Some(MsgProfilingSystemInfo::MESSAGE_TYPE) => {
1598 serde_json::from_value::<MsgProfilingSystemInfo>(value)
1599 .map(Sbp::MsgProfilingSystemInfo)
1600 }
1601 Some(MsgProfilingThreadInfo::MESSAGE_TYPE) => {
1602 serde_json::from_value::<MsgProfilingThreadInfo>(value)
1603 .map(Sbp::MsgProfilingThreadInfo)
1604 }
1605 Some(MsgProfilingResourceCounter::MESSAGE_TYPE) => {
1606 serde_json::from_value::<MsgProfilingResourceCounter>(value)
1607 .map(Sbp::MsgProfilingResourceCounter)
1608 }
1609 Some(MsgStartup::MESSAGE_TYPE) => {
1610 serde_json::from_value::<MsgStartup>(value).map(Sbp::MsgStartup)
1611 }
1612 Some(MsgDgnssStatus::MESSAGE_TYPE) => {
1613 serde_json::from_value::<MsgDgnssStatus>(value).map(Sbp::MsgDgnssStatus)
1614 }
1615 Some(MsgInsStatus::MESSAGE_TYPE) => {
1616 serde_json::from_value::<MsgInsStatus>(value).map(Sbp::MsgInsStatus)
1617 }
1618 Some(MsgCsacTelemetry::MESSAGE_TYPE) => {
1619 serde_json::from_value::<MsgCsacTelemetry>(value).map(Sbp::MsgCsacTelemetry)
1620 }
1621 Some(MsgCsacTelemetryLabels::MESSAGE_TYPE) => {
1622 serde_json::from_value::<MsgCsacTelemetryLabels>(value)
1623 .map(Sbp::MsgCsacTelemetryLabels)
1624 }
1625 Some(MsgInsUpdates::MESSAGE_TYPE) => {
1626 serde_json::from_value::<MsgInsUpdates>(value).map(Sbp::MsgInsUpdates)
1627 }
1628 Some(MsgGnssTimeOffset::MESSAGE_TYPE) => {
1629 serde_json::from_value::<MsgGnssTimeOffset>(value).map(Sbp::MsgGnssTimeOffset)
1630 }
1631 Some(MsgPpsTime::MESSAGE_TYPE) => {
1632 serde_json::from_value::<MsgPpsTime>(value).map(Sbp::MsgPpsTime)
1633 }
1634 Some(MsgSensorAidEvent::MESSAGE_TYPE) => {
1635 serde_json::from_value::<MsgSensorAidEvent>(value).map(Sbp::MsgSensorAidEvent)
1636 }
1637 Some(MsgGroupMeta::MESSAGE_TYPE) => {
1638 serde_json::from_value::<MsgGroupMeta>(value).map(Sbp::MsgGroupMeta)
1639 }
1640 Some(MsgSolnMeta::MESSAGE_TYPE) => {
1641 serde_json::from_value::<MsgSolnMeta>(value).map(Sbp::MsgSolnMeta)
1642 }
1643 Some(MsgSolnMetaDepA::MESSAGE_TYPE) => {
1644 serde_json::from_value::<MsgSolnMetaDepA>(value).map(Sbp::MsgSolnMetaDepA)
1645 }
1646 Some(MsgStatusJournal::MESSAGE_TYPE) => {
1647 serde_json::from_value::<MsgStatusJournal>(value).map(Sbp::MsgStatusJournal)
1648 }
1649 Some(MsgStatusReport::MESSAGE_TYPE) => {
1650 serde_json::from_value::<MsgStatusReport>(value).map(Sbp::MsgStatusReport)
1651 }
1652 Some(MsgHeartbeat::MESSAGE_TYPE) => {
1653 serde_json::from_value::<MsgHeartbeat>(value).map(Sbp::MsgHeartbeat)
1654 }
1655 msg_id @ Some(_) => serde_json::from_value::<Unknown>(value)
1656 .map(|msg| Unknown { msg_id, ..msg })
1657 .map(Sbp::Unknown),
1658 None => serde_json::from_value::<Invalid>(value)
1659 .map(|msg| Invalid { ..msg })
1660 .map(Sbp::Invalid),
1661 }
1662 .map_err(serde::de::Error::custom)
1663 }
1664}
1665
1666#[derive(Debug, Clone)]
1667pub struct SbpMsgParseError {
1668 pub msg_type: u16,
1670 pub sender_id: u16,
1672 pub invalid_payload: Vec<u8>,
1674}
1675
1676impl From<SbpMsgParseError> for PayloadParseError {
1677 fn from(
1678 SbpMsgParseError {
1679 invalid_payload, ..
1680 }: SbpMsgParseError,
1681 ) -> Self {
1682 Self { invalid_payload }
1683 }
1684}
1685
1686impl std::fmt::Display for SbpMsgParseError {
1687 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1688 write!(f, "error parsing payload")
1689 }
1690}
1691
1692impl std::error::Error for SbpMsgParseError {}
1693
1694impl Sbp {
1695 pub fn from_parts<B: bytes::Buf>(
1719 msg_type: u16,
1720 sender_id: u16,
1721 mut payload: B,
1722 ) -> Result<Sbp, SbpMsgParseError> {
1723 let sbp_msg = match msg_type {
1724 MsgPrintDep::MESSAGE_TYPE => MsgPrintDep::parse(&mut payload).map(Sbp::MsgPrintDep),
1725 MsgTrackingStateDetailedDep::MESSAGE_TYPE => {
1726 MsgTrackingStateDetailedDep::parse(&mut payload)
1727 .map(Sbp::MsgTrackingStateDetailedDep)
1728 }
1729 MsgTrackingStateDepB::MESSAGE_TYPE => {
1730 MsgTrackingStateDepB::parse(&mut payload).map(Sbp::MsgTrackingStateDepB)
1731 }
1732 MsgAcqResultDepB::MESSAGE_TYPE => {
1733 MsgAcqResultDepB::parse(&mut payload).map(Sbp::MsgAcqResultDepB)
1734 }
1735 MsgAcqResultDepA::MESSAGE_TYPE => {
1736 MsgAcqResultDepA::parse(&mut payload).map(Sbp::MsgAcqResultDepA)
1737 }
1738 MsgTrackingStateDepA::MESSAGE_TYPE => {
1739 MsgTrackingStateDepA::parse(&mut payload).map(Sbp::MsgTrackingStateDepA)
1740 }
1741 MsgThreadState::MESSAGE_TYPE => {
1742 MsgThreadState::parse(&mut payload).map(Sbp::MsgThreadState)
1743 }
1744 MsgUartStateDepa::MESSAGE_TYPE => {
1745 MsgUartStateDepa::parse(&mut payload).map(Sbp::MsgUartStateDepa)
1746 }
1747 MsgIarState::MESSAGE_TYPE => MsgIarState::parse(&mut payload).map(Sbp::MsgIarState),
1748 MsgEphemerisDepA::MESSAGE_TYPE => {
1749 MsgEphemerisDepA::parse(&mut payload).map(Sbp::MsgEphemerisDepA)
1750 }
1751 MsgMaskSatelliteDep::MESSAGE_TYPE => {
1752 MsgMaskSatelliteDep::parse(&mut payload).map(Sbp::MsgMaskSatelliteDep)
1753 }
1754 MsgTrackingIqDepA::MESSAGE_TYPE => {
1755 MsgTrackingIqDepA::parse(&mut payload).map(Sbp::MsgTrackingIqDepA)
1756 }
1757 MsgUartState::MESSAGE_TYPE => MsgUartState::parse(&mut payload).map(Sbp::MsgUartState),
1758 MsgAcqSvProfileDep::MESSAGE_TYPE => {
1759 MsgAcqSvProfileDep::parse(&mut payload).map(Sbp::MsgAcqSvProfileDep)
1760 }
1761 MsgAcqResultDepC::MESSAGE_TYPE => {
1762 MsgAcqResultDepC::parse(&mut payload).map(Sbp::MsgAcqResultDepC)
1763 }
1764 MsgTrackingStateDetailedDepA::MESSAGE_TYPE => {
1765 MsgTrackingStateDetailedDepA::parse(&mut payload)
1766 .map(Sbp::MsgTrackingStateDetailedDepA)
1767 }
1768 MsgResetFilters::MESSAGE_TYPE => {
1769 MsgResetFilters::parse(&mut payload).map(Sbp::MsgResetFilters)
1770 }
1771 MsgInitBaseDep::MESSAGE_TYPE => {
1772 MsgInitBaseDep::parse(&mut payload).map(Sbp::MsgInitBaseDep)
1773 }
1774 MsgMaskSatellite::MESSAGE_TYPE => {
1775 MsgMaskSatellite::parse(&mut payload).map(Sbp::MsgMaskSatellite)
1776 }
1777 MsgTrackingIqDepB::MESSAGE_TYPE => {
1778 MsgTrackingIqDepB::parse(&mut payload).map(Sbp::MsgTrackingIqDepB)
1779 }
1780 MsgTrackingIq::MESSAGE_TYPE => {
1781 MsgTrackingIq::parse(&mut payload).map(Sbp::MsgTrackingIq)
1782 }
1783 MsgAcqSvProfile::MESSAGE_TYPE => {
1784 MsgAcqSvProfile::parse(&mut payload).map(Sbp::MsgAcqSvProfile)
1785 }
1786 MsgAcqResult::MESSAGE_TYPE => MsgAcqResult::parse(&mut payload).map(Sbp::MsgAcqResult),
1787 MsgTrackingState::MESSAGE_TYPE => {
1788 MsgTrackingState::parse(&mut payload).map(Sbp::MsgTrackingState)
1789 }
1790 MsgObsDepB::MESSAGE_TYPE => MsgObsDepB::parse(&mut payload).map(Sbp::MsgObsDepB),
1791 MsgBasePosLlh::MESSAGE_TYPE => {
1792 MsgBasePosLlh::parse(&mut payload).map(Sbp::MsgBasePosLlh)
1793 }
1794 MsgObsDepA::MESSAGE_TYPE => MsgObsDepA::parse(&mut payload).map(Sbp::MsgObsDepA),
1795 MsgEphemerisDepB::MESSAGE_TYPE => {
1796 MsgEphemerisDepB::parse(&mut payload).map(Sbp::MsgEphemerisDepB)
1797 }
1798 MsgEphemerisDepC::MESSAGE_TYPE => {
1799 MsgEphemerisDepC::parse(&mut payload).map(Sbp::MsgEphemerisDepC)
1800 }
1801 MsgBasePosEcef::MESSAGE_TYPE => {
1802 MsgBasePosEcef::parse(&mut payload).map(Sbp::MsgBasePosEcef)
1803 }
1804 MsgObsDepC::MESSAGE_TYPE => MsgObsDepC::parse(&mut payload).map(Sbp::MsgObsDepC),
1805 MsgObs::MESSAGE_TYPE => MsgObs::parse(&mut payload).map(Sbp::MsgObs),
1806 MsgSpecanDep::MESSAGE_TYPE => MsgSpecanDep::parse(&mut payload).map(Sbp::MsgSpecanDep),
1807 MsgSpecan::MESSAGE_TYPE => MsgSpecan::parse(&mut payload).map(Sbp::MsgSpecan),
1808 MsgMeasurementState::MESSAGE_TYPE => {
1809 MsgMeasurementState::parse(&mut payload).map(Sbp::MsgMeasurementState)
1810 }
1811 MsgSetTime::MESSAGE_TYPE => MsgSetTime::parse(&mut payload).map(Sbp::MsgSetTime),
1812 MsgAlmanac::MESSAGE_TYPE => MsgAlmanac::parse(&mut payload).map(Sbp::MsgAlmanac),
1813 MsgAlmanacGpsDep::MESSAGE_TYPE => {
1814 MsgAlmanacGpsDep::parse(&mut payload).map(Sbp::MsgAlmanacGpsDep)
1815 }
1816 MsgAlmanacGloDep::MESSAGE_TYPE => {
1817 MsgAlmanacGloDep::parse(&mut payload).map(Sbp::MsgAlmanacGloDep)
1818 }
1819 MsgAlmanacGps::MESSAGE_TYPE => {
1820 MsgAlmanacGps::parse(&mut payload).map(Sbp::MsgAlmanacGps)
1821 }
1822 MsgAlmanacGlo::MESSAGE_TYPE => {
1823 MsgAlmanacGlo::parse(&mut payload).map(Sbp::MsgAlmanacGlo)
1824 }
1825 MsgGloBiases::MESSAGE_TYPE => MsgGloBiases::parse(&mut payload).map(Sbp::MsgGloBiases),
1826 MsgEphemerisDepD::MESSAGE_TYPE => {
1827 MsgEphemerisDepD::parse(&mut payload).map(Sbp::MsgEphemerisDepD)
1828 }
1829 MsgEphemerisGpsDepE::MESSAGE_TYPE => {
1830 MsgEphemerisGpsDepE::parse(&mut payload).map(Sbp::MsgEphemerisGpsDepE)
1831 }
1832 MsgEphemerisSbasDepA::MESSAGE_TYPE => {
1833 MsgEphemerisSbasDepA::parse(&mut payload).map(Sbp::MsgEphemerisSbasDepA)
1834 }
1835 MsgEphemerisGloDepA::MESSAGE_TYPE => {
1836 MsgEphemerisGloDepA::parse(&mut payload).map(Sbp::MsgEphemerisGloDepA)
1837 }
1838 MsgEphemerisSbasDepB::MESSAGE_TYPE => {
1839 MsgEphemerisSbasDepB::parse(&mut payload).map(Sbp::MsgEphemerisSbasDepB)
1840 }
1841 MsgEphemerisGloDepB::MESSAGE_TYPE => {
1842 MsgEphemerisGloDepB::parse(&mut payload).map(Sbp::MsgEphemerisGloDepB)
1843 }
1844 MsgEphemerisGpsDepF::MESSAGE_TYPE => {
1845 MsgEphemerisGpsDepF::parse(&mut payload).map(Sbp::MsgEphemerisGpsDepF)
1846 }
1847 MsgEphemerisGloDepC::MESSAGE_TYPE => {
1848 MsgEphemerisGloDepC::parse(&mut payload).map(Sbp::MsgEphemerisGloDepC)
1849 }
1850 MsgEphemerisGloDepD::MESSAGE_TYPE => {
1851 MsgEphemerisGloDepD::parse(&mut payload).map(Sbp::MsgEphemerisGloDepD)
1852 }
1853 MsgEphemerisBds::MESSAGE_TYPE => {
1854 MsgEphemerisBds::parse(&mut payload).map(Sbp::MsgEphemerisBds)
1855 }
1856 MsgEphemerisGps::MESSAGE_TYPE => {
1857 MsgEphemerisGps::parse(&mut payload).map(Sbp::MsgEphemerisGps)
1858 }
1859 MsgEphemerisGlo::MESSAGE_TYPE => {
1860 MsgEphemerisGlo::parse(&mut payload).map(Sbp::MsgEphemerisGlo)
1861 }
1862 MsgEphemerisSbas::MESSAGE_TYPE => {
1863 MsgEphemerisSbas::parse(&mut payload).map(Sbp::MsgEphemerisSbas)
1864 }
1865 MsgEphemerisGal::MESSAGE_TYPE => {
1866 MsgEphemerisGal::parse(&mut payload).map(Sbp::MsgEphemerisGal)
1867 }
1868 MsgEphemerisQzss::MESSAGE_TYPE => {
1869 MsgEphemerisQzss::parse(&mut payload).map(Sbp::MsgEphemerisQzss)
1870 }
1871 MsgIono::MESSAGE_TYPE => MsgIono::parse(&mut payload).map(Sbp::MsgIono),
1872 MsgSvConfigurationGpsDep::MESSAGE_TYPE => {
1873 MsgSvConfigurationGpsDep::parse(&mut payload).map(Sbp::MsgSvConfigurationGpsDep)
1874 }
1875 MsgGroupDelayDepA::MESSAGE_TYPE => {
1876 MsgGroupDelayDepA::parse(&mut payload).map(Sbp::MsgGroupDelayDepA)
1877 }
1878 MsgGroupDelayDepB::MESSAGE_TYPE => {
1879 MsgGroupDelayDepB::parse(&mut payload).map(Sbp::MsgGroupDelayDepB)
1880 }
1881 MsgGroupDelay::MESSAGE_TYPE => {
1882 MsgGroupDelay::parse(&mut payload).map(Sbp::MsgGroupDelay)
1883 }
1884 MsgEphemerisGalDepA::MESSAGE_TYPE => {
1885 MsgEphemerisGalDepA::parse(&mut payload).map(Sbp::MsgEphemerisGalDepA)
1886 }
1887 MsgGnssCapb::MESSAGE_TYPE => MsgGnssCapb::parse(&mut payload).map(Sbp::MsgGnssCapb),
1888 MsgSvAzEl::MESSAGE_TYPE => MsgSvAzEl::parse(&mut payload).map(Sbp::MsgSvAzEl),
1889 MsgSettingsWrite::MESSAGE_TYPE => {
1890 MsgSettingsWrite::parse(&mut payload).map(Sbp::MsgSettingsWrite)
1891 }
1892 MsgSettingsSave::MESSAGE_TYPE => {
1893 MsgSettingsSave::parse(&mut payload).map(Sbp::MsgSettingsSave)
1894 }
1895 MsgSettingsReadByIndexReq::MESSAGE_TYPE => {
1896 MsgSettingsReadByIndexReq::parse(&mut payload).map(Sbp::MsgSettingsReadByIndexReq)
1897 }
1898 MsgFileioReadResp::MESSAGE_TYPE => {
1899 MsgFileioReadResp::parse(&mut payload).map(Sbp::MsgFileioReadResp)
1900 }
1901 MsgSettingsReadReq::MESSAGE_TYPE => {
1902 MsgSettingsReadReq::parse(&mut payload).map(Sbp::MsgSettingsReadReq)
1903 }
1904 MsgSettingsReadResp::MESSAGE_TYPE => {
1905 MsgSettingsReadResp::parse(&mut payload).map(Sbp::MsgSettingsReadResp)
1906 }
1907 MsgSettingsReadByIndexDone::MESSAGE_TYPE => {
1908 MsgSettingsReadByIndexDone::parse(&mut payload).map(Sbp::MsgSettingsReadByIndexDone)
1909 }
1910 MsgSettingsReadByIndexResp::MESSAGE_TYPE => {
1911 MsgSettingsReadByIndexResp::parse(&mut payload).map(Sbp::MsgSettingsReadByIndexResp)
1912 }
1913 MsgFileioReadReq::MESSAGE_TYPE => {
1914 MsgFileioReadReq::parse(&mut payload).map(Sbp::MsgFileioReadReq)
1915 }
1916 MsgFileioReadDirReq::MESSAGE_TYPE => {
1917 MsgFileioReadDirReq::parse(&mut payload).map(Sbp::MsgFileioReadDirReq)
1918 }
1919 MsgFileioReadDirResp::MESSAGE_TYPE => {
1920 MsgFileioReadDirResp::parse(&mut payload).map(Sbp::MsgFileioReadDirResp)
1921 }
1922 MsgFileioWriteResp::MESSAGE_TYPE => {
1923 MsgFileioWriteResp::parse(&mut payload).map(Sbp::MsgFileioWriteResp)
1924 }
1925 MsgFileioRemove::MESSAGE_TYPE => {
1926 MsgFileioRemove::parse(&mut payload).map(Sbp::MsgFileioRemove)
1927 }
1928 MsgFileioWriteReq::MESSAGE_TYPE => {
1929 MsgFileioWriteReq::parse(&mut payload).map(Sbp::MsgFileioWriteReq)
1930 }
1931 MsgSettingsRegister::MESSAGE_TYPE => {
1932 MsgSettingsRegister::parse(&mut payload).map(Sbp::MsgSettingsRegister)
1933 }
1934 MsgSettingsWriteResp::MESSAGE_TYPE => {
1935 MsgSettingsWriteResp::parse(&mut payload).map(Sbp::MsgSettingsWriteResp)
1936 }
1937 MsgBootloaderHandshakeDepA::MESSAGE_TYPE => {
1938 MsgBootloaderHandshakeDepA::parse(&mut payload).map(Sbp::MsgBootloaderHandshakeDepA)
1939 }
1940 MsgBootloaderJumpToApp::MESSAGE_TYPE => {
1941 MsgBootloaderJumpToApp::parse(&mut payload).map(Sbp::MsgBootloaderJumpToApp)
1942 }
1943 MsgResetDep::MESSAGE_TYPE => MsgResetDep::parse(&mut payload).map(Sbp::MsgResetDep),
1944 MsgBootloaderHandshakeReq::MESSAGE_TYPE => {
1945 MsgBootloaderHandshakeReq::parse(&mut payload).map(Sbp::MsgBootloaderHandshakeReq)
1946 }
1947 MsgBootloaderHandshakeResp::MESSAGE_TYPE => {
1948 MsgBootloaderHandshakeResp::parse(&mut payload).map(Sbp::MsgBootloaderHandshakeResp)
1949 }
1950 MsgDeviceMonitor::MESSAGE_TYPE => {
1951 MsgDeviceMonitor::parse(&mut payload).map(Sbp::MsgDeviceMonitor)
1952 }
1953 MsgReset::MESSAGE_TYPE => MsgReset::parse(&mut payload).map(Sbp::MsgReset),
1954 MsgCommandReq::MESSAGE_TYPE => {
1955 MsgCommandReq::parse(&mut payload).map(Sbp::MsgCommandReq)
1956 }
1957 MsgCommandResp::MESSAGE_TYPE => {
1958 MsgCommandResp::parse(&mut payload).map(Sbp::MsgCommandResp)
1959 }
1960 MsgNetworkStateReq::MESSAGE_TYPE => {
1961 MsgNetworkStateReq::parse(&mut payload).map(Sbp::MsgNetworkStateReq)
1962 }
1963 MsgNetworkStateResp::MESSAGE_TYPE => {
1964 MsgNetworkStateResp::parse(&mut payload).map(Sbp::MsgNetworkStateResp)
1965 }
1966 MsgCommandOutput::MESSAGE_TYPE => {
1967 MsgCommandOutput::parse(&mut payload).map(Sbp::MsgCommandOutput)
1968 }
1969 MsgNetworkBandwidthUsage::MESSAGE_TYPE => {
1970 MsgNetworkBandwidthUsage::parse(&mut payload).map(Sbp::MsgNetworkBandwidthUsage)
1971 }
1972 MsgCellModemStatus::MESSAGE_TYPE => {
1973 MsgCellModemStatus::parse(&mut payload).map(Sbp::MsgCellModemStatus)
1974 }
1975 MsgFrontEndGain::MESSAGE_TYPE => {
1976 MsgFrontEndGain::parse(&mut payload).map(Sbp::MsgFrontEndGain)
1977 }
1978 MsgCwResults::MESSAGE_TYPE => MsgCwResults::parse(&mut payload).map(Sbp::MsgCwResults),
1979 MsgCwStart::MESSAGE_TYPE => MsgCwStart::parse(&mut payload).map(Sbp::MsgCwStart),
1980 MsgNapDeviceDnaResp::MESSAGE_TYPE => {
1981 MsgNapDeviceDnaResp::parse(&mut payload).map(Sbp::MsgNapDeviceDnaResp)
1982 }
1983 MsgNapDeviceDnaReq::MESSAGE_TYPE => {
1984 MsgNapDeviceDnaReq::parse(&mut payload).map(Sbp::MsgNapDeviceDnaReq)
1985 }
1986 MsgFlashDone::MESSAGE_TYPE => MsgFlashDone::parse(&mut payload).map(Sbp::MsgFlashDone),
1987 MsgFlashReadResp::MESSAGE_TYPE => {
1988 MsgFlashReadResp::parse(&mut payload).map(Sbp::MsgFlashReadResp)
1989 }
1990 MsgFlashErase::MESSAGE_TYPE => {
1991 MsgFlashErase::parse(&mut payload).map(Sbp::MsgFlashErase)
1992 }
1993 MsgStmFlashLockSector::MESSAGE_TYPE => {
1994 MsgStmFlashLockSector::parse(&mut payload).map(Sbp::MsgStmFlashLockSector)
1995 }
1996 MsgStmFlashUnlockSector::MESSAGE_TYPE => {
1997 MsgStmFlashUnlockSector::parse(&mut payload).map(Sbp::MsgStmFlashUnlockSector)
1998 }
1999 MsgStmUniqueIdResp::MESSAGE_TYPE => {
2000 MsgStmUniqueIdResp::parse(&mut payload).map(Sbp::MsgStmUniqueIdResp)
2001 }
2002 MsgFlashProgram::MESSAGE_TYPE => {
2003 MsgFlashProgram::parse(&mut payload).map(Sbp::MsgFlashProgram)
2004 }
2005 MsgFlashReadReq::MESSAGE_TYPE => {
2006 MsgFlashReadReq::parse(&mut payload).map(Sbp::MsgFlashReadReq)
2007 }
2008 MsgStmUniqueIdReq::MESSAGE_TYPE => {
2009 MsgStmUniqueIdReq::parse(&mut payload).map(Sbp::MsgStmUniqueIdReq)
2010 }
2011 MsgM25FlashWriteStatus::MESSAGE_TYPE => {
2012 MsgM25FlashWriteStatus::parse(&mut payload).map(Sbp::MsgM25FlashWriteStatus)
2013 }
2014 MsgGpsTimeDepA::MESSAGE_TYPE => {
2015 MsgGpsTimeDepA::parse(&mut payload).map(Sbp::MsgGpsTimeDepA)
2016 }
2017 MsgExtEvent::MESSAGE_TYPE => MsgExtEvent::parse(&mut payload).map(Sbp::MsgExtEvent),
2018 MsgGpsTime::MESSAGE_TYPE => MsgGpsTime::parse(&mut payload).map(Sbp::MsgGpsTime),
2019 MsgUtcTime::MESSAGE_TYPE => MsgUtcTime::parse(&mut payload).map(Sbp::MsgUtcTime),
2020 MsgGpsTimeGnss::MESSAGE_TYPE => {
2021 MsgGpsTimeGnss::parse(&mut payload).map(Sbp::MsgGpsTimeGnss)
2022 }
2023 MsgUtcTimeGnss::MESSAGE_TYPE => {
2024 MsgUtcTimeGnss::parse(&mut payload).map(Sbp::MsgUtcTimeGnss)
2025 }
2026 MsgTelSv::MESSAGE_TYPE => MsgTelSv::parse(&mut payload).map(Sbp::MsgTelSv),
2027 MsgSettingsRegisterResp::MESSAGE_TYPE => {
2028 MsgSettingsRegisterResp::parse(&mut payload).map(Sbp::MsgSettingsRegisterResp)
2029 }
2030 MsgPosEcefDepA::MESSAGE_TYPE => {
2031 MsgPosEcefDepA::parse(&mut payload).map(Sbp::MsgPosEcefDepA)
2032 }
2033 MsgPosLlhDepA::MESSAGE_TYPE => {
2034 MsgPosLlhDepA::parse(&mut payload).map(Sbp::MsgPosLlhDepA)
2035 }
2036 MsgBaselineEcefDepA::MESSAGE_TYPE => {
2037 MsgBaselineEcefDepA::parse(&mut payload).map(Sbp::MsgBaselineEcefDepA)
2038 }
2039 MsgBaselineNedDepA::MESSAGE_TYPE => {
2040 MsgBaselineNedDepA::parse(&mut payload).map(Sbp::MsgBaselineNedDepA)
2041 }
2042 MsgVelEcefDepA::MESSAGE_TYPE => {
2043 MsgVelEcefDepA::parse(&mut payload).map(Sbp::MsgVelEcefDepA)
2044 }
2045 MsgVelNedDepA::MESSAGE_TYPE => {
2046 MsgVelNedDepA::parse(&mut payload).map(Sbp::MsgVelNedDepA)
2047 }
2048 MsgDopsDepA::MESSAGE_TYPE => MsgDopsDepA::parse(&mut payload).map(Sbp::MsgDopsDepA),
2049 MsgBaselineHeadingDepA::MESSAGE_TYPE => {
2050 MsgBaselineHeadingDepA::parse(&mut payload).map(Sbp::MsgBaselineHeadingDepA)
2051 }
2052 MsgDops::MESSAGE_TYPE => MsgDops::parse(&mut payload).map(Sbp::MsgDops),
2053 MsgPosEcef::MESSAGE_TYPE => MsgPosEcef::parse(&mut payload).map(Sbp::MsgPosEcef),
2054 MsgPosLlh::MESSAGE_TYPE => MsgPosLlh::parse(&mut payload).map(Sbp::MsgPosLlh),
2055 MsgBaselineEcef::MESSAGE_TYPE => {
2056 MsgBaselineEcef::parse(&mut payload).map(Sbp::MsgBaselineEcef)
2057 }
2058 MsgBaselineNed::MESSAGE_TYPE => {
2059 MsgBaselineNed::parse(&mut payload).map(Sbp::MsgBaselineNed)
2060 }
2061 MsgVelEcef::MESSAGE_TYPE => MsgVelEcef::parse(&mut payload).map(Sbp::MsgVelEcef),
2062 MsgVelNed::MESSAGE_TYPE => MsgVelNed::parse(&mut payload).map(Sbp::MsgVelNed),
2063 MsgBaselineHeading::MESSAGE_TYPE => {
2064 MsgBaselineHeading::parse(&mut payload).map(Sbp::MsgBaselineHeading)
2065 }
2066 MsgAgeCorrections::MESSAGE_TYPE => {
2067 MsgAgeCorrections::parse(&mut payload).map(Sbp::MsgAgeCorrections)
2068 }
2069 MsgPosLlhCov::MESSAGE_TYPE => MsgPosLlhCov::parse(&mut payload).map(Sbp::MsgPosLlhCov),
2070 MsgVelNedCov::MESSAGE_TYPE => MsgVelNedCov::parse(&mut payload).map(Sbp::MsgVelNedCov),
2071 MsgVelBody::MESSAGE_TYPE => MsgVelBody::parse(&mut payload).map(Sbp::MsgVelBody),
2072 MsgPosEcefCov::MESSAGE_TYPE => {
2073 MsgPosEcefCov::parse(&mut payload).map(Sbp::MsgPosEcefCov)
2074 }
2075 MsgVelEcefCov::MESSAGE_TYPE => {
2076 MsgVelEcefCov::parse(&mut payload).map(Sbp::MsgVelEcefCov)
2077 }
2078 MsgProtectionLevelDepA::MESSAGE_TYPE => {
2079 MsgProtectionLevelDepA::parse(&mut payload).map(Sbp::MsgProtectionLevelDepA)
2080 }
2081 MsgProtectionLevel::MESSAGE_TYPE => {
2082 MsgProtectionLevel::parse(&mut payload).map(Sbp::MsgProtectionLevel)
2083 }
2084 MsgPosLlhAcc::MESSAGE_TYPE => MsgPosLlhAcc::parse(&mut payload).map(Sbp::MsgPosLlhAcc),
2085 MsgVelCog::MESSAGE_TYPE => MsgVelCog::parse(&mut payload).map(Sbp::MsgVelCog),
2086 MsgOrientQuat::MESSAGE_TYPE => {
2087 MsgOrientQuat::parse(&mut payload).map(Sbp::MsgOrientQuat)
2088 }
2089 MsgOrientEuler::MESSAGE_TYPE => {
2090 MsgOrientEuler::parse(&mut payload).map(Sbp::MsgOrientEuler)
2091 }
2092 MsgAngularRate::MESSAGE_TYPE => {
2093 MsgAngularRate::parse(&mut payload).map(Sbp::MsgAngularRate)
2094 }
2095 MsgPosEcefGnss::MESSAGE_TYPE => {
2096 MsgPosEcefGnss::parse(&mut payload).map(Sbp::MsgPosEcefGnss)
2097 }
2098 MsgPosLlhGnss::MESSAGE_TYPE => {
2099 MsgPosLlhGnss::parse(&mut payload).map(Sbp::MsgPosLlhGnss)
2100 }
2101 MsgVelEcefGnss::MESSAGE_TYPE => {
2102 MsgVelEcefGnss::parse(&mut payload).map(Sbp::MsgVelEcefGnss)
2103 }
2104 MsgVelNedGnss::MESSAGE_TYPE => {
2105 MsgVelNedGnss::parse(&mut payload).map(Sbp::MsgVelNedGnss)
2106 }
2107 MsgPosLlhCovGnss::MESSAGE_TYPE => {
2108 MsgPosLlhCovGnss::parse(&mut payload).map(Sbp::MsgPosLlhCovGnss)
2109 }
2110 MsgVelNedCovGnss::MESSAGE_TYPE => {
2111 MsgVelNedCovGnss::parse(&mut payload).map(Sbp::MsgVelNedCovGnss)
2112 }
2113 MsgPosEcefCovGnss::MESSAGE_TYPE => {
2114 MsgPosEcefCovGnss::parse(&mut payload).map(Sbp::MsgPosEcefCovGnss)
2115 }
2116 MsgVelEcefCovGnss::MESSAGE_TYPE => {
2117 MsgVelEcefCovGnss::parse(&mut payload).map(Sbp::MsgVelEcefCovGnss)
2118 }
2119 MsgUtcLeapSecond::MESSAGE_TYPE => {
2120 MsgUtcLeapSecond::parse(&mut payload).map(Sbp::MsgUtcLeapSecond)
2121 }
2122 MsgReferenceFrameParam::MESSAGE_TYPE => {
2123 MsgReferenceFrameParam::parse(&mut payload).map(Sbp::MsgReferenceFrameParam)
2124 }
2125 MsgPoseRelative::MESSAGE_TYPE => {
2126 MsgPoseRelative::parse(&mut payload).map(Sbp::MsgPoseRelative)
2127 }
2128 MsgNdbEvent::MESSAGE_TYPE => MsgNdbEvent::parse(&mut payload).map(Sbp::MsgNdbEvent),
2129 MsgLog::MESSAGE_TYPE => MsgLog::parse(&mut payload).map(Sbp::MsgLog),
2130 MsgFwd::MESSAGE_TYPE => MsgFwd::parse(&mut payload).map(Sbp::MsgFwd),
2131 MsgSsrOrbitClockDepA::MESSAGE_TYPE => {
2132 MsgSsrOrbitClockDepA::parse(&mut payload).map(Sbp::MsgSsrOrbitClockDepA)
2133 }
2134 MsgSsrOrbitClock::MESSAGE_TYPE => {
2135 MsgSsrOrbitClock::parse(&mut payload).map(Sbp::MsgSsrOrbitClock)
2136 }
2137 MsgSsrOrbitClockBounds::MESSAGE_TYPE => {
2138 MsgSsrOrbitClockBounds::parse(&mut payload).map(Sbp::MsgSsrOrbitClockBounds)
2139 }
2140 MsgSsrOrbitClockBoundsDegradation::MESSAGE_TYPE => {
2141 MsgSsrOrbitClockBoundsDegradation::parse(&mut payload)
2142 .map(Sbp::MsgSsrOrbitClockBoundsDegradation)
2143 }
2144 MsgSsrCodeBiases::MESSAGE_TYPE => {
2145 MsgSsrCodeBiases::parse(&mut payload).map(Sbp::MsgSsrCodeBiases)
2146 }
2147 MsgSsrPhaseBiases::MESSAGE_TYPE => {
2148 MsgSsrPhaseBiases::parse(&mut payload).map(Sbp::MsgSsrPhaseBiases)
2149 }
2150 MsgSsrStecCorrectionDepA::MESSAGE_TYPE => {
2151 MsgSsrStecCorrectionDepA::parse(&mut payload).map(Sbp::MsgSsrStecCorrectionDepA)
2152 }
2153 MsgSsrCodePhaseBiasesBounds::MESSAGE_TYPE => {
2154 MsgSsrCodePhaseBiasesBounds::parse(&mut payload)
2155 .map(Sbp::MsgSsrCodePhaseBiasesBounds)
2156 }
2157 MsgSsrGriddedCorrectionNoStdDepA::MESSAGE_TYPE => {
2158 MsgSsrGriddedCorrectionNoStdDepA::parse(&mut payload)
2159 .map(Sbp::MsgSsrGriddedCorrectionNoStdDepA)
2160 }
2161 MsgSsrGridDefinitionDepA::MESSAGE_TYPE => {
2162 MsgSsrGridDefinitionDepA::parse(&mut payload).map(Sbp::MsgSsrGridDefinitionDepA)
2163 }
2164 MsgSsrTileDefinitionDepA::MESSAGE_TYPE => {
2165 MsgSsrTileDefinitionDepA::parse(&mut payload).map(Sbp::MsgSsrTileDefinitionDepA)
2166 }
2167 MsgSsrTileDefinitionDepB::MESSAGE_TYPE => {
2168 MsgSsrTileDefinitionDepB::parse(&mut payload).map(Sbp::MsgSsrTileDefinitionDepB)
2169 }
2170 MsgSsrTileDefinition::MESSAGE_TYPE => {
2171 MsgSsrTileDefinition::parse(&mut payload).map(Sbp::MsgSsrTileDefinition)
2172 }
2173 MsgSsrGriddedCorrectionDepA::MESSAGE_TYPE => {
2174 MsgSsrGriddedCorrectionDepA::parse(&mut payload)
2175 .map(Sbp::MsgSsrGriddedCorrectionDepA)
2176 }
2177 MsgSsrStecCorrectionDep::MESSAGE_TYPE => {
2178 MsgSsrStecCorrectionDep::parse(&mut payload).map(Sbp::MsgSsrStecCorrectionDep)
2179 }
2180 MsgSsrGriddedCorrection::MESSAGE_TYPE => {
2181 MsgSsrGriddedCorrection::parse(&mut payload).map(Sbp::MsgSsrGriddedCorrection)
2182 }
2183 MsgSsrStecCorrection::MESSAGE_TYPE => {
2184 MsgSsrStecCorrection::parse(&mut payload).map(Sbp::MsgSsrStecCorrection)
2185 }
2186 MsgSsrGriddedCorrectionBounds::MESSAGE_TYPE => {
2187 MsgSsrGriddedCorrectionBounds::parse(&mut payload)
2188 .map(Sbp::MsgSsrGriddedCorrectionBounds)
2189 }
2190 MsgSsrSatelliteApcDep::MESSAGE_TYPE => {
2191 MsgSsrSatelliteApcDep::parse(&mut payload).map(Sbp::MsgSsrSatelliteApcDep)
2192 }
2193 MsgSsrSatelliteApc::MESSAGE_TYPE => {
2194 MsgSsrSatelliteApc::parse(&mut payload).map(Sbp::MsgSsrSatelliteApc)
2195 }
2196 MsgOsr::MESSAGE_TYPE => MsgOsr::parse(&mut payload).map(Sbp::MsgOsr),
2197 MsgUserData::MESSAGE_TYPE => MsgUserData::parse(&mut payload).map(Sbp::MsgUserData),
2198 MsgImuRaw::MESSAGE_TYPE => MsgImuRaw::parse(&mut payload).map(Sbp::MsgImuRaw),
2199 MsgImuAux::MESSAGE_TYPE => MsgImuAux::parse(&mut payload).map(Sbp::MsgImuAux),
2200 MsgMagRaw::MESSAGE_TYPE => MsgMagRaw::parse(&mut payload).map(Sbp::MsgMagRaw),
2201 MsgOdometry::MESSAGE_TYPE => MsgOdometry::parse(&mut payload).map(Sbp::MsgOdometry),
2202 MsgWheeltick::MESSAGE_TYPE => MsgWheeltick::parse(&mut payload).map(Sbp::MsgWheeltick),
2203 MsgImuComp::MESSAGE_TYPE => MsgImuComp::parse(&mut payload).map(Sbp::MsgImuComp),
2204 MsgSsrFlagHighLevelDepA::MESSAGE_TYPE => {
2205 MsgSsrFlagHighLevelDepA::parse(&mut payload).map(Sbp::MsgSsrFlagHighLevelDepA)
2206 }
2207 MsgSsrFlagHighLevel::MESSAGE_TYPE => {
2208 MsgSsrFlagHighLevel::parse(&mut payload).map(Sbp::MsgSsrFlagHighLevel)
2209 }
2210 MsgSsrFlagSatellites::MESSAGE_TYPE => {
2211 MsgSsrFlagSatellites::parse(&mut payload).map(Sbp::MsgSsrFlagSatellites)
2212 }
2213 MsgSsrFlagTropoGridPoints::MESSAGE_TYPE => {
2214 MsgSsrFlagTropoGridPoints::parse(&mut payload).map(Sbp::MsgSsrFlagTropoGridPoints)
2215 }
2216 MsgSsrFlagIonoGridPoints::MESSAGE_TYPE => {
2217 MsgSsrFlagIonoGridPoints::parse(&mut payload).map(Sbp::MsgSsrFlagIonoGridPoints)
2218 }
2219 MsgSsrFlagIonoTileSatLos::MESSAGE_TYPE => {
2220 MsgSsrFlagIonoTileSatLos::parse(&mut payload).map(Sbp::MsgSsrFlagIonoTileSatLos)
2221 }
2222 MsgSsrFlagIonoGridPointSatLos::MESSAGE_TYPE => {
2223 MsgSsrFlagIonoGridPointSatLos::parse(&mut payload)
2224 .map(Sbp::MsgSsrFlagIonoGridPointSatLos)
2225 }
2226 MsgAcknowledge::MESSAGE_TYPE => {
2227 MsgAcknowledge::parse(&mut payload).map(Sbp::MsgAcknowledge)
2228 }
2229 MsgEd25519SignatureDepA::MESSAGE_TYPE => {
2230 MsgEd25519SignatureDepA::parse(&mut payload).map(Sbp::MsgEd25519SignatureDepA)
2231 }
2232 MsgEd25519CertificateDep::MESSAGE_TYPE => {
2233 MsgEd25519CertificateDep::parse(&mut payload).map(Sbp::MsgEd25519CertificateDep)
2234 }
2235 MsgEd25519SignatureDepB::MESSAGE_TYPE => {
2236 MsgEd25519SignatureDepB::parse(&mut payload).map(Sbp::MsgEd25519SignatureDepB)
2237 }
2238 MsgEcdsaCertificate::MESSAGE_TYPE => {
2239 MsgEcdsaCertificate::parse(&mut payload).map(Sbp::MsgEcdsaCertificate)
2240 }
2241 MsgCertificateChainDep::MESSAGE_TYPE => {
2242 MsgCertificateChainDep::parse(&mut payload).map(Sbp::MsgCertificateChainDep)
2243 }
2244 MsgEcdsaSignatureDepA::MESSAGE_TYPE => {
2245 MsgEcdsaSignatureDepA::parse(&mut payload).map(Sbp::MsgEcdsaSignatureDepA)
2246 }
2247 MsgEcdsaSignatureDepB::MESSAGE_TYPE => {
2248 MsgEcdsaSignatureDepB::parse(&mut payload).map(Sbp::MsgEcdsaSignatureDepB)
2249 }
2250 MsgEcdsaSignature::MESSAGE_TYPE => {
2251 MsgEcdsaSignature::parse(&mut payload).map(Sbp::MsgEcdsaSignature)
2252 }
2253 MsgCertificateChain::MESSAGE_TYPE => {
2254 MsgCertificateChain::parse(&mut payload).map(Sbp::MsgCertificateChain)
2255 }
2256 MsgAesCmacSignature::MESSAGE_TYPE => {
2257 MsgAesCmacSignature::parse(&mut payload).map(Sbp::MsgAesCmacSignature)
2258 }
2259 MsgFileioConfigReq::MESSAGE_TYPE => {
2260 MsgFileioConfigReq::parse(&mut payload).map(Sbp::MsgFileioConfigReq)
2261 }
2262 MsgFileioConfigResp::MESSAGE_TYPE => {
2263 MsgFileioConfigResp::parse(&mut payload).map(Sbp::MsgFileioConfigResp)
2264 }
2265 MsgSbasRaw::MESSAGE_TYPE => MsgSbasRaw::parse(&mut payload).map(Sbp::MsgSbasRaw),
2266 MsgLinuxCpuStateDepA::MESSAGE_TYPE => {
2267 MsgLinuxCpuStateDepA::parse(&mut payload).map(Sbp::MsgLinuxCpuStateDepA)
2268 }
2269 MsgLinuxMemStateDepA::MESSAGE_TYPE => {
2270 MsgLinuxMemStateDepA::parse(&mut payload).map(Sbp::MsgLinuxMemStateDepA)
2271 }
2272 MsgLinuxSysStateDepA::MESSAGE_TYPE => {
2273 MsgLinuxSysStateDepA::parse(&mut payload).map(Sbp::MsgLinuxSysStateDepA)
2274 }
2275 MsgLinuxProcessSocketCounts::MESSAGE_TYPE => {
2276 MsgLinuxProcessSocketCounts::parse(&mut payload)
2277 .map(Sbp::MsgLinuxProcessSocketCounts)
2278 }
2279 MsgLinuxProcessSocketQueues::MESSAGE_TYPE => {
2280 MsgLinuxProcessSocketQueues::parse(&mut payload)
2281 .map(Sbp::MsgLinuxProcessSocketQueues)
2282 }
2283 MsgLinuxSocketUsage::MESSAGE_TYPE => {
2284 MsgLinuxSocketUsage::parse(&mut payload).map(Sbp::MsgLinuxSocketUsage)
2285 }
2286 MsgLinuxProcessFdCount::MESSAGE_TYPE => {
2287 MsgLinuxProcessFdCount::parse(&mut payload).map(Sbp::MsgLinuxProcessFdCount)
2288 }
2289 MsgLinuxProcessFdSummary::MESSAGE_TYPE => {
2290 MsgLinuxProcessFdSummary::parse(&mut payload).map(Sbp::MsgLinuxProcessFdSummary)
2291 }
2292 MsgLinuxCpuState::MESSAGE_TYPE => {
2293 MsgLinuxCpuState::parse(&mut payload).map(Sbp::MsgLinuxCpuState)
2294 }
2295 MsgLinuxMemState::MESSAGE_TYPE => {
2296 MsgLinuxMemState::parse(&mut payload).map(Sbp::MsgLinuxMemState)
2297 }
2298 MsgLinuxSysState::MESSAGE_TYPE => {
2299 MsgLinuxSysState::parse(&mut payload).map(Sbp::MsgLinuxSysState)
2300 }
2301 MsgMeasurementPoint::MESSAGE_TYPE => {
2302 MsgMeasurementPoint::parse(&mut payload).map(Sbp::MsgMeasurementPoint)
2303 }
2304 MsgProfilingSystemInfo::MESSAGE_TYPE => {
2305 MsgProfilingSystemInfo::parse(&mut payload).map(Sbp::MsgProfilingSystemInfo)
2306 }
2307 MsgProfilingThreadInfo::MESSAGE_TYPE => {
2308 MsgProfilingThreadInfo::parse(&mut payload).map(Sbp::MsgProfilingThreadInfo)
2309 }
2310 MsgProfilingResourceCounter::MESSAGE_TYPE => {
2311 MsgProfilingResourceCounter::parse(&mut payload)
2312 .map(Sbp::MsgProfilingResourceCounter)
2313 }
2314 MsgStartup::MESSAGE_TYPE => MsgStartup::parse(&mut payload).map(Sbp::MsgStartup),
2315 MsgDgnssStatus::MESSAGE_TYPE => {
2316 MsgDgnssStatus::parse(&mut payload).map(Sbp::MsgDgnssStatus)
2317 }
2318 MsgInsStatus::MESSAGE_TYPE => MsgInsStatus::parse(&mut payload).map(Sbp::MsgInsStatus),
2319 MsgCsacTelemetry::MESSAGE_TYPE => {
2320 MsgCsacTelemetry::parse(&mut payload).map(Sbp::MsgCsacTelemetry)
2321 }
2322 MsgCsacTelemetryLabels::MESSAGE_TYPE => {
2323 MsgCsacTelemetryLabels::parse(&mut payload).map(Sbp::MsgCsacTelemetryLabels)
2324 }
2325 MsgInsUpdates::MESSAGE_TYPE => {
2326 MsgInsUpdates::parse(&mut payload).map(Sbp::MsgInsUpdates)
2327 }
2328 MsgGnssTimeOffset::MESSAGE_TYPE => {
2329 MsgGnssTimeOffset::parse(&mut payload).map(Sbp::MsgGnssTimeOffset)
2330 }
2331 MsgPpsTime::MESSAGE_TYPE => MsgPpsTime::parse(&mut payload).map(Sbp::MsgPpsTime),
2332 MsgSensorAidEvent::MESSAGE_TYPE => {
2333 MsgSensorAidEvent::parse(&mut payload).map(Sbp::MsgSensorAidEvent)
2334 }
2335 MsgGroupMeta::MESSAGE_TYPE => MsgGroupMeta::parse(&mut payload).map(Sbp::MsgGroupMeta),
2336 MsgSolnMeta::MESSAGE_TYPE => MsgSolnMeta::parse(&mut payload).map(Sbp::MsgSolnMeta),
2337 MsgSolnMetaDepA::MESSAGE_TYPE => {
2338 MsgSolnMetaDepA::parse(&mut payload).map(Sbp::MsgSolnMetaDepA)
2339 }
2340 MsgStatusJournal::MESSAGE_TYPE => {
2341 MsgStatusJournal::parse(&mut payload).map(Sbp::MsgStatusJournal)
2342 }
2343 MsgStatusReport::MESSAGE_TYPE => {
2344 MsgStatusReport::parse(&mut payload).map(Sbp::MsgStatusReport)
2345 }
2346 MsgHeartbeat::MESSAGE_TYPE => MsgHeartbeat::parse(&mut payload).map(Sbp::MsgHeartbeat),
2347 msg_type => {
2348 Unknown::parse(&mut payload)
2349 .map(|msg| Unknown {
2351 msg_id: Some(msg_type),
2352 ..msg
2353 })
2354 .map(Sbp::Unknown)
2355 }
2356 };
2357 match sbp_msg {
2359 Ok(mut msg) => {
2360 msg.set_sender_id(sender_id);
2361 Ok(msg)
2362 }
2363 Err(PayloadParseError { invalid_payload }) => Err(SbpMsgParseError {
2364 msg_type,
2365 sender_id,
2366 invalid_payload,
2367 }),
2368 }
2369 }
2370}
2371
2372impl SbpMessage for Sbp {
2373 fn message_name(&self) -> &'static str {
2374 match self {
2375 Sbp::MsgPrintDep(msg) => msg.message_name(),
2376 Sbp::MsgTrackingStateDetailedDep(msg) => msg.message_name(),
2377 Sbp::MsgTrackingStateDepB(msg) => msg.message_name(),
2378 Sbp::MsgAcqResultDepB(msg) => msg.message_name(),
2379 Sbp::MsgAcqResultDepA(msg) => msg.message_name(),
2380 Sbp::MsgTrackingStateDepA(msg) => msg.message_name(),
2381 Sbp::MsgThreadState(msg) => msg.message_name(),
2382 Sbp::MsgUartStateDepa(msg) => msg.message_name(),
2383 Sbp::MsgIarState(msg) => msg.message_name(),
2384 Sbp::MsgEphemerisDepA(msg) => msg.message_name(),
2385 Sbp::MsgMaskSatelliteDep(msg) => msg.message_name(),
2386 Sbp::MsgTrackingIqDepA(msg) => msg.message_name(),
2387 Sbp::MsgUartState(msg) => msg.message_name(),
2388 Sbp::MsgAcqSvProfileDep(msg) => msg.message_name(),
2389 Sbp::MsgAcqResultDepC(msg) => msg.message_name(),
2390 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.message_name(),
2391 Sbp::MsgResetFilters(msg) => msg.message_name(),
2392 Sbp::MsgInitBaseDep(msg) => msg.message_name(),
2393 Sbp::MsgMaskSatellite(msg) => msg.message_name(),
2394 Sbp::MsgTrackingIqDepB(msg) => msg.message_name(),
2395 Sbp::MsgTrackingIq(msg) => msg.message_name(),
2396 Sbp::MsgAcqSvProfile(msg) => msg.message_name(),
2397 Sbp::MsgAcqResult(msg) => msg.message_name(),
2398 Sbp::MsgTrackingState(msg) => msg.message_name(),
2399 Sbp::MsgObsDepB(msg) => msg.message_name(),
2400 Sbp::MsgBasePosLlh(msg) => msg.message_name(),
2401 Sbp::MsgObsDepA(msg) => msg.message_name(),
2402 Sbp::MsgEphemerisDepB(msg) => msg.message_name(),
2403 Sbp::MsgEphemerisDepC(msg) => msg.message_name(),
2404 Sbp::MsgBasePosEcef(msg) => msg.message_name(),
2405 Sbp::MsgObsDepC(msg) => msg.message_name(),
2406 Sbp::MsgObs(msg) => msg.message_name(),
2407 Sbp::MsgSpecanDep(msg) => msg.message_name(),
2408 Sbp::MsgSpecan(msg) => msg.message_name(),
2409 Sbp::MsgMeasurementState(msg) => msg.message_name(),
2410 Sbp::MsgSetTime(msg) => msg.message_name(),
2411 Sbp::MsgAlmanac(msg) => msg.message_name(),
2412 Sbp::MsgAlmanacGpsDep(msg) => msg.message_name(),
2413 Sbp::MsgAlmanacGloDep(msg) => msg.message_name(),
2414 Sbp::MsgAlmanacGps(msg) => msg.message_name(),
2415 Sbp::MsgAlmanacGlo(msg) => msg.message_name(),
2416 Sbp::MsgGloBiases(msg) => msg.message_name(),
2417 Sbp::MsgEphemerisDepD(msg) => msg.message_name(),
2418 Sbp::MsgEphemerisGpsDepE(msg) => msg.message_name(),
2419 Sbp::MsgEphemerisSbasDepA(msg) => msg.message_name(),
2420 Sbp::MsgEphemerisGloDepA(msg) => msg.message_name(),
2421 Sbp::MsgEphemerisSbasDepB(msg) => msg.message_name(),
2422 Sbp::MsgEphemerisGloDepB(msg) => msg.message_name(),
2423 Sbp::MsgEphemerisGpsDepF(msg) => msg.message_name(),
2424 Sbp::MsgEphemerisGloDepC(msg) => msg.message_name(),
2425 Sbp::MsgEphemerisGloDepD(msg) => msg.message_name(),
2426 Sbp::MsgEphemerisBds(msg) => msg.message_name(),
2427 Sbp::MsgEphemerisGps(msg) => msg.message_name(),
2428 Sbp::MsgEphemerisGlo(msg) => msg.message_name(),
2429 Sbp::MsgEphemerisSbas(msg) => msg.message_name(),
2430 Sbp::MsgEphemerisGal(msg) => msg.message_name(),
2431 Sbp::MsgEphemerisQzss(msg) => msg.message_name(),
2432 Sbp::MsgIono(msg) => msg.message_name(),
2433 Sbp::MsgSvConfigurationGpsDep(msg) => msg.message_name(),
2434 Sbp::MsgGroupDelayDepA(msg) => msg.message_name(),
2435 Sbp::MsgGroupDelayDepB(msg) => msg.message_name(),
2436 Sbp::MsgGroupDelay(msg) => msg.message_name(),
2437 Sbp::MsgEphemerisGalDepA(msg) => msg.message_name(),
2438 Sbp::MsgGnssCapb(msg) => msg.message_name(),
2439 Sbp::MsgSvAzEl(msg) => msg.message_name(),
2440 Sbp::MsgSettingsWrite(msg) => msg.message_name(),
2441 Sbp::MsgSettingsSave(msg) => msg.message_name(),
2442 Sbp::MsgSettingsReadByIndexReq(msg) => msg.message_name(),
2443 Sbp::MsgFileioReadResp(msg) => msg.message_name(),
2444 Sbp::MsgSettingsReadReq(msg) => msg.message_name(),
2445 Sbp::MsgSettingsReadResp(msg) => msg.message_name(),
2446 Sbp::MsgSettingsReadByIndexDone(msg) => msg.message_name(),
2447 Sbp::MsgSettingsReadByIndexResp(msg) => msg.message_name(),
2448 Sbp::MsgFileioReadReq(msg) => msg.message_name(),
2449 Sbp::MsgFileioReadDirReq(msg) => msg.message_name(),
2450 Sbp::MsgFileioReadDirResp(msg) => msg.message_name(),
2451 Sbp::MsgFileioWriteResp(msg) => msg.message_name(),
2452 Sbp::MsgFileioRemove(msg) => msg.message_name(),
2453 Sbp::MsgFileioWriteReq(msg) => msg.message_name(),
2454 Sbp::MsgSettingsRegister(msg) => msg.message_name(),
2455 Sbp::MsgSettingsWriteResp(msg) => msg.message_name(),
2456 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.message_name(),
2457 Sbp::MsgBootloaderJumpToApp(msg) => msg.message_name(),
2458 Sbp::MsgResetDep(msg) => msg.message_name(),
2459 Sbp::MsgBootloaderHandshakeReq(msg) => msg.message_name(),
2460 Sbp::MsgBootloaderHandshakeResp(msg) => msg.message_name(),
2461 Sbp::MsgDeviceMonitor(msg) => msg.message_name(),
2462 Sbp::MsgReset(msg) => msg.message_name(),
2463 Sbp::MsgCommandReq(msg) => msg.message_name(),
2464 Sbp::MsgCommandResp(msg) => msg.message_name(),
2465 Sbp::MsgNetworkStateReq(msg) => msg.message_name(),
2466 Sbp::MsgNetworkStateResp(msg) => msg.message_name(),
2467 Sbp::MsgCommandOutput(msg) => msg.message_name(),
2468 Sbp::MsgNetworkBandwidthUsage(msg) => msg.message_name(),
2469 Sbp::MsgCellModemStatus(msg) => msg.message_name(),
2470 Sbp::MsgFrontEndGain(msg) => msg.message_name(),
2471 Sbp::MsgCwResults(msg) => msg.message_name(),
2472 Sbp::MsgCwStart(msg) => msg.message_name(),
2473 Sbp::MsgNapDeviceDnaResp(msg) => msg.message_name(),
2474 Sbp::MsgNapDeviceDnaReq(msg) => msg.message_name(),
2475 Sbp::MsgFlashDone(msg) => msg.message_name(),
2476 Sbp::MsgFlashReadResp(msg) => msg.message_name(),
2477 Sbp::MsgFlashErase(msg) => msg.message_name(),
2478 Sbp::MsgStmFlashLockSector(msg) => msg.message_name(),
2479 Sbp::MsgStmFlashUnlockSector(msg) => msg.message_name(),
2480 Sbp::MsgStmUniqueIdResp(msg) => msg.message_name(),
2481 Sbp::MsgFlashProgram(msg) => msg.message_name(),
2482 Sbp::MsgFlashReadReq(msg) => msg.message_name(),
2483 Sbp::MsgStmUniqueIdReq(msg) => msg.message_name(),
2484 Sbp::MsgM25FlashWriteStatus(msg) => msg.message_name(),
2485 Sbp::MsgGpsTimeDepA(msg) => msg.message_name(),
2486 Sbp::MsgExtEvent(msg) => msg.message_name(),
2487 Sbp::MsgGpsTime(msg) => msg.message_name(),
2488 Sbp::MsgUtcTime(msg) => msg.message_name(),
2489 Sbp::MsgGpsTimeGnss(msg) => msg.message_name(),
2490 Sbp::MsgUtcTimeGnss(msg) => msg.message_name(),
2491 Sbp::MsgTelSv(msg) => msg.message_name(),
2492 Sbp::MsgSettingsRegisterResp(msg) => msg.message_name(),
2493 Sbp::MsgPosEcefDepA(msg) => msg.message_name(),
2494 Sbp::MsgPosLlhDepA(msg) => msg.message_name(),
2495 Sbp::MsgBaselineEcefDepA(msg) => msg.message_name(),
2496 Sbp::MsgBaselineNedDepA(msg) => msg.message_name(),
2497 Sbp::MsgVelEcefDepA(msg) => msg.message_name(),
2498 Sbp::MsgVelNedDepA(msg) => msg.message_name(),
2499 Sbp::MsgDopsDepA(msg) => msg.message_name(),
2500 Sbp::MsgBaselineHeadingDepA(msg) => msg.message_name(),
2501 Sbp::MsgDops(msg) => msg.message_name(),
2502 Sbp::MsgPosEcef(msg) => msg.message_name(),
2503 Sbp::MsgPosLlh(msg) => msg.message_name(),
2504 Sbp::MsgBaselineEcef(msg) => msg.message_name(),
2505 Sbp::MsgBaselineNed(msg) => msg.message_name(),
2506 Sbp::MsgVelEcef(msg) => msg.message_name(),
2507 Sbp::MsgVelNed(msg) => msg.message_name(),
2508 Sbp::MsgBaselineHeading(msg) => msg.message_name(),
2509 Sbp::MsgAgeCorrections(msg) => msg.message_name(),
2510 Sbp::MsgPosLlhCov(msg) => msg.message_name(),
2511 Sbp::MsgVelNedCov(msg) => msg.message_name(),
2512 Sbp::MsgVelBody(msg) => msg.message_name(),
2513 Sbp::MsgPosEcefCov(msg) => msg.message_name(),
2514 Sbp::MsgVelEcefCov(msg) => msg.message_name(),
2515 Sbp::MsgProtectionLevelDepA(msg) => msg.message_name(),
2516 Sbp::MsgProtectionLevel(msg) => msg.message_name(),
2517 Sbp::MsgPosLlhAcc(msg) => msg.message_name(),
2518 Sbp::MsgVelCog(msg) => msg.message_name(),
2519 Sbp::MsgOrientQuat(msg) => msg.message_name(),
2520 Sbp::MsgOrientEuler(msg) => msg.message_name(),
2521 Sbp::MsgAngularRate(msg) => msg.message_name(),
2522 Sbp::MsgPosEcefGnss(msg) => msg.message_name(),
2523 Sbp::MsgPosLlhGnss(msg) => msg.message_name(),
2524 Sbp::MsgVelEcefGnss(msg) => msg.message_name(),
2525 Sbp::MsgVelNedGnss(msg) => msg.message_name(),
2526 Sbp::MsgPosLlhCovGnss(msg) => msg.message_name(),
2527 Sbp::MsgVelNedCovGnss(msg) => msg.message_name(),
2528 Sbp::MsgPosEcefCovGnss(msg) => msg.message_name(),
2529 Sbp::MsgVelEcefCovGnss(msg) => msg.message_name(),
2530 Sbp::MsgUtcLeapSecond(msg) => msg.message_name(),
2531 Sbp::MsgReferenceFrameParam(msg) => msg.message_name(),
2532 Sbp::MsgPoseRelative(msg) => msg.message_name(),
2533 Sbp::MsgNdbEvent(msg) => msg.message_name(),
2534 Sbp::MsgLog(msg) => msg.message_name(),
2535 Sbp::MsgFwd(msg) => msg.message_name(),
2536 Sbp::MsgSsrOrbitClockDepA(msg) => msg.message_name(),
2537 Sbp::MsgSsrOrbitClock(msg) => msg.message_name(),
2538 Sbp::MsgSsrOrbitClockBounds(msg) => msg.message_name(),
2539 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.message_name(),
2540 Sbp::MsgSsrCodeBiases(msg) => msg.message_name(),
2541 Sbp::MsgSsrPhaseBiases(msg) => msg.message_name(),
2542 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.message_name(),
2543 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.message_name(),
2544 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.message_name(),
2545 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.message_name(),
2546 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.message_name(),
2547 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.message_name(),
2548 Sbp::MsgSsrTileDefinition(msg) => msg.message_name(),
2549 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.message_name(),
2550 Sbp::MsgSsrStecCorrectionDep(msg) => msg.message_name(),
2551 Sbp::MsgSsrGriddedCorrection(msg) => msg.message_name(),
2552 Sbp::MsgSsrStecCorrection(msg) => msg.message_name(),
2553 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.message_name(),
2554 Sbp::MsgSsrSatelliteApcDep(msg) => msg.message_name(),
2555 Sbp::MsgSsrSatelliteApc(msg) => msg.message_name(),
2556 Sbp::MsgOsr(msg) => msg.message_name(),
2557 Sbp::MsgUserData(msg) => msg.message_name(),
2558 Sbp::MsgImuRaw(msg) => msg.message_name(),
2559 Sbp::MsgImuAux(msg) => msg.message_name(),
2560 Sbp::MsgMagRaw(msg) => msg.message_name(),
2561 Sbp::MsgOdometry(msg) => msg.message_name(),
2562 Sbp::MsgWheeltick(msg) => msg.message_name(),
2563 Sbp::MsgImuComp(msg) => msg.message_name(),
2564 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.message_name(),
2565 Sbp::MsgSsrFlagHighLevel(msg) => msg.message_name(),
2566 Sbp::MsgSsrFlagSatellites(msg) => msg.message_name(),
2567 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_name(),
2568 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.message_name(),
2569 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.message_name(),
2570 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.message_name(),
2571 Sbp::MsgAcknowledge(msg) => msg.message_name(),
2572 Sbp::MsgEd25519SignatureDepA(msg) => msg.message_name(),
2573 Sbp::MsgEd25519CertificateDep(msg) => msg.message_name(),
2574 Sbp::MsgEd25519SignatureDepB(msg) => msg.message_name(),
2575 Sbp::MsgEcdsaCertificate(msg) => msg.message_name(),
2576 Sbp::MsgCertificateChainDep(msg) => msg.message_name(),
2577 Sbp::MsgEcdsaSignatureDepA(msg) => msg.message_name(),
2578 Sbp::MsgEcdsaSignatureDepB(msg) => msg.message_name(),
2579 Sbp::MsgEcdsaSignature(msg) => msg.message_name(),
2580 Sbp::MsgCertificateChain(msg) => msg.message_name(),
2581 Sbp::MsgAesCmacSignature(msg) => msg.message_name(),
2582 Sbp::MsgFileioConfigReq(msg) => msg.message_name(),
2583 Sbp::MsgFileioConfigResp(msg) => msg.message_name(),
2584 Sbp::MsgSbasRaw(msg) => msg.message_name(),
2585 Sbp::MsgLinuxCpuStateDepA(msg) => msg.message_name(),
2586 Sbp::MsgLinuxMemStateDepA(msg) => msg.message_name(),
2587 Sbp::MsgLinuxSysStateDepA(msg) => msg.message_name(),
2588 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.message_name(),
2589 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.message_name(),
2590 Sbp::MsgLinuxSocketUsage(msg) => msg.message_name(),
2591 Sbp::MsgLinuxProcessFdCount(msg) => msg.message_name(),
2592 Sbp::MsgLinuxProcessFdSummary(msg) => msg.message_name(),
2593 Sbp::MsgLinuxCpuState(msg) => msg.message_name(),
2594 Sbp::MsgLinuxMemState(msg) => msg.message_name(),
2595 Sbp::MsgLinuxSysState(msg) => msg.message_name(),
2596 Sbp::MsgMeasurementPoint(msg) => msg.message_name(),
2597 Sbp::MsgProfilingSystemInfo(msg) => msg.message_name(),
2598 Sbp::MsgProfilingThreadInfo(msg) => msg.message_name(),
2599 Sbp::MsgProfilingResourceCounter(msg) => msg.message_name(),
2600 Sbp::MsgStartup(msg) => msg.message_name(),
2601 Sbp::MsgDgnssStatus(msg) => msg.message_name(),
2602 Sbp::MsgInsStatus(msg) => msg.message_name(),
2603 Sbp::MsgCsacTelemetry(msg) => msg.message_name(),
2604 Sbp::MsgCsacTelemetryLabels(msg) => msg.message_name(),
2605 Sbp::MsgInsUpdates(msg) => msg.message_name(),
2606 Sbp::MsgGnssTimeOffset(msg) => msg.message_name(),
2607 Sbp::MsgPpsTime(msg) => msg.message_name(),
2608 Sbp::MsgSensorAidEvent(msg) => msg.message_name(),
2609 Sbp::MsgGroupMeta(msg) => msg.message_name(),
2610 Sbp::MsgSolnMeta(msg) => msg.message_name(),
2611 Sbp::MsgSolnMetaDepA(msg) => msg.message_name(),
2612 Sbp::MsgStatusJournal(msg) => msg.message_name(),
2613 Sbp::MsgStatusReport(msg) => msg.message_name(),
2614 Sbp::MsgHeartbeat(msg) => msg.message_name(),
2615 Sbp::Unknown(msg) => msg.message_name(),
2616 Sbp::Invalid(msg) => msg.message_name(),
2617 }
2618 }
2619
2620 fn message_type(&self) -> Option<u16> {
2621 match self {
2622 Sbp::MsgPrintDep(msg) => msg.message_type(),
2623 Sbp::MsgTrackingStateDetailedDep(msg) => msg.message_type(),
2624 Sbp::MsgTrackingStateDepB(msg) => msg.message_type(),
2625 Sbp::MsgAcqResultDepB(msg) => msg.message_type(),
2626 Sbp::MsgAcqResultDepA(msg) => msg.message_type(),
2627 Sbp::MsgTrackingStateDepA(msg) => msg.message_type(),
2628 Sbp::MsgThreadState(msg) => msg.message_type(),
2629 Sbp::MsgUartStateDepa(msg) => msg.message_type(),
2630 Sbp::MsgIarState(msg) => msg.message_type(),
2631 Sbp::MsgEphemerisDepA(msg) => msg.message_type(),
2632 Sbp::MsgMaskSatelliteDep(msg) => msg.message_type(),
2633 Sbp::MsgTrackingIqDepA(msg) => msg.message_type(),
2634 Sbp::MsgUartState(msg) => msg.message_type(),
2635 Sbp::MsgAcqSvProfileDep(msg) => msg.message_type(),
2636 Sbp::MsgAcqResultDepC(msg) => msg.message_type(),
2637 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.message_type(),
2638 Sbp::MsgResetFilters(msg) => msg.message_type(),
2639 Sbp::MsgInitBaseDep(msg) => msg.message_type(),
2640 Sbp::MsgMaskSatellite(msg) => msg.message_type(),
2641 Sbp::MsgTrackingIqDepB(msg) => msg.message_type(),
2642 Sbp::MsgTrackingIq(msg) => msg.message_type(),
2643 Sbp::MsgAcqSvProfile(msg) => msg.message_type(),
2644 Sbp::MsgAcqResult(msg) => msg.message_type(),
2645 Sbp::MsgTrackingState(msg) => msg.message_type(),
2646 Sbp::MsgObsDepB(msg) => msg.message_type(),
2647 Sbp::MsgBasePosLlh(msg) => msg.message_type(),
2648 Sbp::MsgObsDepA(msg) => msg.message_type(),
2649 Sbp::MsgEphemerisDepB(msg) => msg.message_type(),
2650 Sbp::MsgEphemerisDepC(msg) => msg.message_type(),
2651 Sbp::MsgBasePosEcef(msg) => msg.message_type(),
2652 Sbp::MsgObsDepC(msg) => msg.message_type(),
2653 Sbp::MsgObs(msg) => msg.message_type(),
2654 Sbp::MsgSpecanDep(msg) => msg.message_type(),
2655 Sbp::MsgSpecan(msg) => msg.message_type(),
2656 Sbp::MsgMeasurementState(msg) => msg.message_type(),
2657 Sbp::MsgSetTime(msg) => msg.message_type(),
2658 Sbp::MsgAlmanac(msg) => msg.message_type(),
2659 Sbp::MsgAlmanacGpsDep(msg) => msg.message_type(),
2660 Sbp::MsgAlmanacGloDep(msg) => msg.message_type(),
2661 Sbp::MsgAlmanacGps(msg) => msg.message_type(),
2662 Sbp::MsgAlmanacGlo(msg) => msg.message_type(),
2663 Sbp::MsgGloBiases(msg) => msg.message_type(),
2664 Sbp::MsgEphemerisDepD(msg) => msg.message_type(),
2665 Sbp::MsgEphemerisGpsDepE(msg) => msg.message_type(),
2666 Sbp::MsgEphemerisSbasDepA(msg) => msg.message_type(),
2667 Sbp::MsgEphemerisGloDepA(msg) => msg.message_type(),
2668 Sbp::MsgEphemerisSbasDepB(msg) => msg.message_type(),
2669 Sbp::MsgEphemerisGloDepB(msg) => msg.message_type(),
2670 Sbp::MsgEphemerisGpsDepF(msg) => msg.message_type(),
2671 Sbp::MsgEphemerisGloDepC(msg) => msg.message_type(),
2672 Sbp::MsgEphemerisGloDepD(msg) => msg.message_type(),
2673 Sbp::MsgEphemerisBds(msg) => msg.message_type(),
2674 Sbp::MsgEphemerisGps(msg) => msg.message_type(),
2675 Sbp::MsgEphemerisGlo(msg) => msg.message_type(),
2676 Sbp::MsgEphemerisSbas(msg) => msg.message_type(),
2677 Sbp::MsgEphemerisGal(msg) => msg.message_type(),
2678 Sbp::MsgEphemerisQzss(msg) => msg.message_type(),
2679 Sbp::MsgIono(msg) => msg.message_type(),
2680 Sbp::MsgSvConfigurationGpsDep(msg) => msg.message_type(),
2681 Sbp::MsgGroupDelayDepA(msg) => msg.message_type(),
2682 Sbp::MsgGroupDelayDepB(msg) => msg.message_type(),
2683 Sbp::MsgGroupDelay(msg) => msg.message_type(),
2684 Sbp::MsgEphemerisGalDepA(msg) => msg.message_type(),
2685 Sbp::MsgGnssCapb(msg) => msg.message_type(),
2686 Sbp::MsgSvAzEl(msg) => msg.message_type(),
2687 Sbp::MsgSettingsWrite(msg) => msg.message_type(),
2688 Sbp::MsgSettingsSave(msg) => msg.message_type(),
2689 Sbp::MsgSettingsReadByIndexReq(msg) => msg.message_type(),
2690 Sbp::MsgFileioReadResp(msg) => msg.message_type(),
2691 Sbp::MsgSettingsReadReq(msg) => msg.message_type(),
2692 Sbp::MsgSettingsReadResp(msg) => msg.message_type(),
2693 Sbp::MsgSettingsReadByIndexDone(msg) => msg.message_type(),
2694 Sbp::MsgSettingsReadByIndexResp(msg) => msg.message_type(),
2695 Sbp::MsgFileioReadReq(msg) => msg.message_type(),
2696 Sbp::MsgFileioReadDirReq(msg) => msg.message_type(),
2697 Sbp::MsgFileioReadDirResp(msg) => msg.message_type(),
2698 Sbp::MsgFileioWriteResp(msg) => msg.message_type(),
2699 Sbp::MsgFileioRemove(msg) => msg.message_type(),
2700 Sbp::MsgFileioWriteReq(msg) => msg.message_type(),
2701 Sbp::MsgSettingsRegister(msg) => msg.message_type(),
2702 Sbp::MsgSettingsWriteResp(msg) => msg.message_type(),
2703 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.message_type(),
2704 Sbp::MsgBootloaderJumpToApp(msg) => msg.message_type(),
2705 Sbp::MsgResetDep(msg) => msg.message_type(),
2706 Sbp::MsgBootloaderHandshakeReq(msg) => msg.message_type(),
2707 Sbp::MsgBootloaderHandshakeResp(msg) => msg.message_type(),
2708 Sbp::MsgDeviceMonitor(msg) => msg.message_type(),
2709 Sbp::MsgReset(msg) => msg.message_type(),
2710 Sbp::MsgCommandReq(msg) => msg.message_type(),
2711 Sbp::MsgCommandResp(msg) => msg.message_type(),
2712 Sbp::MsgNetworkStateReq(msg) => msg.message_type(),
2713 Sbp::MsgNetworkStateResp(msg) => msg.message_type(),
2714 Sbp::MsgCommandOutput(msg) => msg.message_type(),
2715 Sbp::MsgNetworkBandwidthUsage(msg) => msg.message_type(),
2716 Sbp::MsgCellModemStatus(msg) => msg.message_type(),
2717 Sbp::MsgFrontEndGain(msg) => msg.message_type(),
2718 Sbp::MsgCwResults(msg) => msg.message_type(),
2719 Sbp::MsgCwStart(msg) => msg.message_type(),
2720 Sbp::MsgNapDeviceDnaResp(msg) => msg.message_type(),
2721 Sbp::MsgNapDeviceDnaReq(msg) => msg.message_type(),
2722 Sbp::MsgFlashDone(msg) => msg.message_type(),
2723 Sbp::MsgFlashReadResp(msg) => msg.message_type(),
2724 Sbp::MsgFlashErase(msg) => msg.message_type(),
2725 Sbp::MsgStmFlashLockSector(msg) => msg.message_type(),
2726 Sbp::MsgStmFlashUnlockSector(msg) => msg.message_type(),
2727 Sbp::MsgStmUniqueIdResp(msg) => msg.message_type(),
2728 Sbp::MsgFlashProgram(msg) => msg.message_type(),
2729 Sbp::MsgFlashReadReq(msg) => msg.message_type(),
2730 Sbp::MsgStmUniqueIdReq(msg) => msg.message_type(),
2731 Sbp::MsgM25FlashWriteStatus(msg) => msg.message_type(),
2732 Sbp::MsgGpsTimeDepA(msg) => msg.message_type(),
2733 Sbp::MsgExtEvent(msg) => msg.message_type(),
2734 Sbp::MsgGpsTime(msg) => msg.message_type(),
2735 Sbp::MsgUtcTime(msg) => msg.message_type(),
2736 Sbp::MsgGpsTimeGnss(msg) => msg.message_type(),
2737 Sbp::MsgUtcTimeGnss(msg) => msg.message_type(),
2738 Sbp::MsgTelSv(msg) => msg.message_type(),
2739 Sbp::MsgSettingsRegisterResp(msg) => msg.message_type(),
2740 Sbp::MsgPosEcefDepA(msg) => msg.message_type(),
2741 Sbp::MsgPosLlhDepA(msg) => msg.message_type(),
2742 Sbp::MsgBaselineEcefDepA(msg) => msg.message_type(),
2743 Sbp::MsgBaselineNedDepA(msg) => msg.message_type(),
2744 Sbp::MsgVelEcefDepA(msg) => msg.message_type(),
2745 Sbp::MsgVelNedDepA(msg) => msg.message_type(),
2746 Sbp::MsgDopsDepA(msg) => msg.message_type(),
2747 Sbp::MsgBaselineHeadingDepA(msg) => msg.message_type(),
2748 Sbp::MsgDops(msg) => msg.message_type(),
2749 Sbp::MsgPosEcef(msg) => msg.message_type(),
2750 Sbp::MsgPosLlh(msg) => msg.message_type(),
2751 Sbp::MsgBaselineEcef(msg) => msg.message_type(),
2752 Sbp::MsgBaselineNed(msg) => msg.message_type(),
2753 Sbp::MsgVelEcef(msg) => msg.message_type(),
2754 Sbp::MsgVelNed(msg) => msg.message_type(),
2755 Sbp::MsgBaselineHeading(msg) => msg.message_type(),
2756 Sbp::MsgAgeCorrections(msg) => msg.message_type(),
2757 Sbp::MsgPosLlhCov(msg) => msg.message_type(),
2758 Sbp::MsgVelNedCov(msg) => msg.message_type(),
2759 Sbp::MsgVelBody(msg) => msg.message_type(),
2760 Sbp::MsgPosEcefCov(msg) => msg.message_type(),
2761 Sbp::MsgVelEcefCov(msg) => msg.message_type(),
2762 Sbp::MsgProtectionLevelDepA(msg) => msg.message_type(),
2763 Sbp::MsgProtectionLevel(msg) => msg.message_type(),
2764 Sbp::MsgPosLlhAcc(msg) => msg.message_type(),
2765 Sbp::MsgVelCog(msg) => msg.message_type(),
2766 Sbp::MsgOrientQuat(msg) => msg.message_type(),
2767 Sbp::MsgOrientEuler(msg) => msg.message_type(),
2768 Sbp::MsgAngularRate(msg) => msg.message_type(),
2769 Sbp::MsgPosEcefGnss(msg) => msg.message_type(),
2770 Sbp::MsgPosLlhGnss(msg) => msg.message_type(),
2771 Sbp::MsgVelEcefGnss(msg) => msg.message_type(),
2772 Sbp::MsgVelNedGnss(msg) => msg.message_type(),
2773 Sbp::MsgPosLlhCovGnss(msg) => msg.message_type(),
2774 Sbp::MsgVelNedCovGnss(msg) => msg.message_type(),
2775 Sbp::MsgPosEcefCovGnss(msg) => msg.message_type(),
2776 Sbp::MsgVelEcefCovGnss(msg) => msg.message_type(),
2777 Sbp::MsgUtcLeapSecond(msg) => msg.message_type(),
2778 Sbp::MsgReferenceFrameParam(msg) => msg.message_type(),
2779 Sbp::MsgPoseRelative(msg) => msg.message_type(),
2780 Sbp::MsgNdbEvent(msg) => msg.message_type(),
2781 Sbp::MsgLog(msg) => msg.message_type(),
2782 Sbp::MsgFwd(msg) => msg.message_type(),
2783 Sbp::MsgSsrOrbitClockDepA(msg) => msg.message_type(),
2784 Sbp::MsgSsrOrbitClock(msg) => msg.message_type(),
2785 Sbp::MsgSsrOrbitClockBounds(msg) => msg.message_type(),
2786 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.message_type(),
2787 Sbp::MsgSsrCodeBiases(msg) => msg.message_type(),
2788 Sbp::MsgSsrPhaseBiases(msg) => msg.message_type(),
2789 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.message_type(),
2790 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.message_type(),
2791 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.message_type(),
2792 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.message_type(),
2793 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.message_type(),
2794 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.message_type(),
2795 Sbp::MsgSsrTileDefinition(msg) => msg.message_type(),
2796 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.message_type(),
2797 Sbp::MsgSsrStecCorrectionDep(msg) => msg.message_type(),
2798 Sbp::MsgSsrGriddedCorrection(msg) => msg.message_type(),
2799 Sbp::MsgSsrStecCorrection(msg) => msg.message_type(),
2800 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.message_type(),
2801 Sbp::MsgSsrSatelliteApcDep(msg) => msg.message_type(),
2802 Sbp::MsgSsrSatelliteApc(msg) => msg.message_type(),
2803 Sbp::MsgOsr(msg) => msg.message_type(),
2804 Sbp::MsgUserData(msg) => msg.message_type(),
2805 Sbp::MsgImuRaw(msg) => msg.message_type(),
2806 Sbp::MsgImuAux(msg) => msg.message_type(),
2807 Sbp::MsgMagRaw(msg) => msg.message_type(),
2808 Sbp::MsgOdometry(msg) => msg.message_type(),
2809 Sbp::MsgWheeltick(msg) => msg.message_type(),
2810 Sbp::MsgImuComp(msg) => msg.message_type(),
2811 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.message_type(),
2812 Sbp::MsgSsrFlagHighLevel(msg) => msg.message_type(),
2813 Sbp::MsgSsrFlagSatellites(msg) => msg.message_type(),
2814 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.message_type(),
2815 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.message_type(),
2816 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.message_type(),
2817 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.message_type(),
2818 Sbp::MsgAcknowledge(msg) => msg.message_type(),
2819 Sbp::MsgEd25519SignatureDepA(msg) => msg.message_type(),
2820 Sbp::MsgEd25519CertificateDep(msg) => msg.message_type(),
2821 Sbp::MsgEd25519SignatureDepB(msg) => msg.message_type(),
2822 Sbp::MsgEcdsaCertificate(msg) => msg.message_type(),
2823 Sbp::MsgCertificateChainDep(msg) => msg.message_type(),
2824 Sbp::MsgEcdsaSignatureDepA(msg) => msg.message_type(),
2825 Sbp::MsgEcdsaSignatureDepB(msg) => msg.message_type(),
2826 Sbp::MsgEcdsaSignature(msg) => msg.message_type(),
2827 Sbp::MsgCertificateChain(msg) => msg.message_type(),
2828 Sbp::MsgAesCmacSignature(msg) => msg.message_type(),
2829 Sbp::MsgFileioConfigReq(msg) => msg.message_type(),
2830 Sbp::MsgFileioConfigResp(msg) => msg.message_type(),
2831 Sbp::MsgSbasRaw(msg) => msg.message_type(),
2832 Sbp::MsgLinuxCpuStateDepA(msg) => msg.message_type(),
2833 Sbp::MsgLinuxMemStateDepA(msg) => msg.message_type(),
2834 Sbp::MsgLinuxSysStateDepA(msg) => msg.message_type(),
2835 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.message_type(),
2836 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.message_type(),
2837 Sbp::MsgLinuxSocketUsage(msg) => msg.message_type(),
2838 Sbp::MsgLinuxProcessFdCount(msg) => msg.message_type(),
2839 Sbp::MsgLinuxProcessFdSummary(msg) => msg.message_type(),
2840 Sbp::MsgLinuxCpuState(msg) => msg.message_type(),
2841 Sbp::MsgLinuxMemState(msg) => msg.message_type(),
2842 Sbp::MsgLinuxSysState(msg) => msg.message_type(),
2843 Sbp::MsgMeasurementPoint(msg) => msg.message_type(),
2844 Sbp::MsgProfilingSystemInfo(msg) => msg.message_type(),
2845 Sbp::MsgProfilingThreadInfo(msg) => msg.message_type(),
2846 Sbp::MsgProfilingResourceCounter(msg) => msg.message_type(),
2847 Sbp::MsgStartup(msg) => msg.message_type(),
2848 Sbp::MsgDgnssStatus(msg) => msg.message_type(),
2849 Sbp::MsgInsStatus(msg) => msg.message_type(),
2850 Sbp::MsgCsacTelemetry(msg) => msg.message_type(),
2851 Sbp::MsgCsacTelemetryLabels(msg) => msg.message_type(),
2852 Sbp::MsgInsUpdates(msg) => msg.message_type(),
2853 Sbp::MsgGnssTimeOffset(msg) => msg.message_type(),
2854 Sbp::MsgPpsTime(msg) => msg.message_type(),
2855 Sbp::MsgSensorAidEvent(msg) => msg.message_type(),
2856 Sbp::MsgGroupMeta(msg) => msg.message_type(),
2857 Sbp::MsgSolnMeta(msg) => msg.message_type(),
2858 Sbp::MsgSolnMetaDepA(msg) => msg.message_type(),
2859 Sbp::MsgStatusJournal(msg) => msg.message_type(),
2860 Sbp::MsgStatusReport(msg) => msg.message_type(),
2861 Sbp::MsgHeartbeat(msg) => msg.message_type(),
2862 Sbp::Unknown(msg) => msg.message_type(),
2863 Sbp::Invalid(msg) => msg.message_type(),
2864 }
2865 }
2866
2867 fn sender_id(&self) -> Option<u16> {
2868 match self {
2869 Sbp::MsgPrintDep(msg) => msg.sender_id(),
2870 Sbp::MsgTrackingStateDetailedDep(msg) => msg.sender_id(),
2871 Sbp::MsgTrackingStateDepB(msg) => msg.sender_id(),
2872 Sbp::MsgAcqResultDepB(msg) => msg.sender_id(),
2873 Sbp::MsgAcqResultDepA(msg) => msg.sender_id(),
2874 Sbp::MsgTrackingStateDepA(msg) => msg.sender_id(),
2875 Sbp::MsgThreadState(msg) => msg.sender_id(),
2876 Sbp::MsgUartStateDepa(msg) => msg.sender_id(),
2877 Sbp::MsgIarState(msg) => msg.sender_id(),
2878 Sbp::MsgEphemerisDepA(msg) => msg.sender_id(),
2879 Sbp::MsgMaskSatelliteDep(msg) => msg.sender_id(),
2880 Sbp::MsgTrackingIqDepA(msg) => msg.sender_id(),
2881 Sbp::MsgUartState(msg) => msg.sender_id(),
2882 Sbp::MsgAcqSvProfileDep(msg) => msg.sender_id(),
2883 Sbp::MsgAcqResultDepC(msg) => msg.sender_id(),
2884 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.sender_id(),
2885 Sbp::MsgResetFilters(msg) => msg.sender_id(),
2886 Sbp::MsgInitBaseDep(msg) => msg.sender_id(),
2887 Sbp::MsgMaskSatellite(msg) => msg.sender_id(),
2888 Sbp::MsgTrackingIqDepB(msg) => msg.sender_id(),
2889 Sbp::MsgTrackingIq(msg) => msg.sender_id(),
2890 Sbp::MsgAcqSvProfile(msg) => msg.sender_id(),
2891 Sbp::MsgAcqResult(msg) => msg.sender_id(),
2892 Sbp::MsgTrackingState(msg) => msg.sender_id(),
2893 Sbp::MsgObsDepB(msg) => msg.sender_id(),
2894 Sbp::MsgBasePosLlh(msg) => msg.sender_id(),
2895 Sbp::MsgObsDepA(msg) => msg.sender_id(),
2896 Sbp::MsgEphemerisDepB(msg) => msg.sender_id(),
2897 Sbp::MsgEphemerisDepC(msg) => msg.sender_id(),
2898 Sbp::MsgBasePosEcef(msg) => msg.sender_id(),
2899 Sbp::MsgObsDepC(msg) => msg.sender_id(),
2900 Sbp::MsgObs(msg) => msg.sender_id(),
2901 Sbp::MsgSpecanDep(msg) => msg.sender_id(),
2902 Sbp::MsgSpecan(msg) => msg.sender_id(),
2903 Sbp::MsgMeasurementState(msg) => msg.sender_id(),
2904 Sbp::MsgSetTime(msg) => msg.sender_id(),
2905 Sbp::MsgAlmanac(msg) => msg.sender_id(),
2906 Sbp::MsgAlmanacGpsDep(msg) => msg.sender_id(),
2907 Sbp::MsgAlmanacGloDep(msg) => msg.sender_id(),
2908 Sbp::MsgAlmanacGps(msg) => msg.sender_id(),
2909 Sbp::MsgAlmanacGlo(msg) => msg.sender_id(),
2910 Sbp::MsgGloBiases(msg) => msg.sender_id(),
2911 Sbp::MsgEphemerisDepD(msg) => msg.sender_id(),
2912 Sbp::MsgEphemerisGpsDepE(msg) => msg.sender_id(),
2913 Sbp::MsgEphemerisSbasDepA(msg) => msg.sender_id(),
2914 Sbp::MsgEphemerisGloDepA(msg) => msg.sender_id(),
2915 Sbp::MsgEphemerisSbasDepB(msg) => msg.sender_id(),
2916 Sbp::MsgEphemerisGloDepB(msg) => msg.sender_id(),
2917 Sbp::MsgEphemerisGpsDepF(msg) => msg.sender_id(),
2918 Sbp::MsgEphemerisGloDepC(msg) => msg.sender_id(),
2919 Sbp::MsgEphemerisGloDepD(msg) => msg.sender_id(),
2920 Sbp::MsgEphemerisBds(msg) => msg.sender_id(),
2921 Sbp::MsgEphemerisGps(msg) => msg.sender_id(),
2922 Sbp::MsgEphemerisGlo(msg) => msg.sender_id(),
2923 Sbp::MsgEphemerisSbas(msg) => msg.sender_id(),
2924 Sbp::MsgEphemerisGal(msg) => msg.sender_id(),
2925 Sbp::MsgEphemerisQzss(msg) => msg.sender_id(),
2926 Sbp::MsgIono(msg) => msg.sender_id(),
2927 Sbp::MsgSvConfigurationGpsDep(msg) => msg.sender_id(),
2928 Sbp::MsgGroupDelayDepA(msg) => msg.sender_id(),
2929 Sbp::MsgGroupDelayDepB(msg) => msg.sender_id(),
2930 Sbp::MsgGroupDelay(msg) => msg.sender_id(),
2931 Sbp::MsgEphemerisGalDepA(msg) => msg.sender_id(),
2932 Sbp::MsgGnssCapb(msg) => msg.sender_id(),
2933 Sbp::MsgSvAzEl(msg) => msg.sender_id(),
2934 Sbp::MsgSettingsWrite(msg) => msg.sender_id(),
2935 Sbp::MsgSettingsSave(msg) => msg.sender_id(),
2936 Sbp::MsgSettingsReadByIndexReq(msg) => msg.sender_id(),
2937 Sbp::MsgFileioReadResp(msg) => msg.sender_id(),
2938 Sbp::MsgSettingsReadReq(msg) => msg.sender_id(),
2939 Sbp::MsgSettingsReadResp(msg) => msg.sender_id(),
2940 Sbp::MsgSettingsReadByIndexDone(msg) => msg.sender_id(),
2941 Sbp::MsgSettingsReadByIndexResp(msg) => msg.sender_id(),
2942 Sbp::MsgFileioReadReq(msg) => msg.sender_id(),
2943 Sbp::MsgFileioReadDirReq(msg) => msg.sender_id(),
2944 Sbp::MsgFileioReadDirResp(msg) => msg.sender_id(),
2945 Sbp::MsgFileioWriteResp(msg) => msg.sender_id(),
2946 Sbp::MsgFileioRemove(msg) => msg.sender_id(),
2947 Sbp::MsgFileioWriteReq(msg) => msg.sender_id(),
2948 Sbp::MsgSettingsRegister(msg) => msg.sender_id(),
2949 Sbp::MsgSettingsWriteResp(msg) => msg.sender_id(),
2950 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.sender_id(),
2951 Sbp::MsgBootloaderJumpToApp(msg) => msg.sender_id(),
2952 Sbp::MsgResetDep(msg) => msg.sender_id(),
2953 Sbp::MsgBootloaderHandshakeReq(msg) => msg.sender_id(),
2954 Sbp::MsgBootloaderHandshakeResp(msg) => msg.sender_id(),
2955 Sbp::MsgDeviceMonitor(msg) => msg.sender_id(),
2956 Sbp::MsgReset(msg) => msg.sender_id(),
2957 Sbp::MsgCommandReq(msg) => msg.sender_id(),
2958 Sbp::MsgCommandResp(msg) => msg.sender_id(),
2959 Sbp::MsgNetworkStateReq(msg) => msg.sender_id(),
2960 Sbp::MsgNetworkStateResp(msg) => msg.sender_id(),
2961 Sbp::MsgCommandOutput(msg) => msg.sender_id(),
2962 Sbp::MsgNetworkBandwidthUsage(msg) => msg.sender_id(),
2963 Sbp::MsgCellModemStatus(msg) => msg.sender_id(),
2964 Sbp::MsgFrontEndGain(msg) => msg.sender_id(),
2965 Sbp::MsgCwResults(msg) => msg.sender_id(),
2966 Sbp::MsgCwStart(msg) => msg.sender_id(),
2967 Sbp::MsgNapDeviceDnaResp(msg) => msg.sender_id(),
2968 Sbp::MsgNapDeviceDnaReq(msg) => msg.sender_id(),
2969 Sbp::MsgFlashDone(msg) => msg.sender_id(),
2970 Sbp::MsgFlashReadResp(msg) => msg.sender_id(),
2971 Sbp::MsgFlashErase(msg) => msg.sender_id(),
2972 Sbp::MsgStmFlashLockSector(msg) => msg.sender_id(),
2973 Sbp::MsgStmFlashUnlockSector(msg) => msg.sender_id(),
2974 Sbp::MsgStmUniqueIdResp(msg) => msg.sender_id(),
2975 Sbp::MsgFlashProgram(msg) => msg.sender_id(),
2976 Sbp::MsgFlashReadReq(msg) => msg.sender_id(),
2977 Sbp::MsgStmUniqueIdReq(msg) => msg.sender_id(),
2978 Sbp::MsgM25FlashWriteStatus(msg) => msg.sender_id(),
2979 Sbp::MsgGpsTimeDepA(msg) => msg.sender_id(),
2980 Sbp::MsgExtEvent(msg) => msg.sender_id(),
2981 Sbp::MsgGpsTime(msg) => msg.sender_id(),
2982 Sbp::MsgUtcTime(msg) => msg.sender_id(),
2983 Sbp::MsgGpsTimeGnss(msg) => msg.sender_id(),
2984 Sbp::MsgUtcTimeGnss(msg) => msg.sender_id(),
2985 Sbp::MsgTelSv(msg) => msg.sender_id(),
2986 Sbp::MsgSettingsRegisterResp(msg) => msg.sender_id(),
2987 Sbp::MsgPosEcefDepA(msg) => msg.sender_id(),
2988 Sbp::MsgPosLlhDepA(msg) => msg.sender_id(),
2989 Sbp::MsgBaselineEcefDepA(msg) => msg.sender_id(),
2990 Sbp::MsgBaselineNedDepA(msg) => msg.sender_id(),
2991 Sbp::MsgVelEcefDepA(msg) => msg.sender_id(),
2992 Sbp::MsgVelNedDepA(msg) => msg.sender_id(),
2993 Sbp::MsgDopsDepA(msg) => msg.sender_id(),
2994 Sbp::MsgBaselineHeadingDepA(msg) => msg.sender_id(),
2995 Sbp::MsgDops(msg) => msg.sender_id(),
2996 Sbp::MsgPosEcef(msg) => msg.sender_id(),
2997 Sbp::MsgPosLlh(msg) => msg.sender_id(),
2998 Sbp::MsgBaselineEcef(msg) => msg.sender_id(),
2999 Sbp::MsgBaselineNed(msg) => msg.sender_id(),
3000 Sbp::MsgVelEcef(msg) => msg.sender_id(),
3001 Sbp::MsgVelNed(msg) => msg.sender_id(),
3002 Sbp::MsgBaselineHeading(msg) => msg.sender_id(),
3003 Sbp::MsgAgeCorrections(msg) => msg.sender_id(),
3004 Sbp::MsgPosLlhCov(msg) => msg.sender_id(),
3005 Sbp::MsgVelNedCov(msg) => msg.sender_id(),
3006 Sbp::MsgVelBody(msg) => msg.sender_id(),
3007 Sbp::MsgPosEcefCov(msg) => msg.sender_id(),
3008 Sbp::MsgVelEcefCov(msg) => msg.sender_id(),
3009 Sbp::MsgProtectionLevelDepA(msg) => msg.sender_id(),
3010 Sbp::MsgProtectionLevel(msg) => msg.sender_id(),
3011 Sbp::MsgPosLlhAcc(msg) => msg.sender_id(),
3012 Sbp::MsgVelCog(msg) => msg.sender_id(),
3013 Sbp::MsgOrientQuat(msg) => msg.sender_id(),
3014 Sbp::MsgOrientEuler(msg) => msg.sender_id(),
3015 Sbp::MsgAngularRate(msg) => msg.sender_id(),
3016 Sbp::MsgPosEcefGnss(msg) => msg.sender_id(),
3017 Sbp::MsgPosLlhGnss(msg) => msg.sender_id(),
3018 Sbp::MsgVelEcefGnss(msg) => msg.sender_id(),
3019 Sbp::MsgVelNedGnss(msg) => msg.sender_id(),
3020 Sbp::MsgPosLlhCovGnss(msg) => msg.sender_id(),
3021 Sbp::MsgVelNedCovGnss(msg) => msg.sender_id(),
3022 Sbp::MsgPosEcefCovGnss(msg) => msg.sender_id(),
3023 Sbp::MsgVelEcefCovGnss(msg) => msg.sender_id(),
3024 Sbp::MsgUtcLeapSecond(msg) => msg.sender_id(),
3025 Sbp::MsgReferenceFrameParam(msg) => msg.sender_id(),
3026 Sbp::MsgPoseRelative(msg) => msg.sender_id(),
3027 Sbp::MsgNdbEvent(msg) => msg.sender_id(),
3028 Sbp::MsgLog(msg) => msg.sender_id(),
3029 Sbp::MsgFwd(msg) => msg.sender_id(),
3030 Sbp::MsgSsrOrbitClockDepA(msg) => msg.sender_id(),
3031 Sbp::MsgSsrOrbitClock(msg) => msg.sender_id(),
3032 Sbp::MsgSsrOrbitClockBounds(msg) => msg.sender_id(),
3033 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.sender_id(),
3034 Sbp::MsgSsrCodeBiases(msg) => msg.sender_id(),
3035 Sbp::MsgSsrPhaseBiases(msg) => msg.sender_id(),
3036 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.sender_id(),
3037 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.sender_id(),
3038 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.sender_id(),
3039 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.sender_id(),
3040 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.sender_id(),
3041 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.sender_id(),
3042 Sbp::MsgSsrTileDefinition(msg) => msg.sender_id(),
3043 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.sender_id(),
3044 Sbp::MsgSsrStecCorrectionDep(msg) => msg.sender_id(),
3045 Sbp::MsgSsrGriddedCorrection(msg) => msg.sender_id(),
3046 Sbp::MsgSsrStecCorrection(msg) => msg.sender_id(),
3047 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.sender_id(),
3048 Sbp::MsgSsrSatelliteApcDep(msg) => msg.sender_id(),
3049 Sbp::MsgSsrSatelliteApc(msg) => msg.sender_id(),
3050 Sbp::MsgOsr(msg) => msg.sender_id(),
3051 Sbp::MsgUserData(msg) => msg.sender_id(),
3052 Sbp::MsgImuRaw(msg) => msg.sender_id(),
3053 Sbp::MsgImuAux(msg) => msg.sender_id(),
3054 Sbp::MsgMagRaw(msg) => msg.sender_id(),
3055 Sbp::MsgOdometry(msg) => msg.sender_id(),
3056 Sbp::MsgWheeltick(msg) => msg.sender_id(),
3057 Sbp::MsgImuComp(msg) => msg.sender_id(),
3058 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.sender_id(),
3059 Sbp::MsgSsrFlagHighLevel(msg) => msg.sender_id(),
3060 Sbp::MsgSsrFlagSatellites(msg) => msg.sender_id(),
3061 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.sender_id(),
3062 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.sender_id(),
3063 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.sender_id(),
3064 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.sender_id(),
3065 Sbp::MsgAcknowledge(msg) => msg.sender_id(),
3066 Sbp::MsgEd25519SignatureDepA(msg) => msg.sender_id(),
3067 Sbp::MsgEd25519CertificateDep(msg) => msg.sender_id(),
3068 Sbp::MsgEd25519SignatureDepB(msg) => msg.sender_id(),
3069 Sbp::MsgEcdsaCertificate(msg) => msg.sender_id(),
3070 Sbp::MsgCertificateChainDep(msg) => msg.sender_id(),
3071 Sbp::MsgEcdsaSignatureDepA(msg) => msg.sender_id(),
3072 Sbp::MsgEcdsaSignatureDepB(msg) => msg.sender_id(),
3073 Sbp::MsgEcdsaSignature(msg) => msg.sender_id(),
3074 Sbp::MsgCertificateChain(msg) => msg.sender_id(),
3075 Sbp::MsgAesCmacSignature(msg) => msg.sender_id(),
3076 Sbp::MsgFileioConfigReq(msg) => msg.sender_id(),
3077 Sbp::MsgFileioConfigResp(msg) => msg.sender_id(),
3078 Sbp::MsgSbasRaw(msg) => msg.sender_id(),
3079 Sbp::MsgLinuxCpuStateDepA(msg) => msg.sender_id(),
3080 Sbp::MsgLinuxMemStateDepA(msg) => msg.sender_id(),
3081 Sbp::MsgLinuxSysStateDepA(msg) => msg.sender_id(),
3082 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.sender_id(),
3083 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.sender_id(),
3084 Sbp::MsgLinuxSocketUsage(msg) => msg.sender_id(),
3085 Sbp::MsgLinuxProcessFdCount(msg) => msg.sender_id(),
3086 Sbp::MsgLinuxProcessFdSummary(msg) => msg.sender_id(),
3087 Sbp::MsgLinuxCpuState(msg) => msg.sender_id(),
3088 Sbp::MsgLinuxMemState(msg) => msg.sender_id(),
3089 Sbp::MsgLinuxSysState(msg) => msg.sender_id(),
3090 Sbp::MsgMeasurementPoint(msg) => msg.sender_id(),
3091 Sbp::MsgProfilingSystemInfo(msg) => msg.sender_id(),
3092 Sbp::MsgProfilingThreadInfo(msg) => msg.sender_id(),
3093 Sbp::MsgProfilingResourceCounter(msg) => msg.sender_id(),
3094 Sbp::MsgStartup(msg) => msg.sender_id(),
3095 Sbp::MsgDgnssStatus(msg) => msg.sender_id(),
3096 Sbp::MsgInsStatus(msg) => msg.sender_id(),
3097 Sbp::MsgCsacTelemetry(msg) => msg.sender_id(),
3098 Sbp::MsgCsacTelemetryLabels(msg) => msg.sender_id(),
3099 Sbp::MsgInsUpdates(msg) => msg.sender_id(),
3100 Sbp::MsgGnssTimeOffset(msg) => msg.sender_id(),
3101 Sbp::MsgPpsTime(msg) => msg.sender_id(),
3102 Sbp::MsgSensorAidEvent(msg) => msg.sender_id(),
3103 Sbp::MsgGroupMeta(msg) => msg.sender_id(),
3104 Sbp::MsgSolnMeta(msg) => msg.sender_id(),
3105 Sbp::MsgSolnMetaDepA(msg) => msg.sender_id(),
3106 Sbp::MsgStatusJournal(msg) => msg.sender_id(),
3107 Sbp::MsgStatusReport(msg) => msg.sender_id(),
3108 Sbp::MsgHeartbeat(msg) => msg.sender_id(),
3109 Sbp::Unknown(msg) => msg.sender_id(),
3110 Sbp::Invalid(msg) => msg.sender_id(),
3111 }
3112 }
3113
3114 fn set_sender_id(&mut self, new_id: u16) {
3115 match self {
3116 Sbp::MsgPrintDep(msg) => msg.set_sender_id(new_id),
3117 Sbp::MsgTrackingStateDetailedDep(msg) => msg.set_sender_id(new_id),
3118 Sbp::MsgTrackingStateDepB(msg) => msg.set_sender_id(new_id),
3119 Sbp::MsgAcqResultDepB(msg) => msg.set_sender_id(new_id),
3120 Sbp::MsgAcqResultDepA(msg) => msg.set_sender_id(new_id),
3121 Sbp::MsgTrackingStateDepA(msg) => msg.set_sender_id(new_id),
3122 Sbp::MsgThreadState(msg) => msg.set_sender_id(new_id),
3123 Sbp::MsgUartStateDepa(msg) => msg.set_sender_id(new_id),
3124 Sbp::MsgIarState(msg) => msg.set_sender_id(new_id),
3125 Sbp::MsgEphemerisDepA(msg) => msg.set_sender_id(new_id),
3126 Sbp::MsgMaskSatelliteDep(msg) => msg.set_sender_id(new_id),
3127 Sbp::MsgTrackingIqDepA(msg) => msg.set_sender_id(new_id),
3128 Sbp::MsgUartState(msg) => msg.set_sender_id(new_id),
3129 Sbp::MsgAcqSvProfileDep(msg) => msg.set_sender_id(new_id),
3130 Sbp::MsgAcqResultDepC(msg) => msg.set_sender_id(new_id),
3131 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.set_sender_id(new_id),
3132 Sbp::MsgResetFilters(msg) => msg.set_sender_id(new_id),
3133 Sbp::MsgInitBaseDep(msg) => msg.set_sender_id(new_id),
3134 Sbp::MsgMaskSatellite(msg) => msg.set_sender_id(new_id),
3135 Sbp::MsgTrackingIqDepB(msg) => msg.set_sender_id(new_id),
3136 Sbp::MsgTrackingIq(msg) => msg.set_sender_id(new_id),
3137 Sbp::MsgAcqSvProfile(msg) => msg.set_sender_id(new_id),
3138 Sbp::MsgAcqResult(msg) => msg.set_sender_id(new_id),
3139 Sbp::MsgTrackingState(msg) => msg.set_sender_id(new_id),
3140 Sbp::MsgObsDepB(msg) => msg.set_sender_id(new_id),
3141 Sbp::MsgBasePosLlh(msg) => msg.set_sender_id(new_id),
3142 Sbp::MsgObsDepA(msg) => msg.set_sender_id(new_id),
3143 Sbp::MsgEphemerisDepB(msg) => msg.set_sender_id(new_id),
3144 Sbp::MsgEphemerisDepC(msg) => msg.set_sender_id(new_id),
3145 Sbp::MsgBasePosEcef(msg) => msg.set_sender_id(new_id),
3146 Sbp::MsgObsDepC(msg) => msg.set_sender_id(new_id),
3147 Sbp::MsgObs(msg) => msg.set_sender_id(new_id),
3148 Sbp::MsgSpecanDep(msg) => msg.set_sender_id(new_id),
3149 Sbp::MsgSpecan(msg) => msg.set_sender_id(new_id),
3150 Sbp::MsgMeasurementState(msg) => msg.set_sender_id(new_id),
3151 Sbp::MsgSetTime(msg) => msg.set_sender_id(new_id),
3152 Sbp::MsgAlmanac(msg) => msg.set_sender_id(new_id),
3153 Sbp::MsgAlmanacGpsDep(msg) => msg.set_sender_id(new_id),
3154 Sbp::MsgAlmanacGloDep(msg) => msg.set_sender_id(new_id),
3155 Sbp::MsgAlmanacGps(msg) => msg.set_sender_id(new_id),
3156 Sbp::MsgAlmanacGlo(msg) => msg.set_sender_id(new_id),
3157 Sbp::MsgGloBiases(msg) => msg.set_sender_id(new_id),
3158 Sbp::MsgEphemerisDepD(msg) => msg.set_sender_id(new_id),
3159 Sbp::MsgEphemerisGpsDepE(msg) => msg.set_sender_id(new_id),
3160 Sbp::MsgEphemerisSbasDepA(msg) => msg.set_sender_id(new_id),
3161 Sbp::MsgEphemerisGloDepA(msg) => msg.set_sender_id(new_id),
3162 Sbp::MsgEphemerisSbasDepB(msg) => msg.set_sender_id(new_id),
3163 Sbp::MsgEphemerisGloDepB(msg) => msg.set_sender_id(new_id),
3164 Sbp::MsgEphemerisGpsDepF(msg) => msg.set_sender_id(new_id),
3165 Sbp::MsgEphemerisGloDepC(msg) => msg.set_sender_id(new_id),
3166 Sbp::MsgEphemerisGloDepD(msg) => msg.set_sender_id(new_id),
3167 Sbp::MsgEphemerisBds(msg) => msg.set_sender_id(new_id),
3168 Sbp::MsgEphemerisGps(msg) => msg.set_sender_id(new_id),
3169 Sbp::MsgEphemerisGlo(msg) => msg.set_sender_id(new_id),
3170 Sbp::MsgEphemerisSbas(msg) => msg.set_sender_id(new_id),
3171 Sbp::MsgEphemerisGal(msg) => msg.set_sender_id(new_id),
3172 Sbp::MsgEphemerisQzss(msg) => msg.set_sender_id(new_id),
3173 Sbp::MsgIono(msg) => msg.set_sender_id(new_id),
3174 Sbp::MsgSvConfigurationGpsDep(msg) => msg.set_sender_id(new_id),
3175 Sbp::MsgGroupDelayDepA(msg) => msg.set_sender_id(new_id),
3176 Sbp::MsgGroupDelayDepB(msg) => msg.set_sender_id(new_id),
3177 Sbp::MsgGroupDelay(msg) => msg.set_sender_id(new_id),
3178 Sbp::MsgEphemerisGalDepA(msg) => msg.set_sender_id(new_id),
3179 Sbp::MsgGnssCapb(msg) => msg.set_sender_id(new_id),
3180 Sbp::MsgSvAzEl(msg) => msg.set_sender_id(new_id),
3181 Sbp::MsgSettingsWrite(msg) => msg.set_sender_id(new_id),
3182 Sbp::MsgSettingsSave(msg) => msg.set_sender_id(new_id),
3183 Sbp::MsgSettingsReadByIndexReq(msg) => msg.set_sender_id(new_id),
3184 Sbp::MsgFileioReadResp(msg) => msg.set_sender_id(new_id),
3185 Sbp::MsgSettingsReadReq(msg) => msg.set_sender_id(new_id),
3186 Sbp::MsgSettingsReadResp(msg) => msg.set_sender_id(new_id),
3187 Sbp::MsgSettingsReadByIndexDone(msg) => msg.set_sender_id(new_id),
3188 Sbp::MsgSettingsReadByIndexResp(msg) => msg.set_sender_id(new_id),
3189 Sbp::MsgFileioReadReq(msg) => msg.set_sender_id(new_id),
3190 Sbp::MsgFileioReadDirReq(msg) => msg.set_sender_id(new_id),
3191 Sbp::MsgFileioReadDirResp(msg) => msg.set_sender_id(new_id),
3192 Sbp::MsgFileioWriteResp(msg) => msg.set_sender_id(new_id),
3193 Sbp::MsgFileioRemove(msg) => msg.set_sender_id(new_id),
3194 Sbp::MsgFileioWriteReq(msg) => msg.set_sender_id(new_id),
3195 Sbp::MsgSettingsRegister(msg) => msg.set_sender_id(new_id),
3196 Sbp::MsgSettingsWriteResp(msg) => msg.set_sender_id(new_id),
3197 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.set_sender_id(new_id),
3198 Sbp::MsgBootloaderJumpToApp(msg) => msg.set_sender_id(new_id),
3199 Sbp::MsgResetDep(msg) => msg.set_sender_id(new_id),
3200 Sbp::MsgBootloaderHandshakeReq(msg) => msg.set_sender_id(new_id),
3201 Sbp::MsgBootloaderHandshakeResp(msg) => msg.set_sender_id(new_id),
3202 Sbp::MsgDeviceMonitor(msg) => msg.set_sender_id(new_id),
3203 Sbp::MsgReset(msg) => msg.set_sender_id(new_id),
3204 Sbp::MsgCommandReq(msg) => msg.set_sender_id(new_id),
3205 Sbp::MsgCommandResp(msg) => msg.set_sender_id(new_id),
3206 Sbp::MsgNetworkStateReq(msg) => msg.set_sender_id(new_id),
3207 Sbp::MsgNetworkStateResp(msg) => msg.set_sender_id(new_id),
3208 Sbp::MsgCommandOutput(msg) => msg.set_sender_id(new_id),
3209 Sbp::MsgNetworkBandwidthUsage(msg) => msg.set_sender_id(new_id),
3210 Sbp::MsgCellModemStatus(msg) => msg.set_sender_id(new_id),
3211 Sbp::MsgFrontEndGain(msg) => msg.set_sender_id(new_id),
3212 Sbp::MsgCwResults(msg) => msg.set_sender_id(new_id),
3213 Sbp::MsgCwStart(msg) => msg.set_sender_id(new_id),
3214 Sbp::MsgNapDeviceDnaResp(msg) => msg.set_sender_id(new_id),
3215 Sbp::MsgNapDeviceDnaReq(msg) => msg.set_sender_id(new_id),
3216 Sbp::MsgFlashDone(msg) => msg.set_sender_id(new_id),
3217 Sbp::MsgFlashReadResp(msg) => msg.set_sender_id(new_id),
3218 Sbp::MsgFlashErase(msg) => msg.set_sender_id(new_id),
3219 Sbp::MsgStmFlashLockSector(msg) => msg.set_sender_id(new_id),
3220 Sbp::MsgStmFlashUnlockSector(msg) => msg.set_sender_id(new_id),
3221 Sbp::MsgStmUniqueIdResp(msg) => msg.set_sender_id(new_id),
3222 Sbp::MsgFlashProgram(msg) => msg.set_sender_id(new_id),
3223 Sbp::MsgFlashReadReq(msg) => msg.set_sender_id(new_id),
3224 Sbp::MsgStmUniqueIdReq(msg) => msg.set_sender_id(new_id),
3225 Sbp::MsgM25FlashWriteStatus(msg) => msg.set_sender_id(new_id),
3226 Sbp::MsgGpsTimeDepA(msg) => msg.set_sender_id(new_id),
3227 Sbp::MsgExtEvent(msg) => msg.set_sender_id(new_id),
3228 Sbp::MsgGpsTime(msg) => msg.set_sender_id(new_id),
3229 Sbp::MsgUtcTime(msg) => msg.set_sender_id(new_id),
3230 Sbp::MsgGpsTimeGnss(msg) => msg.set_sender_id(new_id),
3231 Sbp::MsgUtcTimeGnss(msg) => msg.set_sender_id(new_id),
3232 Sbp::MsgTelSv(msg) => msg.set_sender_id(new_id),
3233 Sbp::MsgSettingsRegisterResp(msg) => msg.set_sender_id(new_id),
3234 Sbp::MsgPosEcefDepA(msg) => msg.set_sender_id(new_id),
3235 Sbp::MsgPosLlhDepA(msg) => msg.set_sender_id(new_id),
3236 Sbp::MsgBaselineEcefDepA(msg) => msg.set_sender_id(new_id),
3237 Sbp::MsgBaselineNedDepA(msg) => msg.set_sender_id(new_id),
3238 Sbp::MsgVelEcefDepA(msg) => msg.set_sender_id(new_id),
3239 Sbp::MsgVelNedDepA(msg) => msg.set_sender_id(new_id),
3240 Sbp::MsgDopsDepA(msg) => msg.set_sender_id(new_id),
3241 Sbp::MsgBaselineHeadingDepA(msg) => msg.set_sender_id(new_id),
3242 Sbp::MsgDops(msg) => msg.set_sender_id(new_id),
3243 Sbp::MsgPosEcef(msg) => msg.set_sender_id(new_id),
3244 Sbp::MsgPosLlh(msg) => msg.set_sender_id(new_id),
3245 Sbp::MsgBaselineEcef(msg) => msg.set_sender_id(new_id),
3246 Sbp::MsgBaselineNed(msg) => msg.set_sender_id(new_id),
3247 Sbp::MsgVelEcef(msg) => msg.set_sender_id(new_id),
3248 Sbp::MsgVelNed(msg) => msg.set_sender_id(new_id),
3249 Sbp::MsgBaselineHeading(msg) => msg.set_sender_id(new_id),
3250 Sbp::MsgAgeCorrections(msg) => msg.set_sender_id(new_id),
3251 Sbp::MsgPosLlhCov(msg) => msg.set_sender_id(new_id),
3252 Sbp::MsgVelNedCov(msg) => msg.set_sender_id(new_id),
3253 Sbp::MsgVelBody(msg) => msg.set_sender_id(new_id),
3254 Sbp::MsgPosEcefCov(msg) => msg.set_sender_id(new_id),
3255 Sbp::MsgVelEcefCov(msg) => msg.set_sender_id(new_id),
3256 Sbp::MsgProtectionLevelDepA(msg) => msg.set_sender_id(new_id),
3257 Sbp::MsgProtectionLevel(msg) => msg.set_sender_id(new_id),
3258 Sbp::MsgPosLlhAcc(msg) => msg.set_sender_id(new_id),
3259 Sbp::MsgVelCog(msg) => msg.set_sender_id(new_id),
3260 Sbp::MsgOrientQuat(msg) => msg.set_sender_id(new_id),
3261 Sbp::MsgOrientEuler(msg) => msg.set_sender_id(new_id),
3262 Sbp::MsgAngularRate(msg) => msg.set_sender_id(new_id),
3263 Sbp::MsgPosEcefGnss(msg) => msg.set_sender_id(new_id),
3264 Sbp::MsgPosLlhGnss(msg) => msg.set_sender_id(new_id),
3265 Sbp::MsgVelEcefGnss(msg) => msg.set_sender_id(new_id),
3266 Sbp::MsgVelNedGnss(msg) => msg.set_sender_id(new_id),
3267 Sbp::MsgPosLlhCovGnss(msg) => msg.set_sender_id(new_id),
3268 Sbp::MsgVelNedCovGnss(msg) => msg.set_sender_id(new_id),
3269 Sbp::MsgPosEcefCovGnss(msg) => msg.set_sender_id(new_id),
3270 Sbp::MsgVelEcefCovGnss(msg) => msg.set_sender_id(new_id),
3271 Sbp::MsgUtcLeapSecond(msg) => msg.set_sender_id(new_id),
3272 Sbp::MsgReferenceFrameParam(msg) => msg.set_sender_id(new_id),
3273 Sbp::MsgPoseRelative(msg) => msg.set_sender_id(new_id),
3274 Sbp::MsgNdbEvent(msg) => msg.set_sender_id(new_id),
3275 Sbp::MsgLog(msg) => msg.set_sender_id(new_id),
3276 Sbp::MsgFwd(msg) => msg.set_sender_id(new_id),
3277 Sbp::MsgSsrOrbitClockDepA(msg) => msg.set_sender_id(new_id),
3278 Sbp::MsgSsrOrbitClock(msg) => msg.set_sender_id(new_id),
3279 Sbp::MsgSsrOrbitClockBounds(msg) => msg.set_sender_id(new_id),
3280 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.set_sender_id(new_id),
3281 Sbp::MsgSsrCodeBiases(msg) => msg.set_sender_id(new_id),
3282 Sbp::MsgSsrPhaseBiases(msg) => msg.set_sender_id(new_id),
3283 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.set_sender_id(new_id),
3284 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.set_sender_id(new_id),
3285 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.set_sender_id(new_id),
3286 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.set_sender_id(new_id),
3287 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.set_sender_id(new_id),
3288 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.set_sender_id(new_id),
3289 Sbp::MsgSsrTileDefinition(msg) => msg.set_sender_id(new_id),
3290 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.set_sender_id(new_id),
3291 Sbp::MsgSsrStecCorrectionDep(msg) => msg.set_sender_id(new_id),
3292 Sbp::MsgSsrGriddedCorrection(msg) => msg.set_sender_id(new_id),
3293 Sbp::MsgSsrStecCorrection(msg) => msg.set_sender_id(new_id),
3294 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.set_sender_id(new_id),
3295 Sbp::MsgSsrSatelliteApcDep(msg) => msg.set_sender_id(new_id),
3296 Sbp::MsgSsrSatelliteApc(msg) => msg.set_sender_id(new_id),
3297 Sbp::MsgOsr(msg) => msg.set_sender_id(new_id),
3298 Sbp::MsgUserData(msg) => msg.set_sender_id(new_id),
3299 Sbp::MsgImuRaw(msg) => msg.set_sender_id(new_id),
3300 Sbp::MsgImuAux(msg) => msg.set_sender_id(new_id),
3301 Sbp::MsgMagRaw(msg) => msg.set_sender_id(new_id),
3302 Sbp::MsgOdometry(msg) => msg.set_sender_id(new_id),
3303 Sbp::MsgWheeltick(msg) => msg.set_sender_id(new_id),
3304 Sbp::MsgImuComp(msg) => msg.set_sender_id(new_id),
3305 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.set_sender_id(new_id),
3306 Sbp::MsgSsrFlagHighLevel(msg) => msg.set_sender_id(new_id),
3307 Sbp::MsgSsrFlagSatellites(msg) => msg.set_sender_id(new_id),
3308 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.set_sender_id(new_id),
3309 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.set_sender_id(new_id),
3310 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.set_sender_id(new_id),
3311 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.set_sender_id(new_id),
3312 Sbp::MsgAcknowledge(msg) => msg.set_sender_id(new_id),
3313 Sbp::MsgEd25519SignatureDepA(msg) => msg.set_sender_id(new_id),
3314 Sbp::MsgEd25519CertificateDep(msg) => msg.set_sender_id(new_id),
3315 Sbp::MsgEd25519SignatureDepB(msg) => msg.set_sender_id(new_id),
3316 Sbp::MsgEcdsaCertificate(msg) => msg.set_sender_id(new_id),
3317 Sbp::MsgCertificateChainDep(msg) => msg.set_sender_id(new_id),
3318 Sbp::MsgEcdsaSignatureDepA(msg) => msg.set_sender_id(new_id),
3319 Sbp::MsgEcdsaSignatureDepB(msg) => msg.set_sender_id(new_id),
3320 Sbp::MsgEcdsaSignature(msg) => msg.set_sender_id(new_id),
3321 Sbp::MsgCertificateChain(msg) => msg.set_sender_id(new_id),
3322 Sbp::MsgAesCmacSignature(msg) => msg.set_sender_id(new_id),
3323 Sbp::MsgFileioConfigReq(msg) => msg.set_sender_id(new_id),
3324 Sbp::MsgFileioConfigResp(msg) => msg.set_sender_id(new_id),
3325 Sbp::MsgSbasRaw(msg) => msg.set_sender_id(new_id),
3326 Sbp::MsgLinuxCpuStateDepA(msg) => msg.set_sender_id(new_id),
3327 Sbp::MsgLinuxMemStateDepA(msg) => msg.set_sender_id(new_id),
3328 Sbp::MsgLinuxSysStateDepA(msg) => msg.set_sender_id(new_id),
3329 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.set_sender_id(new_id),
3330 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.set_sender_id(new_id),
3331 Sbp::MsgLinuxSocketUsage(msg) => msg.set_sender_id(new_id),
3332 Sbp::MsgLinuxProcessFdCount(msg) => msg.set_sender_id(new_id),
3333 Sbp::MsgLinuxProcessFdSummary(msg) => msg.set_sender_id(new_id),
3334 Sbp::MsgLinuxCpuState(msg) => msg.set_sender_id(new_id),
3335 Sbp::MsgLinuxMemState(msg) => msg.set_sender_id(new_id),
3336 Sbp::MsgLinuxSysState(msg) => msg.set_sender_id(new_id),
3337 Sbp::MsgMeasurementPoint(msg) => msg.set_sender_id(new_id),
3338 Sbp::MsgProfilingSystemInfo(msg) => msg.set_sender_id(new_id),
3339 Sbp::MsgProfilingThreadInfo(msg) => msg.set_sender_id(new_id),
3340 Sbp::MsgProfilingResourceCounter(msg) => msg.set_sender_id(new_id),
3341 Sbp::MsgStartup(msg) => msg.set_sender_id(new_id),
3342 Sbp::MsgDgnssStatus(msg) => msg.set_sender_id(new_id),
3343 Sbp::MsgInsStatus(msg) => msg.set_sender_id(new_id),
3344 Sbp::MsgCsacTelemetry(msg) => msg.set_sender_id(new_id),
3345 Sbp::MsgCsacTelemetryLabels(msg) => msg.set_sender_id(new_id),
3346 Sbp::MsgInsUpdates(msg) => msg.set_sender_id(new_id),
3347 Sbp::MsgGnssTimeOffset(msg) => msg.set_sender_id(new_id),
3348 Sbp::MsgPpsTime(msg) => msg.set_sender_id(new_id),
3349 Sbp::MsgSensorAidEvent(msg) => msg.set_sender_id(new_id),
3350 Sbp::MsgGroupMeta(msg) => msg.set_sender_id(new_id),
3351 Sbp::MsgSolnMeta(msg) => msg.set_sender_id(new_id),
3352 Sbp::MsgSolnMetaDepA(msg) => msg.set_sender_id(new_id),
3353 Sbp::MsgStatusJournal(msg) => msg.set_sender_id(new_id),
3354 Sbp::MsgStatusReport(msg) => msg.set_sender_id(new_id),
3355 Sbp::MsgHeartbeat(msg) => msg.set_sender_id(new_id),
3356 Sbp::Unknown(msg) => msg.set_sender_id(new_id),
3357 Sbp::Invalid(msg) => msg.set_sender_id(new_id),
3358 }
3359 }
3360
3361 fn encoded_len(&self) -> usize {
3362 match self {
3363 Sbp::MsgPrintDep(msg) => msg.encoded_len(),
3364 Sbp::MsgTrackingStateDetailedDep(msg) => msg.encoded_len(),
3365 Sbp::MsgTrackingStateDepB(msg) => msg.encoded_len(),
3366 Sbp::MsgAcqResultDepB(msg) => msg.encoded_len(),
3367 Sbp::MsgAcqResultDepA(msg) => msg.encoded_len(),
3368 Sbp::MsgTrackingStateDepA(msg) => msg.encoded_len(),
3369 Sbp::MsgThreadState(msg) => msg.encoded_len(),
3370 Sbp::MsgUartStateDepa(msg) => msg.encoded_len(),
3371 Sbp::MsgIarState(msg) => msg.encoded_len(),
3372 Sbp::MsgEphemerisDepA(msg) => msg.encoded_len(),
3373 Sbp::MsgMaskSatelliteDep(msg) => msg.encoded_len(),
3374 Sbp::MsgTrackingIqDepA(msg) => msg.encoded_len(),
3375 Sbp::MsgUartState(msg) => msg.encoded_len(),
3376 Sbp::MsgAcqSvProfileDep(msg) => msg.encoded_len(),
3377 Sbp::MsgAcqResultDepC(msg) => msg.encoded_len(),
3378 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.encoded_len(),
3379 Sbp::MsgResetFilters(msg) => msg.encoded_len(),
3380 Sbp::MsgInitBaseDep(msg) => msg.encoded_len(),
3381 Sbp::MsgMaskSatellite(msg) => msg.encoded_len(),
3382 Sbp::MsgTrackingIqDepB(msg) => msg.encoded_len(),
3383 Sbp::MsgTrackingIq(msg) => msg.encoded_len(),
3384 Sbp::MsgAcqSvProfile(msg) => msg.encoded_len(),
3385 Sbp::MsgAcqResult(msg) => msg.encoded_len(),
3386 Sbp::MsgTrackingState(msg) => msg.encoded_len(),
3387 Sbp::MsgObsDepB(msg) => msg.encoded_len(),
3388 Sbp::MsgBasePosLlh(msg) => msg.encoded_len(),
3389 Sbp::MsgObsDepA(msg) => msg.encoded_len(),
3390 Sbp::MsgEphemerisDepB(msg) => msg.encoded_len(),
3391 Sbp::MsgEphemerisDepC(msg) => msg.encoded_len(),
3392 Sbp::MsgBasePosEcef(msg) => msg.encoded_len(),
3393 Sbp::MsgObsDepC(msg) => msg.encoded_len(),
3394 Sbp::MsgObs(msg) => msg.encoded_len(),
3395 Sbp::MsgSpecanDep(msg) => msg.encoded_len(),
3396 Sbp::MsgSpecan(msg) => msg.encoded_len(),
3397 Sbp::MsgMeasurementState(msg) => msg.encoded_len(),
3398 Sbp::MsgSetTime(msg) => msg.encoded_len(),
3399 Sbp::MsgAlmanac(msg) => msg.encoded_len(),
3400 Sbp::MsgAlmanacGpsDep(msg) => msg.encoded_len(),
3401 Sbp::MsgAlmanacGloDep(msg) => msg.encoded_len(),
3402 Sbp::MsgAlmanacGps(msg) => msg.encoded_len(),
3403 Sbp::MsgAlmanacGlo(msg) => msg.encoded_len(),
3404 Sbp::MsgGloBiases(msg) => msg.encoded_len(),
3405 Sbp::MsgEphemerisDepD(msg) => msg.encoded_len(),
3406 Sbp::MsgEphemerisGpsDepE(msg) => msg.encoded_len(),
3407 Sbp::MsgEphemerisSbasDepA(msg) => msg.encoded_len(),
3408 Sbp::MsgEphemerisGloDepA(msg) => msg.encoded_len(),
3409 Sbp::MsgEphemerisSbasDepB(msg) => msg.encoded_len(),
3410 Sbp::MsgEphemerisGloDepB(msg) => msg.encoded_len(),
3411 Sbp::MsgEphemerisGpsDepF(msg) => msg.encoded_len(),
3412 Sbp::MsgEphemerisGloDepC(msg) => msg.encoded_len(),
3413 Sbp::MsgEphemerisGloDepD(msg) => msg.encoded_len(),
3414 Sbp::MsgEphemerisBds(msg) => msg.encoded_len(),
3415 Sbp::MsgEphemerisGps(msg) => msg.encoded_len(),
3416 Sbp::MsgEphemerisGlo(msg) => msg.encoded_len(),
3417 Sbp::MsgEphemerisSbas(msg) => msg.encoded_len(),
3418 Sbp::MsgEphemerisGal(msg) => msg.encoded_len(),
3419 Sbp::MsgEphemerisQzss(msg) => msg.encoded_len(),
3420 Sbp::MsgIono(msg) => msg.encoded_len(),
3421 Sbp::MsgSvConfigurationGpsDep(msg) => msg.encoded_len(),
3422 Sbp::MsgGroupDelayDepA(msg) => msg.encoded_len(),
3423 Sbp::MsgGroupDelayDepB(msg) => msg.encoded_len(),
3424 Sbp::MsgGroupDelay(msg) => msg.encoded_len(),
3425 Sbp::MsgEphemerisGalDepA(msg) => msg.encoded_len(),
3426 Sbp::MsgGnssCapb(msg) => msg.encoded_len(),
3427 Sbp::MsgSvAzEl(msg) => msg.encoded_len(),
3428 Sbp::MsgSettingsWrite(msg) => msg.encoded_len(),
3429 Sbp::MsgSettingsSave(msg) => msg.encoded_len(),
3430 Sbp::MsgSettingsReadByIndexReq(msg) => msg.encoded_len(),
3431 Sbp::MsgFileioReadResp(msg) => msg.encoded_len(),
3432 Sbp::MsgSettingsReadReq(msg) => msg.encoded_len(),
3433 Sbp::MsgSettingsReadResp(msg) => msg.encoded_len(),
3434 Sbp::MsgSettingsReadByIndexDone(msg) => msg.encoded_len(),
3435 Sbp::MsgSettingsReadByIndexResp(msg) => msg.encoded_len(),
3436 Sbp::MsgFileioReadReq(msg) => msg.encoded_len(),
3437 Sbp::MsgFileioReadDirReq(msg) => msg.encoded_len(),
3438 Sbp::MsgFileioReadDirResp(msg) => msg.encoded_len(),
3439 Sbp::MsgFileioWriteResp(msg) => msg.encoded_len(),
3440 Sbp::MsgFileioRemove(msg) => msg.encoded_len(),
3441 Sbp::MsgFileioWriteReq(msg) => msg.encoded_len(),
3442 Sbp::MsgSettingsRegister(msg) => msg.encoded_len(),
3443 Sbp::MsgSettingsWriteResp(msg) => msg.encoded_len(),
3444 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.encoded_len(),
3445 Sbp::MsgBootloaderJumpToApp(msg) => msg.encoded_len(),
3446 Sbp::MsgResetDep(msg) => msg.encoded_len(),
3447 Sbp::MsgBootloaderHandshakeReq(msg) => msg.encoded_len(),
3448 Sbp::MsgBootloaderHandshakeResp(msg) => msg.encoded_len(),
3449 Sbp::MsgDeviceMonitor(msg) => msg.encoded_len(),
3450 Sbp::MsgReset(msg) => msg.encoded_len(),
3451 Sbp::MsgCommandReq(msg) => msg.encoded_len(),
3452 Sbp::MsgCommandResp(msg) => msg.encoded_len(),
3453 Sbp::MsgNetworkStateReq(msg) => msg.encoded_len(),
3454 Sbp::MsgNetworkStateResp(msg) => msg.encoded_len(),
3455 Sbp::MsgCommandOutput(msg) => msg.encoded_len(),
3456 Sbp::MsgNetworkBandwidthUsage(msg) => msg.encoded_len(),
3457 Sbp::MsgCellModemStatus(msg) => msg.encoded_len(),
3458 Sbp::MsgFrontEndGain(msg) => msg.encoded_len(),
3459 Sbp::MsgCwResults(msg) => msg.encoded_len(),
3460 Sbp::MsgCwStart(msg) => msg.encoded_len(),
3461 Sbp::MsgNapDeviceDnaResp(msg) => msg.encoded_len(),
3462 Sbp::MsgNapDeviceDnaReq(msg) => msg.encoded_len(),
3463 Sbp::MsgFlashDone(msg) => msg.encoded_len(),
3464 Sbp::MsgFlashReadResp(msg) => msg.encoded_len(),
3465 Sbp::MsgFlashErase(msg) => msg.encoded_len(),
3466 Sbp::MsgStmFlashLockSector(msg) => msg.encoded_len(),
3467 Sbp::MsgStmFlashUnlockSector(msg) => msg.encoded_len(),
3468 Sbp::MsgStmUniqueIdResp(msg) => msg.encoded_len(),
3469 Sbp::MsgFlashProgram(msg) => msg.encoded_len(),
3470 Sbp::MsgFlashReadReq(msg) => msg.encoded_len(),
3471 Sbp::MsgStmUniqueIdReq(msg) => msg.encoded_len(),
3472 Sbp::MsgM25FlashWriteStatus(msg) => msg.encoded_len(),
3473 Sbp::MsgGpsTimeDepA(msg) => msg.encoded_len(),
3474 Sbp::MsgExtEvent(msg) => msg.encoded_len(),
3475 Sbp::MsgGpsTime(msg) => msg.encoded_len(),
3476 Sbp::MsgUtcTime(msg) => msg.encoded_len(),
3477 Sbp::MsgGpsTimeGnss(msg) => msg.encoded_len(),
3478 Sbp::MsgUtcTimeGnss(msg) => msg.encoded_len(),
3479 Sbp::MsgTelSv(msg) => msg.encoded_len(),
3480 Sbp::MsgSettingsRegisterResp(msg) => msg.encoded_len(),
3481 Sbp::MsgPosEcefDepA(msg) => msg.encoded_len(),
3482 Sbp::MsgPosLlhDepA(msg) => msg.encoded_len(),
3483 Sbp::MsgBaselineEcefDepA(msg) => msg.encoded_len(),
3484 Sbp::MsgBaselineNedDepA(msg) => msg.encoded_len(),
3485 Sbp::MsgVelEcefDepA(msg) => msg.encoded_len(),
3486 Sbp::MsgVelNedDepA(msg) => msg.encoded_len(),
3487 Sbp::MsgDopsDepA(msg) => msg.encoded_len(),
3488 Sbp::MsgBaselineHeadingDepA(msg) => msg.encoded_len(),
3489 Sbp::MsgDops(msg) => msg.encoded_len(),
3490 Sbp::MsgPosEcef(msg) => msg.encoded_len(),
3491 Sbp::MsgPosLlh(msg) => msg.encoded_len(),
3492 Sbp::MsgBaselineEcef(msg) => msg.encoded_len(),
3493 Sbp::MsgBaselineNed(msg) => msg.encoded_len(),
3494 Sbp::MsgVelEcef(msg) => msg.encoded_len(),
3495 Sbp::MsgVelNed(msg) => msg.encoded_len(),
3496 Sbp::MsgBaselineHeading(msg) => msg.encoded_len(),
3497 Sbp::MsgAgeCorrections(msg) => msg.encoded_len(),
3498 Sbp::MsgPosLlhCov(msg) => msg.encoded_len(),
3499 Sbp::MsgVelNedCov(msg) => msg.encoded_len(),
3500 Sbp::MsgVelBody(msg) => msg.encoded_len(),
3501 Sbp::MsgPosEcefCov(msg) => msg.encoded_len(),
3502 Sbp::MsgVelEcefCov(msg) => msg.encoded_len(),
3503 Sbp::MsgProtectionLevelDepA(msg) => msg.encoded_len(),
3504 Sbp::MsgProtectionLevel(msg) => msg.encoded_len(),
3505 Sbp::MsgPosLlhAcc(msg) => msg.encoded_len(),
3506 Sbp::MsgVelCog(msg) => msg.encoded_len(),
3507 Sbp::MsgOrientQuat(msg) => msg.encoded_len(),
3508 Sbp::MsgOrientEuler(msg) => msg.encoded_len(),
3509 Sbp::MsgAngularRate(msg) => msg.encoded_len(),
3510 Sbp::MsgPosEcefGnss(msg) => msg.encoded_len(),
3511 Sbp::MsgPosLlhGnss(msg) => msg.encoded_len(),
3512 Sbp::MsgVelEcefGnss(msg) => msg.encoded_len(),
3513 Sbp::MsgVelNedGnss(msg) => msg.encoded_len(),
3514 Sbp::MsgPosLlhCovGnss(msg) => msg.encoded_len(),
3515 Sbp::MsgVelNedCovGnss(msg) => msg.encoded_len(),
3516 Sbp::MsgPosEcefCovGnss(msg) => msg.encoded_len(),
3517 Sbp::MsgVelEcefCovGnss(msg) => msg.encoded_len(),
3518 Sbp::MsgUtcLeapSecond(msg) => msg.encoded_len(),
3519 Sbp::MsgReferenceFrameParam(msg) => msg.encoded_len(),
3520 Sbp::MsgPoseRelative(msg) => msg.encoded_len(),
3521 Sbp::MsgNdbEvent(msg) => msg.encoded_len(),
3522 Sbp::MsgLog(msg) => msg.encoded_len(),
3523 Sbp::MsgFwd(msg) => msg.encoded_len(),
3524 Sbp::MsgSsrOrbitClockDepA(msg) => msg.encoded_len(),
3525 Sbp::MsgSsrOrbitClock(msg) => msg.encoded_len(),
3526 Sbp::MsgSsrOrbitClockBounds(msg) => msg.encoded_len(),
3527 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.encoded_len(),
3528 Sbp::MsgSsrCodeBiases(msg) => msg.encoded_len(),
3529 Sbp::MsgSsrPhaseBiases(msg) => msg.encoded_len(),
3530 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.encoded_len(),
3531 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.encoded_len(),
3532 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.encoded_len(),
3533 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.encoded_len(),
3534 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.encoded_len(),
3535 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.encoded_len(),
3536 Sbp::MsgSsrTileDefinition(msg) => msg.encoded_len(),
3537 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.encoded_len(),
3538 Sbp::MsgSsrStecCorrectionDep(msg) => msg.encoded_len(),
3539 Sbp::MsgSsrGriddedCorrection(msg) => msg.encoded_len(),
3540 Sbp::MsgSsrStecCorrection(msg) => msg.encoded_len(),
3541 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.encoded_len(),
3542 Sbp::MsgSsrSatelliteApcDep(msg) => msg.encoded_len(),
3543 Sbp::MsgSsrSatelliteApc(msg) => msg.encoded_len(),
3544 Sbp::MsgOsr(msg) => msg.encoded_len(),
3545 Sbp::MsgUserData(msg) => msg.encoded_len(),
3546 Sbp::MsgImuRaw(msg) => msg.encoded_len(),
3547 Sbp::MsgImuAux(msg) => msg.encoded_len(),
3548 Sbp::MsgMagRaw(msg) => msg.encoded_len(),
3549 Sbp::MsgOdometry(msg) => msg.encoded_len(),
3550 Sbp::MsgWheeltick(msg) => msg.encoded_len(),
3551 Sbp::MsgImuComp(msg) => msg.encoded_len(),
3552 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.encoded_len(),
3553 Sbp::MsgSsrFlagHighLevel(msg) => msg.encoded_len(),
3554 Sbp::MsgSsrFlagSatellites(msg) => msg.encoded_len(),
3555 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.encoded_len(),
3556 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.encoded_len(),
3557 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.encoded_len(),
3558 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.encoded_len(),
3559 Sbp::MsgAcknowledge(msg) => msg.encoded_len(),
3560 Sbp::MsgEd25519SignatureDepA(msg) => msg.encoded_len(),
3561 Sbp::MsgEd25519CertificateDep(msg) => msg.encoded_len(),
3562 Sbp::MsgEd25519SignatureDepB(msg) => msg.encoded_len(),
3563 Sbp::MsgEcdsaCertificate(msg) => msg.encoded_len(),
3564 Sbp::MsgCertificateChainDep(msg) => msg.encoded_len(),
3565 Sbp::MsgEcdsaSignatureDepA(msg) => msg.encoded_len(),
3566 Sbp::MsgEcdsaSignatureDepB(msg) => msg.encoded_len(),
3567 Sbp::MsgEcdsaSignature(msg) => msg.encoded_len(),
3568 Sbp::MsgCertificateChain(msg) => msg.encoded_len(),
3569 Sbp::MsgAesCmacSignature(msg) => msg.encoded_len(),
3570 Sbp::MsgFileioConfigReq(msg) => msg.encoded_len(),
3571 Sbp::MsgFileioConfigResp(msg) => msg.encoded_len(),
3572 Sbp::MsgSbasRaw(msg) => msg.encoded_len(),
3573 Sbp::MsgLinuxCpuStateDepA(msg) => msg.encoded_len(),
3574 Sbp::MsgLinuxMemStateDepA(msg) => msg.encoded_len(),
3575 Sbp::MsgLinuxSysStateDepA(msg) => msg.encoded_len(),
3576 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.encoded_len(),
3577 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.encoded_len(),
3578 Sbp::MsgLinuxSocketUsage(msg) => msg.encoded_len(),
3579 Sbp::MsgLinuxProcessFdCount(msg) => msg.encoded_len(),
3580 Sbp::MsgLinuxProcessFdSummary(msg) => msg.encoded_len(),
3581 Sbp::MsgLinuxCpuState(msg) => msg.encoded_len(),
3582 Sbp::MsgLinuxMemState(msg) => msg.encoded_len(),
3583 Sbp::MsgLinuxSysState(msg) => msg.encoded_len(),
3584 Sbp::MsgMeasurementPoint(msg) => msg.encoded_len(),
3585 Sbp::MsgProfilingSystemInfo(msg) => msg.encoded_len(),
3586 Sbp::MsgProfilingThreadInfo(msg) => msg.encoded_len(),
3587 Sbp::MsgProfilingResourceCounter(msg) => msg.encoded_len(),
3588 Sbp::MsgStartup(msg) => msg.encoded_len(),
3589 Sbp::MsgDgnssStatus(msg) => msg.encoded_len(),
3590 Sbp::MsgInsStatus(msg) => msg.encoded_len(),
3591 Sbp::MsgCsacTelemetry(msg) => msg.encoded_len(),
3592 Sbp::MsgCsacTelemetryLabels(msg) => msg.encoded_len(),
3593 Sbp::MsgInsUpdates(msg) => msg.encoded_len(),
3594 Sbp::MsgGnssTimeOffset(msg) => msg.encoded_len(),
3595 Sbp::MsgPpsTime(msg) => msg.encoded_len(),
3596 Sbp::MsgSensorAidEvent(msg) => msg.encoded_len(),
3597 Sbp::MsgGroupMeta(msg) => msg.encoded_len(),
3598 Sbp::MsgSolnMeta(msg) => msg.encoded_len(),
3599 Sbp::MsgSolnMetaDepA(msg) => msg.encoded_len(),
3600 Sbp::MsgStatusJournal(msg) => msg.encoded_len(),
3601 Sbp::MsgStatusReport(msg) => msg.encoded_len(),
3602 Sbp::MsgHeartbeat(msg) => msg.encoded_len(),
3603 Sbp::Unknown(msg) => msg.encoded_len(),
3604 Sbp::Invalid(msg) => msg.encoded_len(),
3605 }
3606 }
3607
3608 #[cfg(feature = "swiftnav")]
3609 fn gps_time(
3610 &self,
3611 ) -> Option<std::result::Result<crate::time::MessageTime, crate::time::GpsTimeError>> {
3612 match self {
3613 Sbp::MsgPrintDep(msg) => msg.gps_time(),
3614 Sbp::MsgTrackingStateDetailedDep(msg) => msg.gps_time(),
3615 Sbp::MsgTrackingStateDepB(msg) => msg.gps_time(),
3616 Sbp::MsgAcqResultDepB(msg) => msg.gps_time(),
3617 Sbp::MsgAcqResultDepA(msg) => msg.gps_time(),
3618 Sbp::MsgTrackingStateDepA(msg) => msg.gps_time(),
3619 Sbp::MsgThreadState(msg) => msg.gps_time(),
3620 Sbp::MsgUartStateDepa(msg) => msg.gps_time(),
3621 Sbp::MsgIarState(msg) => msg.gps_time(),
3622 Sbp::MsgEphemerisDepA(msg) => msg.gps_time(),
3623 Sbp::MsgMaskSatelliteDep(msg) => msg.gps_time(),
3624 Sbp::MsgTrackingIqDepA(msg) => msg.gps_time(),
3625 Sbp::MsgUartState(msg) => msg.gps_time(),
3626 Sbp::MsgAcqSvProfileDep(msg) => msg.gps_time(),
3627 Sbp::MsgAcqResultDepC(msg) => msg.gps_time(),
3628 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.gps_time(),
3629 Sbp::MsgResetFilters(msg) => msg.gps_time(),
3630 Sbp::MsgInitBaseDep(msg) => msg.gps_time(),
3631 Sbp::MsgMaskSatellite(msg) => msg.gps_time(),
3632 Sbp::MsgTrackingIqDepB(msg) => msg.gps_time(),
3633 Sbp::MsgTrackingIq(msg) => msg.gps_time(),
3634 Sbp::MsgAcqSvProfile(msg) => msg.gps_time(),
3635 Sbp::MsgAcqResult(msg) => msg.gps_time(),
3636 Sbp::MsgTrackingState(msg) => msg.gps_time(),
3637 Sbp::MsgObsDepB(msg) => msg.gps_time(),
3638 Sbp::MsgBasePosLlh(msg) => msg.gps_time(),
3639 Sbp::MsgObsDepA(msg) => msg.gps_time(),
3640 Sbp::MsgEphemerisDepB(msg) => msg.gps_time(),
3641 Sbp::MsgEphemerisDepC(msg) => msg.gps_time(),
3642 Sbp::MsgBasePosEcef(msg) => msg.gps_time(),
3643 Sbp::MsgObsDepC(msg) => msg.gps_time(),
3644 Sbp::MsgObs(msg) => msg.gps_time(),
3645 Sbp::MsgSpecanDep(msg) => msg.gps_time(),
3646 Sbp::MsgSpecan(msg) => msg.gps_time(),
3647 Sbp::MsgMeasurementState(msg) => msg.gps_time(),
3648 Sbp::MsgSetTime(msg) => msg.gps_time(),
3649 Sbp::MsgAlmanac(msg) => msg.gps_time(),
3650 Sbp::MsgAlmanacGpsDep(msg) => msg.gps_time(),
3651 Sbp::MsgAlmanacGloDep(msg) => msg.gps_time(),
3652 Sbp::MsgAlmanacGps(msg) => msg.gps_time(),
3653 Sbp::MsgAlmanacGlo(msg) => msg.gps_time(),
3654 Sbp::MsgGloBiases(msg) => msg.gps_time(),
3655 Sbp::MsgEphemerisDepD(msg) => msg.gps_time(),
3656 Sbp::MsgEphemerisGpsDepE(msg) => msg.gps_time(),
3657 Sbp::MsgEphemerisSbasDepA(msg) => msg.gps_time(),
3658 Sbp::MsgEphemerisGloDepA(msg) => msg.gps_time(),
3659 Sbp::MsgEphemerisSbasDepB(msg) => msg.gps_time(),
3660 Sbp::MsgEphemerisGloDepB(msg) => msg.gps_time(),
3661 Sbp::MsgEphemerisGpsDepF(msg) => msg.gps_time(),
3662 Sbp::MsgEphemerisGloDepC(msg) => msg.gps_time(),
3663 Sbp::MsgEphemerisGloDepD(msg) => msg.gps_time(),
3664 Sbp::MsgEphemerisBds(msg) => msg.gps_time(),
3665 Sbp::MsgEphemerisGps(msg) => msg.gps_time(),
3666 Sbp::MsgEphemerisGlo(msg) => msg.gps_time(),
3667 Sbp::MsgEphemerisSbas(msg) => msg.gps_time(),
3668 Sbp::MsgEphemerisGal(msg) => msg.gps_time(),
3669 Sbp::MsgEphemerisQzss(msg) => msg.gps_time(),
3670 Sbp::MsgIono(msg) => msg.gps_time(),
3671 Sbp::MsgSvConfigurationGpsDep(msg) => msg.gps_time(),
3672 Sbp::MsgGroupDelayDepA(msg) => msg.gps_time(),
3673 Sbp::MsgGroupDelayDepB(msg) => msg.gps_time(),
3674 Sbp::MsgGroupDelay(msg) => msg.gps_time(),
3675 Sbp::MsgEphemerisGalDepA(msg) => msg.gps_time(),
3676 Sbp::MsgGnssCapb(msg) => msg.gps_time(),
3677 Sbp::MsgSvAzEl(msg) => msg.gps_time(),
3678 Sbp::MsgSettingsWrite(msg) => msg.gps_time(),
3679 Sbp::MsgSettingsSave(msg) => msg.gps_time(),
3680 Sbp::MsgSettingsReadByIndexReq(msg) => msg.gps_time(),
3681 Sbp::MsgFileioReadResp(msg) => msg.gps_time(),
3682 Sbp::MsgSettingsReadReq(msg) => msg.gps_time(),
3683 Sbp::MsgSettingsReadResp(msg) => msg.gps_time(),
3684 Sbp::MsgSettingsReadByIndexDone(msg) => msg.gps_time(),
3685 Sbp::MsgSettingsReadByIndexResp(msg) => msg.gps_time(),
3686 Sbp::MsgFileioReadReq(msg) => msg.gps_time(),
3687 Sbp::MsgFileioReadDirReq(msg) => msg.gps_time(),
3688 Sbp::MsgFileioReadDirResp(msg) => msg.gps_time(),
3689 Sbp::MsgFileioWriteResp(msg) => msg.gps_time(),
3690 Sbp::MsgFileioRemove(msg) => msg.gps_time(),
3691 Sbp::MsgFileioWriteReq(msg) => msg.gps_time(),
3692 Sbp::MsgSettingsRegister(msg) => msg.gps_time(),
3693 Sbp::MsgSettingsWriteResp(msg) => msg.gps_time(),
3694 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.gps_time(),
3695 Sbp::MsgBootloaderJumpToApp(msg) => msg.gps_time(),
3696 Sbp::MsgResetDep(msg) => msg.gps_time(),
3697 Sbp::MsgBootloaderHandshakeReq(msg) => msg.gps_time(),
3698 Sbp::MsgBootloaderHandshakeResp(msg) => msg.gps_time(),
3699 Sbp::MsgDeviceMonitor(msg) => msg.gps_time(),
3700 Sbp::MsgReset(msg) => msg.gps_time(),
3701 Sbp::MsgCommandReq(msg) => msg.gps_time(),
3702 Sbp::MsgCommandResp(msg) => msg.gps_time(),
3703 Sbp::MsgNetworkStateReq(msg) => msg.gps_time(),
3704 Sbp::MsgNetworkStateResp(msg) => msg.gps_time(),
3705 Sbp::MsgCommandOutput(msg) => msg.gps_time(),
3706 Sbp::MsgNetworkBandwidthUsage(msg) => msg.gps_time(),
3707 Sbp::MsgCellModemStatus(msg) => msg.gps_time(),
3708 Sbp::MsgFrontEndGain(msg) => msg.gps_time(),
3709 Sbp::MsgCwResults(msg) => msg.gps_time(),
3710 Sbp::MsgCwStart(msg) => msg.gps_time(),
3711 Sbp::MsgNapDeviceDnaResp(msg) => msg.gps_time(),
3712 Sbp::MsgNapDeviceDnaReq(msg) => msg.gps_time(),
3713 Sbp::MsgFlashDone(msg) => msg.gps_time(),
3714 Sbp::MsgFlashReadResp(msg) => msg.gps_time(),
3715 Sbp::MsgFlashErase(msg) => msg.gps_time(),
3716 Sbp::MsgStmFlashLockSector(msg) => msg.gps_time(),
3717 Sbp::MsgStmFlashUnlockSector(msg) => msg.gps_time(),
3718 Sbp::MsgStmUniqueIdResp(msg) => msg.gps_time(),
3719 Sbp::MsgFlashProgram(msg) => msg.gps_time(),
3720 Sbp::MsgFlashReadReq(msg) => msg.gps_time(),
3721 Sbp::MsgStmUniqueIdReq(msg) => msg.gps_time(),
3722 Sbp::MsgM25FlashWriteStatus(msg) => msg.gps_time(),
3723 Sbp::MsgGpsTimeDepA(msg) => msg.gps_time(),
3724 Sbp::MsgExtEvent(msg) => msg.gps_time(),
3725 Sbp::MsgGpsTime(msg) => msg.gps_time(),
3726 Sbp::MsgUtcTime(msg) => msg.gps_time(),
3727 Sbp::MsgGpsTimeGnss(msg) => msg.gps_time(),
3728 Sbp::MsgUtcTimeGnss(msg) => msg.gps_time(),
3729 Sbp::MsgTelSv(msg) => msg.gps_time(),
3730 Sbp::MsgSettingsRegisterResp(msg) => msg.gps_time(),
3731 Sbp::MsgPosEcefDepA(msg) => msg.gps_time(),
3732 Sbp::MsgPosLlhDepA(msg) => msg.gps_time(),
3733 Sbp::MsgBaselineEcefDepA(msg) => msg.gps_time(),
3734 Sbp::MsgBaselineNedDepA(msg) => msg.gps_time(),
3735 Sbp::MsgVelEcefDepA(msg) => msg.gps_time(),
3736 Sbp::MsgVelNedDepA(msg) => msg.gps_time(),
3737 Sbp::MsgDopsDepA(msg) => msg.gps_time(),
3738 Sbp::MsgBaselineHeadingDepA(msg) => msg.gps_time(),
3739 Sbp::MsgDops(msg) => msg.gps_time(),
3740 Sbp::MsgPosEcef(msg) => msg.gps_time(),
3741 Sbp::MsgPosLlh(msg) => msg.gps_time(),
3742 Sbp::MsgBaselineEcef(msg) => msg.gps_time(),
3743 Sbp::MsgBaselineNed(msg) => msg.gps_time(),
3744 Sbp::MsgVelEcef(msg) => msg.gps_time(),
3745 Sbp::MsgVelNed(msg) => msg.gps_time(),
3746 Sbp::MsgBaselineHeading(msg) => msg.gps_time(),
3747 Sbp::MsgAgeCorrections(msg) => msg.gps_time(),
3748 Sbp::MsgPosLlhCov(msg) => msg.gps_time(),
3749 Sbp::MsgVelNedCov(msg) => msg.gps_time(),
3750 Sbp::MsgVelBody(msg) => msg.gps_time(),
3751 Sbp::MsgPosEcefCov(msg) => msg.gps_time(),
3752 Sbp::MsgVelEcefCov(msg) => msg.gps_time(),
3753 Sbp::MsgProtectionLevelDepA(msg) => msg.gps_time(),
3754 Sbp::MsgProtectionLevel(msg) => msg.gps_time(),
3755 Sbp::MsgPosLlhAcc(msg) => msg.gps_time(),
3756 Sbp::MsgVelCog(msg) => msg.gps_time(),
3757 Sbp::MsgOrientQuat(msg) => msg.gps_time(),
3758 Sbp::MsgOrientEuler(msg) => msg.gps_time(),
3759 Sbp::MsgAngularRate(msg) => msg.gps_time(),
3760 Sbp::MsgPosEcefGnss(msg) => msg.gps_time(),
3761 Sbp::MsgPosLlhGnss(msg) => msg.gps_time(),
3762 Sbp::MsgVelEcefGnss(msg) => msg.gps_time(),
3763 Sbp::MsgVelNedGnss(msg) => msg.gps_time(),
3764 Sbp::MsgPosLlhCovGnss(msg) => msg.gps_time(),
3765 Sbp::MsgVelNedCovGnss(msg) => msg.gps_time(),
3766 Sbp::MsgPosEcefCovGnss(msg) => msg.gps_time(),
3767 Sbp::MsgVelEcefCovGnss(msg) => msg.gps_time(),
3768 Sbp::MsgUtcLeapSecond(msg) => msg.gps_time(),
3769 Sbp::MsgReferenceFrameParam(msg) => msg.gps_time(),
3770 Sbp::MsgPoseRelative(msg) => msg.gps_time(),
3771 Sbp::MsgNdbEvent(msg) => msg.gps_time(),
3772 Sbp::MsgLog(msg) => msg.gps_time(),
3773 Sbp::MsgFwd(msg) => msg.gps_time(),
3774 Sbp::MsgSsrOrbitClockDepA(msg) => msg.gps_time(),
3775 Sbp::MsgSsrOrbitClock(msg) => msg.gps_time(),
3776 Sbp::MsgSsrOrbitClockBounds(msg) => msg.gps_time(),
3777 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.gps_time(),
3778 Sbp::MsgSsrCodeBiases(msg) => msg.gps_time(),
3779 Sbp::MsgSsrPhaseBiases(msg) => msg.gps_time(),
3780 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.gps_time(),
3781 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.gps_time(),
3782 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.gps_time(),
3783 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.gps_time(),
3784 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.gps_time(),
3785 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.gps_time(),
3786 Sbp::MsgSsrTileDefinition(msg) => msg.gps_time(),
3787 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.gps_time(),
3788 Sbp::MsgSsrStecCorrectionDep(msg) => msg.gps_time(),
3789 Sbp::MsgSsrGriddedCorrection(msg) => msg.gps_time(),
3790 Sbp::MsgSsrStecCorrection(msg) => msg.gps_time(),
3791 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.gps_time(),
3792 Sbp::MsgSsrSatelliteApcDep(msg) => msg.gps_time(),
3793 Sbp::MsgSsrSatelliteApc(msg) => msg.gps_time(),
3794 Sbp::MsgOsr(msg) => msg.gps_time(),
3795 Sbp::MsgUserData(msg) => msg.gps_time(),
3796 Sbp::MsgImuRaw(msg) => msg.gps_time(),
3797 Sbp::MsgImuAux(msg) => msg.gps_time(),
3798 Sbp::MsgMagRaw(msg) => msg.gps_time(),
3799 Sbp::MsgOdometry(msg) => msg.gps_time(),
3800 Sbp::MsgWheeltick(msg) => msg.gps_time(),
3801 Sbp::MsgImuComp(msg) => msg.gps_time(),
3802 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.gps_time(),
3803 Sbp::MsgSsrFlagHighLevel(msg) => msg.gps_time(),
3804 Sbp::MsgSsrFlagSatellites(msg) => msg.gps_time(),
3805 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.gps_time(),
3806 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.gps_time(),
3807 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.gps_time(),
3808 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.gps_time(),
3809 Sbp::MsgAcknowledge(msg) => msg.gps_time(),
3810 Sbp::MsgEd25519SignatureDepA(msg) => msg.gps_time(),
3811 Sbp::MsgEd25519CertificateDep(msg) => msg.gps_time(),
3812 Sbp::MsgEd25519SignatureDepB(msg) => msg.gps_time(),
3813 Sbp::MsgEcdsaCertificate(msg) => msg.gps_time(),
3814 Sbp::MsgCertificateChainDep(msg) => msg.gps_time(),
3815 Sbp::MsgEcdsaSignatureDepA(msg) => msg.gps_time(),
3816 Sbp::MsgEcdsaSignatureDepB(msg) => msg.gps_time(),
3817 Sbp::MsgEcdsaSignature(msg) => msg.gps_time(),
3818 Sbp::MsgCertificateChain(msg) => msg.gps_time(),
3819 Sbp::MsgAesCmacSignature(msg) => msg.gps_time(),
3820 Sbp::MsgFileioConfigReq(msg) => msg.gps_time(),
3821 Sbp::MsgFileioConfigResp(msg) => msg.gps_time(),
3822 Sbp::MsgSbasRaw(msg) => msg.gps_time(),
3823 Sbp::MsgLinuxCpuStateDepA(msg) => msg.gps_time(),
3824 Sbp::MsgLinuxMemStateDepA(msg) => msg.gps_time(),
3825 Sbp::MsgLinuxSysStateDepA(msg) => msg.gps_time(),
3826 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.gps_time(),
3827 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.gps_time(),
3828 Sbp::MsgLinuxSocketUsage(msg) => msg.gps_time(),
3829 Sbp::MsgLinuxProcessFdCount(msg) => msg.gps_time(),
3830 Sbp::MsgLinuxProcessFdSummary(msg) => msg.gps_time(),
3831 Sbp::MsgLinuxCpuState(msg) => msg.gps_time(),
3832 Sbp::MsgLinuxMemState(msg) => msg.gps_time(),
3833 Sbp::MsgLinuxSysState(msg) => msg.gps_time(),
3834 Sbp::MsgMeasurementPoint(msg) => msg.gps_time(),
3835 Sbp::MsgProfilingSystemInfo(msg) => msg.gps_time(),
3836 Sbp::MsgProfilingThreadInfo(msg) => msg.gps_time(),
3837 Sbp::MsgProfilingResourceCounter(msg) => msg.gps_time(),
3838 Sbp::MsgStartup(msg) => msg.gps_time(),
3839 Sbp::MsgDgnssStatus(msg) => msg.gps_time(),
3840 Sbp::MsgInsStatus(msg) => msg.gps_time(),
3841 Sbp::MsgCsacTelemetry(msg) => msg.gps_time(),
3842 Sbp::MsgCsacTelemetryLabels(msg) => msg.gps_time(),
3843 Sbp::MsgInsUpdates(msg) => msg.gps_time(),
3844 Sbp::MsgGnssTimeOffset(msg) => msg.gps_time(),
3845 Sbp::MsgPpsTime(msg) => msg.gps_time(),
3846 Sbp::MsgSensorAidEvent(msg) => msg.gps_time(),
3847 Sbp::MsgGroupMeta(msg) => msg.gps_time(),
3848 Sbp::MsgSolnMeta(msg) => msg.gps_time(),
3849 Sbp::MsgSolnMetaDepA(msg) => msg.gps_time(),
3850 Sbp::MsgStatusJournal(msg) => msg.gps_time(),
3851 Sbp::MsgStatusReport(msg) => msg.gps_time(),
3852 Sbp::MsgHeartbeat(msg) => msg.gps_time(),
3853 Sbp::Unknown(msg) => msg.gps_time(),
3854 Sbp::Invalid(msg) => msg.gps_time(),
3855 }
3856 }
3857
3858 fn friendly_name(&self) -> &'static str {
3859 match self {
3860 Sbp::MsgPrintDep(msg) => msg.friendly_name(),
3861 Sbp::MsgTrackingStateDetailedDep(msg) => msg.friendly_name(),
3862 Sbp::MsgTrackingStateDepB(msg) => msg.friendly_name(),
3863 Sbp::MsgAcqResultDepB(msg) => msg.friendly_name(),
3864 Sbp::MsgAcqResultDepA(msg) => msg.friendly_name(),
3865 Sbp::MsgTrackingStateDepA(msg) => msg.friendly_name(),
3866 Sbp::MsgThreadState(msg) => msg.friendly_name(),
3867 Sbp::MsgUartStateDepa(msg) => msg.friendly_name(),
3868 Sbp::MsgIarState(msg) => msg.friendly_name(),
3869 Sbp::MsgEphemerisDepA(msg) => msg.friendly_name(),
3870 Sbp::MsgMaskSatelliteDep(msg) => msg.friendly_name(),
3871 Sbp::MsgTrackingIqDepA(msg) => msg.friendly_name(),
3872 Sbp::MsgUartState(msg) => msg.friendly_name(),
3873 Sbp::MsgAcqSvProfileDep(msg) => msg.friendly_name(),
3874 Sbp::MsgAcqResultDepC(msg) => msg.friendly_name(),
3875 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.friendly_name(),
3876 Sbp::MsgResetFilters(msg) => msg.friendly_name(),
3877 Sbp::MsgInitBaseDep(msg) => msg.friendly_name(),
3878 Sbp::MsgMaskSatellite(msg) => msg.friendly_name(),
3879 Sbp::MsgTrackingIqDepB(msg) => msg.friendly_name(),
3880 Sbp::MsgTrackingIq(msg) => msg.friendly_name(),
3881 Sbp::MsgAcqSvProfile(msg) => msg.friendly_name(),
3882 Sbp::MsgAcqResult(msg) => msg.friendly_name(),
3883 Sbp::MsgTrackingState(msg) => msg.friendly_name(),
3884 Sbp::MsgObsDepB(msg) => msg.friendly_name(),
3885 Sbp::MsgBasePosLlh(msg) => msg.friendly_name(),
3886 Sbp::MsgObsDepA(msg) => msg.friendly_name(),
3887 Sbp::MsgEphemerisDepB(msg) => msg.friendly_name(),
3888 Sbp::MsgEphemerisDepC(msg) => msg.friendly_name(),
3889 Sbp::MsgBasePosEcef(msg) => msg.friendly_name(),
3890 Sbp::MsgObsDepC(msg) => msg.friendly_name(),
3891 Sbp::MsgObs(msg) => msg.friendly_name(),
3892 Sbp::MsgSpecanDep(msg) => msg.friendly_name(),
3893 Sbp::MsgSpecan(msg) => msg.friendly_name(),
3894 Sbp::MsgMeasurementState(msg) => msg.friendly_name(),
3895 Sbp::MsgSetTime(msg) => msg.friendly_name(),
3896 Sbp::MsgAlmanac(msg) => msg.friendly_name(),
3897 Sbp::MsgAlmanacGpsDep(msg) => msg.friendly_name(),
3898 Sbp::MsgAlmanacGloDep(msg) => msg.friendly_name(),
3899 Sbp::MsgAlmanacGps(msg) => msg.friendly_name(),
3900 Sbp::MsgAlmanacGlo(msg) => msg.friendly_name(),
3901 Sbp::MsgGloBiases(msg) => msg.friendly_name(),
3902 Sbp::MsgEphemerisDepD(msg) => msg.friendly_name(),
3903 Sbp::MsgEphemerisGpsDepE(msg) => msg.friendly_name(),
3904 Sbp::MsgEphemerisSbasDepA(msg) => msg.friendly_name(),
3905 Sbp::MsgEphemerisGloDepA(msg) => msg.friendly_name(),
3906 Sbp::MsgEphemerisSbasDepB(msg) => msg.friendly_name(),
3907 Sbp::MsgEphemerisGloDepB(msg) => msg.friendly_name(),
3908 Sbp::MsgEphemerisGpsDepF(msg) => msg.friendly_name(),
3909 Sbp::MsgEphemerisGloDepC(msg) => msg.friendly_name(),
3910 Sbp::MsgEphemerisGloDepD(msg) => msg.friendly_name(),
3911 Sbp::MsgEphemerisBds(msg) => msg.friendly_name(),
3912 Sbp::MsgEphemerisGps(msg) => msg.friendly_name(),
3913 Sbp::MsgEphemerisGlo(msg) => msg.friendly_name(),
3914 Sbp::MsgEphemerisSbas(msg) => msg.friendly_name(),
3915 Sbp::MsgEphemerisGal(msg) => msg.friendly_name(),
3916 Sbp::MsgEphemerisQzss(msg) => msg.friendly_name(),
3917 Sbp::MsgIono(msg) => msg.friendly_name(),
3918 Sbp::MsgSvConfigurationGpsDep(msg) => msg.friendly_name(),
3919 Sbp::MsgGroupDelayDepA(msg) => msg.friendly_name(),
3920 Sbp::MsgGroupDelayDepB(msg) => msg.friendly_name(),
3921 Sbp::MsgGroupDelay(msg) => msg.friendly_name(),
3922 Sbp::MsgEphemerisGalDepA(msg) => msg.friendly_name(),
3923 Sbp::MsgGnssCapb(msg) => msg.friendly_name(),
3924 Sbp::MsgSvAzEl(msg) => msg.friendly_name(),
3925 Sbp::MsgSettingsWrite(msg) => msg.friendly_name(),
3926 Sbp::MsgSettingsSave(msg) => msg.friendly_name(),
3927 Sbp::MsgSettingsReadByIndexReq(msg) => msg.friendly_name(),
3928 Sbp::MsgFileioReadResp(msg) => msg.friendly_name(),
3929 Sbp::MsgSettingsReadReq(msg) => msg.friendly_name(),
3930 Sbp::MsgSettingsReadResp(msg) => msg.friendly_name(),
3931 Sbp::MsgSettingsReadByIndexDone(msg) => msg.friendly_name(),
3932 Sbp::MsgSettingsReadByIndexResp(msg) => msg.friendly_name(),
3933 Sbp::MsgFileioReadReq(msg) => msg.friendly_name(),
3934 Sbp::MsgFileioReadDirReq(msg) => msg.friendly_name(),
3935 Sbp::MsgFileioReadDirResp(msg) => msg.friendly_name(),
3936 Sbp::MsgFileioWriteResp(msg) => msg.friendly_name(),
3937 Sbp::MsgFileioRemove(msg) => msg.friendly_name(),
3938 Sbp::MsgFileioWriteReq(msg) => msg.friendly_name(),
3939 Sbp::MsgSettingsRegister(msg) => msg.friendly_name(),
3940 Sbp::MsgSettingsWriteResp(msg) => msg.friendly_name(),
3941 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.friendly_name(),
3942 Sbp::MsgBootloaderJumpToApp(msg) => msg.friendly_name(),
3943 Sbp::MsgResetDep(msg) => msg.friendly_name(),
3944 Sbp::MsgBootloaderHandshakeReq(msg) => msg.friendly_name(),
3945 Sbp::MsgBootloaderHandshakeResp(msg) => msg.friendly_name(),
3946 Sbp::MsgDeviceMonitor(msg) => msg.friendly_name(),
3947 Sbp::MsgReset(msg) => msg.friendly_name(),
3948 Sbp::MsgCommandReq(msg) => msg.friendly_name(),
3949 Sbp::MsgCommandResp(msg) => msg.friendly_name(),
3950 Sbp::MsgNetworkStateReq(msg) => msg.friendly_name(),
3951 Sbp::MsgNetworkStateResp(msg) => msg.friendly_name(),
3952 Sbp::MsgCommandOutput(msg) => msg.friendly_name(),
3953 Sbp::MsgNetworkBandwidthUsage(msg) => msg.friendly_name(),
3954 Sbp::MsgCellModemStatus(msg) => msg.friendly_name(),
3955 Sbp::MsgFrontEndGain(msg) => msg.friendly_name(),
3956 Sbp::MsgCwResults(msg) => msg.friendly_name(),
3957 Sbp::MsgCwStart(msg) => msg.friendly_name(),
3958 Sbp::MsgNapDeviceDnaResp(msg) => msg.friendly_name(),
3959 Sbp::MsgNapDeviceDnaReq(msg) => msg.friendly_name(),
3960 Sbp::MsgFlashDone(msg) => msg.friendly_name(),
3961 Sbp::MsgFlashReadResp(msg) => msg.friendly_name(),
3962 Sbp::MsgFlashErase(msg) => msg.friendly_name(),
3963 Sbp::MsgStmFlashLockSector(msg) => msg.friendly_name(),
3964 Sbp::MsgStmFlashUnlockSector(msg) => msg.friendly_name(),
3965 Sbp::MsgStmUniqueIdResp(msg) => msg.friendly_name(),
3966 Sbp::MsgFlashProgram(msg) => msg.friendly_name(),
3967 Sbp::MsgFlashReadReq(msg) => msg.friendly_name(),
3968 Sbp::MsgStmUniqueIdReq(msg) => msg.friendly_name(),
3969 Sbp::MsgM25FlashWriteStatus(msg) => msg.friendly_name(),
3970 Sbp::MsgGpsTimeDepA(msg) => msg.friendly_name(),
3971 Sbp::MsgExtEvent(msg) => msg.friendly_name(),
3972 Sbp::MsgGpsTime(msg) => msg.friendly_name(),
3973 Sbp::MsgUtcTime(msg) => msg.friendly_name(),
3974 Sbp::MsgGpsTimeGnss(msg) => msg.friendly_name(),
3975 Sbp::MsgUtcTimeGnss(msg) => msg.friendly_name(),
3976 Sbp::MsgTelSv(msg) => msg.friendly_name(),
3977 Sbp::MsgSettingsRegisterResp(msg) => msg.friendly_name(),
3978 Sbp::MsgPosEcefDepA(msg) => msg.friendly_name(),
3979 Sbp::MsgPosLlhDepA(msg) => msg.friendly_name(),
3980 Sbp::MsgBaselineEcefDepA(msg) => msg.friendly_name(),
3981 Sbp::MsgBaselineNedDepA(msg) => msg.friendly_name(),
3982 Sbp::MsgVelEcefDepA(msg) => msg.friendly_name(),
3983 Sbp::MsgVelNedDepA(msg) => msg.friendly_name(),
3984 Sbp::MsgDopsDepA(msg) => msg.friendly_name(),
3985 Sbp::MsgBaselineHeadingDepA(msg) => msg.friendly_name(),
3986 Sbp::MsgDops(msg) => msg.friendly_name(),
3987 Sbp::MsgPosEcef(msg) => msg.friendly_name(),
3988 Sbp::MsgPosLlh(msg) => msg.friendly_name(),
3989 Sbp::MsgBaselineEcef(msg) => msg.friendly_name(),
3990 Sbp::MsgBaselineNed(msg) => msg.friendly_name(),
3991 Sbp::MsgVelEcef(msg) => msg.friendly_name(),
3992 Sbp::MsgVelNed(msg) => msg.friendly_name(),
3993 Sbp::MsgBaselineHeading(msg) => msg.friendly_name(),
3994 Sbp::MsgAgeCorrections(msg) => msg.friendly_name(),
3995 Sbp::MsgPosLlhCov(msg) => msg.friendly_name(),
3996 Sbp::MsgVelNedCov(msg) => msg.friendly_name(),
3997 Sbp::MsgVelBody(msg) => msg.friendly_name(),
3998 Sbp::MsgPosEcefCov(msg) => msg.friendly_name(),
3999 Sbp::MsgVelEcefCov(msg) => msg.friendly_name(),
4000 Sbp::MsgProtectionLevelDepA(msg) => msg.friendly_name(),
4001 Sbp::MsgProtectionLevel(msg) => msg.friendly_name(),
4002 Sbp::MsgPosLlhAcc(msg) => msg.friendly_name(),
4003 Sbp::MsgVelCog(msg) => msg.friendly_name(),
4004 Sbp::MsgOrientQuat(msg) => msg.friendly_name(),
4005 Sbp::MsgOrientEuler(msg) => msg.friendly_name(),
4006 Sbp::MsgAngularRate(msg) => msg.friendly_name(),
4007 Sbp::MsgPosEcefGnss(msg) => msg.friendly_name(),
4008 Sbp::MsgPosLlhGnss(msg) => msg.friendly_name(),
4009 Sbp::MsgVelEcefGnss(msg) => msg.friendly_name(),
4010 Sbp::MsgVelNedGnss(msg) => msg.friendly_name(),
4011 Sbp::MsgPosLlhCovGnss(msg) => msg.friendly_name(),
4012 Sbp::MsgVelNedCovGnss(msg) => msg.friendly_name(),
4013 Sbp::MsgPosEcefCovGnss(msg) => msg.friendly_name(),
4014 Sbp::MsgVelEcefCovGnss(msg) => msg.friendly_name(),
4015 Sbp::MsgUtcLeapSecond(msg) => msg.friendly_name(),
4016 Sbp::MsgReferenceFrameParam(msg) => msg.friendly_name(),
4017 Sbp::MsgPoseRelative(msg) => msg.friendly_name(),
4018 Sbp::MsgNdbEvent(msg) => msg.friendly_name(),
4019 Sbp::MsgLog(msg) => msg.friendly_name(),
4020 Sbp::MsgFwd(msg) => msg.friendly_name(),
4021 Sbp::MsgSsrOrbitClockDepA(msg) => msg.friendly_name(),
4022 Sbp::MsgSsrOrbitClock(msg) => msg.friendly_name(),
4023 Sbp::MsgSsrOrbitClockBounds(msg) => msg.friendly_name(),
4024 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.friendly_name(),
4025 Sbp::MsgSsrCodeBiases(msg) => msg.friendly_name(),
4026 Sbp::MsgSsrPhaseBiases(msg) => msg.friendly_name(),
4027 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.friendly_name(),
4028 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.friendly_name(),
4029 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.friendly_name(),
4030 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.friendly_name(),
4031 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.friendly_name(),
4032 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.friendly_name(),
4033 Sbp::MsgSsrTileDefinition(msg) => msg.friendly_name(),
4034 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.friendly_name(),
4035 Sbp::MsgSsrStecCorrectionDep(msg) => msg.friendly_name(),
4036 Sbp::MsgSsrGriddedCorrection(msg) => msg.friendly_name(),
4037 Sbp::MsgSsrStecCorrection(msg) => msg.friendly_name(),
4038 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.friendly_name(),
4039 Sbp::MsgSsrSatelliteApcDep(msg) => msg.friendly_name(),
4040 Sbp::MsgSsrSatelliteApc(msg) => msg.friendly_name(),
4041 Sbp::MsgOsr(msg) => msg.friendly_name(),
4042 Sbp::MsgUserData(msg) => msg.friendly_name(),
4043 Sbp::MsgImuRaw(msg) => msg.friendly_name(),
4044 Sbp::MsgImuAux(msg) => msg.friendly_name(),
4045 Sbp::MsgMagRaw(msg) => msg.friendly_name(),
4046 Sbp::MsgOdometry(msg) => msg.friendly_name(),
4047 Sbp::MsgWheeltick(msg) => msg.friendly_name(),
4048 Sbp::MsgImuComp(msg) => msg.friendly_name(),
4049 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.friendly_name(),
4050 Sbp::MsgSsrFlagHighLevel(msg) => msg.friendly_name(),
4051 Sbp::MsgSsrFlagSatellites(msg) => msg.friendly_name(),
4052 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.friendly_name(),
4053 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.friendly_name(),
4054 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.friendly_name(),
4055 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.friendly_name(),
4056 Sbp::MsgAcknowledge(msg) => msg.friendly_name(),
4057 Sbp::MsgEd25519SignatureDepA(msg) => msg.friendly_name(),
4058 Sbp::MsgEd25519CertificateDep(msg) => msg.friendly_name(),
4059 Sbp::MsgEd25519SignatureDepB(msg) => msg.friendly_name(),
4060 Sbp::MsgEcdsaCertificate(msg) => msg.friendly_name(),
4061 Sbp::MsgCertificateChainDep(msg) => msg.friendly_name(),
4062 Sbp::MsgEcdsaSignatureDepA(msg) => msg.friendly_name(),
4063 Sbp::MsgEcdsaSignatureDepB(msg) => msg.friendly_name(),
4064 Sbp::MsgEcdsaSignature(msg) => msg.friendly_name(),
4065 Sbp::MsgCertificateChain(msg) => msg.friendly_name(),
4066 Sbp::MsgAesCmacSignature(msg) => msg.friendly_name(),
4067 Sbp::MsgFileioConfigReq(msg) => msg.friendly_name(),
4068 Sbp::MsgFileioConfigResp(msg) => msg.friendly_name(),
4069 Sbp::MsgSbasRaw(msg) => msg.friendly_name(),
4070 Sbp::MsgLinuxCpuStateDepA(msg) => msg.friendly_name(),
4071 Sbp::MsgLinuxMemStateDepA(msg) => msg.friendly_name(),
4072 Sbp::MsgLinuxSysStateDepA(msg) => msg.friendly_name(),
4073 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.friendly_name(),
4074 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.friendly_name(),
4075 Sbp::MsgLinuxSocketUsage(msg) => msg.friendly_name(),
4076 Sbp::MsgLinuxProcessFdCount(msg) => msg.friendly_name(),
4077 Sbp::MsgLinuxProcessFdSummary(msg) => msg.friendly_name(),
4078 Sbp::MsgLinuxCpuState(msg) => msg.friendly_name(),
4079 Sbp::MsgLinuxMemState(msg) => msg.friendly_name(),
4080 Sbp::MsgLinuxSysState(msg) => msg.friendly_name(),
4081 Sbp::MsgMeasurementPoint(msg) => msg.friendly_name(),
4082 Sbp::MsgProfilingSystemInfo(msg) => msg.friendly_name(),
4083 Sbp::MsgProfilingThreadInfo(msg) => msg.friendly_name(),
4084 Sbp::MsgProfilingResourceCounter(msg) => msg.friendly_name(),
4085 Sbp::MsgStartup(msg) => msg.friendly_name(),
4086 Sbp::MsgDgnssStatus(msg) => msg.friendly_name(),
4087 Sbp::MsgInsStatus(msg) => msg.friendly_name(),
4088 Sbp::MsgCsacTelemetry(msg) => msg.friendly_name(),
4089 Sbp::MsgCsacTelemetryLabels(msg) => msg.friendly_name(),
4090 Sbp::MsgInsUpdates(msg) => msg.friendly_name(),
4091 Sbp::MsgGnssTimeOffset(msg) => msg.friendly_name(),
4092 Sbp::MsgPpsTime(msg) => msg.friendly_name(),
4093 Sbp::MsgSensorAidEvent(msg) => msg.friendly_name(),
4094 Sbp::MsgGroupMeta(msg) => msg.friendly_name(),
4095 Sbp::MsgSolnMeta(msg) => msg.friendly_name(),
4096 Sbp::MsgSolnMetaDepA(msg) => msg.friendly_name(),
4097 Sbp::MsgStatusJournal(msg) => msg.friendly_name(),
4098 Sbp::MsgStatusReport(msg) => msg.friendly_name(),
4099 Sbp::MsgHeartbeat(msg) => msg.friendly_name(),
4100 Sbp::Unknown(msg) => msg.friendly_name(),
4101 Sbp::Invalid(msg) => msg.friendly_name(),
4102 }
4103 }
4104
4105 fn is_valid(&self) -> bool {
4106 match self {
4107 Sbp::MsgPrintDep(msg) => msg.is_valid(),
4108 Sbp::MsgTrackingStateDetailedDep(msg) => msg.is_valid(),
4109 Sbp::MsgTrackingStateDepB(msg) => msg.is_valid(),
4110 Sbp::MsgAcqResultDepB(msg) => msg.is_valid(),
4111 Sbp::MsgAcqResultDepA(msg) => msg.is_valid(),
4112 Sbp::MsgTrackingStateDepA(msg) => msg.is_valid(),
4113 Sbp::MsgThreadState(msg) => msg.is_valid(),
4114 Sbp::MsgUartStateDepa(msg) => msg.is_valid(),
4115 Sbp::MsgIarState(msg) => msg.is_valid(),
4116 Sbp::MsgEphemerisDepA(msg) => msg.is_valid(),
4117 Sbp::MsgMaskSatelliteDep(msg) => msg.is_valid(),
4118 Sbp::MsgTrackingIqDepA(msg) => msg.is_valid(),
4119 Sbp::MsgUartState(msg) => msg.is_valid(),
4120 Sbp::MsgAcqSvProfileDep(msg) => msg.is_valid(),
4121 Sbp::MsgAcqResultDepC(msg) => msg.is_valid(),
4122 Sbp::MsgTrackingStateDetailedDepA(msg) => msg.is_valid(),
4123 Sbp::MsgResetFilters(msg) => msg.is_valid(),
4124 Sbp::MsgInitBaseDep(msg) => msg.is_valid(),
4125 Sbp::MsgMaskSatellite(msg) => msg.is_valid(),
4126 Sbp::MsgTrackingIqDepB(msg) => msg.is_valid(),
4127 Sbp::MsgTrackingIq(msg) => msg.is_valid(),
4128 Sbp::MsgAcqSvProfile(msg) => msg.is_valid(),
4129 Sbp::MsgAcqResult(msg) => msg.is_valid(),
4130 Sbp::MsgTrackingState(msg) => msg.is_valid(),
4131 Sbp::MsgObsDepB(msg) => msg.is_valid(),
4132 Sbp::MsgBasePosLlh(msg) => msg.is_valid(),
4133 Sbp::MsgObsDepA(msg) => msg.is_valid(),
4134 Sbp::MsgEphemerisDepB(msg) => msg.is_valid(),
4135 Sbp::MsgEphemerisDepC(msg) => msg.is_valid(),
4136 Sbp::MsgBasePosEcef(msg) => msg.is_valid(),
4137 Sbp::MsgObsDepC(msg) => msg.is_valid(),
4138 Sbp::MsgObs(msg) => msg.is_valid(),
4139 Sbp::MsgSpecanDep(msg) => msg.is_valid(),
4140 Sbp::MsgSpecan(msg) => msg.is_valid(),
4141 Sbp::MsgMeasurementState(msg) => msg.is_valid(),
4142 Sbp::MsgSetTime(msg) => msg.is_valid(),
4143 Sbp::MsgAlmanac(msg) => msg.is_valid(),
4144 Sbp::MsgAlmanacGpsDep(msg) => msg.is_valid(),
4145 Sbp::MsgAlmanacGloDep(msg) => msg.is_valid(),
4146 Sbp::MsgAlmanacGps(msg) => msg.is_valid(),
4147 Sbp::MsgAlmanacGlo(msg) => msg.is_valid(),
4148 Sbp::MsgGloBiases(msg) => msg.is_valid(),
4149 Sbp::MsgEphemerisDepD(msg) => msg.is_valid(),
4150 Sbp::MsgEphemerisGpsDepE(msg) => msg.is_valid(),
4151 Sbp::MsgEphemerisSbasDepA(msg) => msg.is_valid(),
4152 Sbp::MsgEphemerisGloDepA(msg) => msg.is_valid(),
4153 Sbp::MsgEphemerisSbasDepB(msg) => msg.is_valid(),
4154 Sbp::MsgEphemerisGloDepB(msg) => msg.is_valid(),
4155 Sbp::MsgEphemerisGpsDepF(msg) => msg.is_valid(),
4156 Sbp::MsgEphemerisGloDepC(msg) => msg.is_valid(),
4157 Sbp::MsgEphemerisGloDepD(msg) => msg.is_valid(),
4158 Sbp::MsgEphemerisBds(msg) => msg.is_valid(),
4159 Sbp::MsgEphemerisGps(msg) => msg.is_valid(),
4160 Sbp::MsgEphemerisGlo(msg) => msg.is_valid(),
4161 Sbp::MsgEphemerisSbas(msg) => msg.is_valid(),
4162 Sbp::MsgEphemerisGal(msg) => msg.is_valid(),
4163 Sbp::MsgEphemerisQzss(msg) => msg.is_valid(),
4164 Sbp::MsgIono(msg) => msg.is_valid(),
4165 Sbp::MsgSvConfigurationGpsDep(msg) => msg.is_valid(),
4166 Sbp::MsgGroupDelayDepA(msg) => msg.is_valid(),
4167 Sbp::MsgGroupDelayDepB(msg) => msg.is_valid(),
4168 Sbp::MsgGroupDelay(msg) => msg.is_valid(),
4169 Sbp::MsgEphemerisGalDepA(msg) => msg.is_valid(),
4170 Sbp::MsgGnssCapb(msg) => msg.is_valid(),
4171 Sbp::MsgSvAzEl(msg) => msg.is_valid(),
4172 Sbp::MsgSettingsWrite(msg) => msg.is_valid(),
4173 Sbp::MsgSettingsSave(msg) => msg.is_valid(),
4174 Sbp::MsgSettingsReadByIndexReq(msg) => msg.is_valid(),
4175 Sbp::MsgFileioReadResp(msg) => msg.is_valid(),
4176 Sbp::MsgSettingsReadReq(msg) => msg.is_valid(),
4177 Sbp::MsgSettingsReadResp(msg) => msg.is_valid(),
4178 Sbp::MsgSettingsReadByIndexDone(msg) => msg.is_valid(),
4179 Sbp::MsgSettingsReadByIndexResp(msg) => msg.is_valid(),
4180 Sbp::MsgFileioReadReq(msg) => msg.is_valid(),
4181 Sbp::MsgFileioReadDirReq(msg) => msg.is_valid(),
4182 Sbp::MsgFileioReadDirResp(msg) => msg.is_valid(),
4183 Sbp::MsgFileioWriteResp(msg) => msg.is_valid(),
4184 Sbp::MsgFileioRemove(msg) => msg.is_valid(),
4185 Sbp::MsgFileioWriteReq(msg) => msg.is_valid(),
4186 Sbp::MsgSettingsRegister(msg) => msg.is_valid(),
4187 Sbp::MsgSettingsWriteResp(msg) => msg.is_valid(),
4188 Sbp::MsgBootloaderHandshakeDepA(msg) => msg.is_valid(),
4189 Sbp::MsgBootloaderJumpToApp(msg) => msg.is_valid(),
4190 Sbp::MsgResetDep(msg) => msg.is_valid(),
4191 Sbp::MsgBootloaderHandshakeReq(msg) => msg.is_valid(),
4192 Sbp::MsgBootloaderHandshakeResp(msg) => msg.is_valid(),
4193 Sbp::MsgDeviceMonitor(msg) => msg.is_valid(),
4194 Sbp::MsgReset(msg) => msg.is_valid(),
4195 Sbp::MsgCommandReq(msg) => msg.is_valid(),
4196 Sbp::MsgCommandResp(msg) => msg.is_valid(),
4197 Sbp::MsgNetworkStateReq(msg) => msg.is_valid(),
4198 Sbp::MsgNetworkStateResp(msg) => msg.is_valid(),
4199 Sbp::MsgCommandOutput(msg) => msg.is_valid(),
4200 Sbp::MsgNetworkBandwidthUsage(msg) => msg.is_valid(),
4201 Sbp::MsgCellModemStatus(msg) => msg.is_valid(),
4202 Sbp::MsgFrontEndGain(msg) => msg.is_valid(),
4203 Sbp::MsgCwResults(msg) => msg.is_valid(),
4204 Sbp::MsgCwStart(msg) => msg.is_valid(),
4205 Sbp::MsgNapDeviceDnaResp(msg) => msg.is_valid(),
4206 Sbp::MsgNapDeviceDnaReq(msg) => msg.is_valid(),
4207 Sbp::MsgFlashDone(msg) => msg.is_valid(),
4208 Sbp::MsgFlashReadResp(msg) => msg.is_valid(),
4209 Sbp::MsgFlashErase(msg) => msg.is_valid(),
4210 Sbp::MsgStmFlashLockSector(msg) => msg.is_valid(),
4211 Sbp::MsgStmFlashUnlockSector(msg) => msg.is_valid(),
4212 Sbp::MsgStmUniqueIdResp(msg) => msg.is_valid(),
4213 Sbp::MsgFlashProgram(msg) => msg.is_valid(),
4214 Sbp::MsgFlashReadReq(msg) => msg.is_valid(),
4215 Sbp::MsgStmUniqueIdReq(msg) => msg.is_valid(),
4216 Sbp::MsgM25FlashWriteStatus(msg) => msg.is_valid(),
4217 Sbp::MsgGpsTimeDepA(msg) => msg.is_valid(),
4218 Sbp::MsgExtEvent(msg) => msg.is_valid(),
4219 Sbp::MsgGpsTime(msg) => msg.is_valid(),
4220 Sbp::MsgUtcTime(msg) => msg.is_valid(),
4221 Sbp::MsgGpsTimeGnss(msg) => msg.is_valid(),
4222 Sbp::MsgUtcTimeGnss(msg) => msg.is_valid(),
4223 Sbp::MsgTelSv(msg) => msg.is_valid(),
4224 Sbp::MsgSettingsRegisterResp(msg) => msg.is_valid(),
4225 Sbp::MsgPosEcefDepA(msg) => msg.is_valid(),
4226 Sbp::MsgPosLlhDepA(msg) => msg.is_valid(),
4227 Sbp::MsgBaselineEcefDepA(msg) => msg.is_valid(),
4228 Sbp::MsgBaselineNedDepA(msg) => msg.is_valid(),
4229 Sbp::MsgVelEcefDepA(msg) => msg.is_valid(),
4230 Sbp::MsgVelNedDepA(msg) => msg.is_valid(),
4231 Sbp::MsgDopsDepA(msg) => msg.is_valid(),
4232 Sbp::MsgBaselineHeadingDepA(msg) => msg.is_valid(),
4233 Sbp::MsgDops(msg) => msg.is_valid(),
4234 Sbp::MsgPosEcef(msg) => msg.is_valid(),
4235 Sbp::MsgPosLlh(msg) => msg.is_valid(),
4236 Sbp::MsgBaselineEcef(msg) => msg.is_valid(),
4237 Sbp::MsgBaselineNed(msg) => msg.is_valid(),
4238 Sbp::MsgVelEcef(msg) => msg.is_valid(),
4239 Sbp::MsgVelNed(msg) => msg.is_valid(),
4240 Sbp::MsgBaselineHeading(msg) => msg.is_valid(),
4241 Sbp::MsgAgeCorrections(msg) => msg.is_valid(),
4242 Sbp::MsgPosLlhCov(msg) => msg.is_valid(),
4243 Sbp::MsgVelNedCov(msg) => msg.is_valid(),
4244 Sbp::MsgVelBody(msg) => msg.is_valid(),
4245 Sbp::MsgPosEcefCov(msg) => msg.is_valid(),
4246 Sbp::MsgVelEcefCov(msg) => msg.is_valid(),
4247 Sbp::MsgProtectionLevelDepA(msg) => msg.is_valid(),
4248 Sbp::MsgProtectionLevel(msg) => msg.is_valid(),
4249 Sbp::MsgPosLlhAcc(msg) => msg.is_valid(),
4250 Sbp::MsgVelCog(msg) => msg.is_valid(),
4251 Sbp::MsgOrientQuat(msg) => msg.is_valid(),
4252 Sbp::MsgOrientEuler(msg) => msg.is_valid(),
4253 Sbp::MsgAngularRate(msg) => msg.is_valid(),
4254 Sbp::MsgPosEcefGnss(msg) => msg.is_valid(),
4255 Sbp::MsgPosLlhGnss(msg) => msg.is_valid(),
4256 Sbp::MsgVelEcefGnss(msg) => msg.is_valid(),
4257 Sbp::MsgVelNedGnss(msg) => msg.is_valid(),
4258 Sbp::MsgPosLlhCovGnss(msg) => msg.is_valid(),
4259 Sbp::MsgVelNedCovGnss(msg) => msg.is_valid(),
4260 Sbp::MsgPosEcefCovGnss(msg) => msg.is_valid(),
4261 Sbp::MsgVelEcefCovGnss(msg) => msg.is_valid(),
4262 Sbp::MsgUtcLeapSecond(msg) => msg.is_valid(),
4263 Sbp::MsgReferenceFrameParam(msg) => msg.is_valid(),
4264 Sbp::MsgPoseRelative(msg) => msg.is_valid(),
4265 Sbp::MsgNdbEvent(msg) => msg.is_valid(),
4266 Sbp::MsgLog(msg) => msg.is_valid(),
4267 Sbp::MsgFwd(msg) => msg.is_valid(),
4268 Sbp::MsgSsrOrbitClockDepA(msg) => msg.is_valid(),
4269 Sbp::MsgSsrOrbitClock(msg) => msg.is_valid(),
4270 Sbp::MsgSsrOrbitClockBounds(msg) => msg.is_valid(),
4271 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => msg.is_valid(),
4272 Sbp::MsgSsrCodeBiases(msg) => msg.is_valid(),
4273 Sbp::MsgSsrPhaseBiases(msg) => msg.is_valid(),
4274 Sbp::MsgSsrStecCorrectionDepA(msg) => msg.is_valid(),
4275 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => msg.is_valid(),
4276 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => msg.is_valid(),
4277 Sbp::MsgSsrGridDefinitionDepA(msg) => msg.is_valid(),
4278 Sbp::MsgSsrTileDefinitionDepA(msg) => msg.is_valid(),
4279 Sbp::MsgSsrTileDefinitionDepB(msg) => msg.is_valid(),
4280 Sbp::MsgSsrTileDefinition(msg) => msg.is_valid(),
4281 Sbp::MsgSsrGriddedCorrectionDepA(msg) => msg.is_valid(),
4282 Sbp::MsgSsrStecCorrectionDep(msg) => msg.is_valid(),
4283 Sbp::MsgSsrGriddedCorrection(msg) => msg.is_valid(),
4284 Sbp::MsgSsrStecCorrection(msg) => msg.is_valid(),
4285 Sbp::MsgSsrGriddedCorrectionBounds(msg) => msg.is_valid(),
4286 Sbp::MsgSsrSatelliteApcDep(msg) => msg.is_valid(),
4287 Sbp::MsgSsrSatelliteApc(msg) => msg.is_valid(),
4288 Sbp::MsgOsr(msg) => msg.is_valid(),
4289 Sbp::MsgUserData(msg) => msg.is_valid(),
4290 Sbp::MsgImuRaw(msg) => msg.is_valid(),
4291 Sbp::MsgImuAux(msg) => msg.is_valid(),
4292 Sbp::MsgMagRaw(msg) => msg.is_valid(),
4293 Sbp::MsgOdometry(msg) => msg.is_valid(),
4294 Sbp::MsgWheeltick(msg) => msg.is_valid(),
4295 Sbp::MsgImuComp(msg) => msg.is_valid(),
4296 Sbp::MsgSsrFlagHighLevelDepA(msg) => msg.is_valid(),
4297 Sbp::MsgSsrFlagHighLevel(msg) => msg.is_valid(),
4298 Sbp::MsgSsrFlagSatellites(msg) => msg.is_valid(),
4299 Sbp::MsgSsrFlagTropoGridPoints(msg) => msg.is_valid(),
4300 Sbp::MsgSsrFlagIonoGridPoints(msg) => msg.is_valid(),
4301 Sbp::MsgSsrFlagIonoTileSatLos(msg) => msg.is_valid(),
4302 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => msg.is_valid(),
4303 Sbp::MsgAcknowledge(msg) => msg.is_valid(),
4304 Sbp::MsgEd25519SignatureDepA(msg) => msg.is_valid(),
4305 Sbp::MsgEd25519CertificateDep(msg) => msg.is_valid(),
4306 Sbp::MsgEd25519SignatureDepB(msg) => msg.is_valid(),
4307 Sbp::MsgEcdsaCertificate(msg) => msg.is_valid(),
4308 Sbp::MsgCertificateChainDep(msg) => msg.is_valid(),
4309 Sbp::MsgEcdsaSignatureDepA(msg) => msg.is_valid(),
4310 Sbp::MsgEcdsaSignatureDepB(msg) => msg.is_valid(),
4311 Sbp::MsgEcdsaSignature(msg) => msg.is_valid(),
4312 Sbp::MsgCertificateChain(msg) => msg.is_valid(),
4313 Sbp::MsgAesCmacSignature(msg) => msg.is_valid(),
4314 Sbp::MsgFileioConfigReq(msg) => msg.is_valid(),
4315 Sbp::MsgFileioConfigResp(msg) => msg.is_valid(),
4316 Sbp::MsgSbasRaw(msg) => msg.is_valid(),
4317 Sbp::MsgLinuxCpuStateDepA(msg) => msg.is_valid(),
4318 Sbp::MsgLinuxMemStateDepA(msg) => msg.is_valid(),
4319 Sbp::MsgLinuxSysStateDepA(msg) => msg.is_valid(),
4320 Sbp::MsgLinuxProcessSocketCounts(msg) => msg.is_valid(),
4321 Sbp::MsgLinuxProcessSocketQueues(msg) => msg.is_valid(),
4322 Sbp::MsgLinuxSocketUsage(msg) => msg.is_valid(),
4323 Sbp::MsgLinuxProcessFdCount(msg) => msg.is_valid(),
4324 Sbp::MsgLinuxProcessFdSummary(msg) => msg.is_valid(),
4325 Sbp::MsgLinuxCpuState(msg) => msg.is_valid(),
4326 Sbp::MsgLinuxMemState(msg) => msg.is_valid(),
4327 Sbp::MsgLinuxSysState(msg) => msg.is_valid(),
4328 Sbp::MsgMeasurementPoint(msg) => msg.is_valid(),
4329 Sbp::MsgProfilingSystemInfo(msg) => msg.is_valid(),
4330 Sbp::MsgProfilingThreadInfo(msg) => msg.is_valid(),
4331 Sbp::MsgProfilingResourceCounter(msg) => msg.is_valid(),
4332 Sbp::MsgStartup(msg) => msg.is_valid(),
4333 Sbp::MsgDgnssStatus(msg) => msg.is_valid(),
4334 Sbp::MsgInsStatus(msg) => msg.is_valid(),
4335 Sbp::MsgCsacTelemetry(msg) => msg.is_valid(),
4336 Sbp::MsgCsacTelemetryLabels(msg) => msg.is_valid(),
4337 Sbp::MsgInsUpdates(msg) => msg.is_valid(),
4338 Sbp::MsgGnssTimeOffset(msg) => msg.is_valid(),
4339 Sbp::MsgPpsTime(msg) => msg.is_valid(),
4340 Sbp::MsgSensorAidEvent(msg) => msg.is_valid(),
4341 Sbp::MsgGroupMeta(msg) => msg.is_valid(),
4342 Sbp::MsgSolnMeta(msg) => msg.is_valid(),
4343 Sbp::MsgSolnMetaDepA(msg) => msg.is_valid(),
4344 Sbp::MsgStatusJournal(msg) => msg.is_valid(),
4345 Sbp::MsgStatusReport(msg) => msg.is_valid(),
4346 Sbp::MsgHeartbeat(msg) => msg.is_valid(),
4347 Sbp::Unknown(msg) => msg.is_valid(),
4348 Sbp::Invalid(msg) => msg.is_valid(),
4349 }
4350 }
4351 fn into_valid_msg(self) -> Result<Self, crate::messages::invalid::Invalid> {
4352 match self {
4353 Sbp::MsgPrintDep(msg) => Ok(Sbp::MsgPrintDep(msg.into_valid_msg()?)),
4354 Sbp::MsgTrackingStateDetailedDep(msg) => {
4355 Ok(Sbp::MsgTrackingStateDetailedDep(msg.into_valid_msg()?))
4356 }
4357 Sbp::MsgTrackingStateDepB(msg) => Ok(Sbp::MsgTrackingStateDepB(msg.into_valid_msg()?)),
4358 Sbp::MsgAcqResultDepB(msg) => Ok(Sbp::MsgAcqResultDepB(msg.into_valid_msg()?)),
4359 Sbp::MsgAcqResultDepA(msg) => Ok(Sbp::MsgAcqResultDepA(msg.into_valid_msg()?)),
4360 Sbp::MsgTrackingStateDepA(msg) => Ok(Sbp::MsgTrackingStateDepA(msg.into_valid_msg()?)),
4361 Sbp::MsgThreadState(msg) => Ok(Sbp::MsgThreadState(msg.into_valid_msg()?)),
4362 Sbp::MsgUartStateDepa(msg) => Ok(Sbp::MsgUartStateDepa(msg.into_valid_msg()?)),
4363 Sbp::MsgIarState(msg) => Ok(Sbp::MsgIarState(msg.into_valid_msg()?)),
4364 Sbp::MsgEphemerisDepA(msg) => Ok(Sbp::MsgEphemerisDepA(msg.into_valid_msg()?)),
4365 Sbp::MsgMaskSatelliteDep(msg) => Ok(Sbp::MsgMaskSatelliteDep(msg.into_valid_msg()?)),
4366 Sbp::MsgTrackingIqDepA(msg) => Ok(Sbp::MsgTrackingIqDepA(msg.into_valid_msg()?)),
4367 Sbp::MsgUartState(msg) => Ok(Sbp::MsgUartState(msg.into_valid_msg()?)),
4368 Sbp::MsgAcqSvProfileDep(msg) => Ok(Sbp::MsgAcqSvProfileDep(msg.into_valid_msg()?)),
4369 Sbp::MsgAcqResultDepC(msg) => Ok(Sbp::MsgAcqResultDepC(msg.into_valid_msg()?)),
4370 Sbp::MsgTrackingStateDetailedDepA(msg) => {
4371 Ok(Sbp::MsgTrackingStateDetailedDepA(msg.into_valid_msg()?))
4372 }
4373 Sbp::MsgResetFilters(msg) => Ok(Sbp::MsgResetFilters(msg.into_valid_msg()?)),
4374 Sbp::MsgInitBaseDep(msg) => Ok(Sbp::MsgInitBaseDep(msg.into_valid_msg()?)),
4375 Sbp::MsgMaskSatellite(msg) => Ok(Sbp::MsgMaskSatellite(msg.into_valid_msg()?)),
4376 Sbp::MsgTrackingIqDepB(msg) => Ok(Sbp::MsgTrackingIqDepB(msg.into_valid_msg()?)),
4377 Sbp::MsgTrackingIq(msg) => Ok(Sbp::MsgTrackingIq(msg.into_valid_msg()?)),
4378 Sbp::MsgAcqSvProfile(msg) => Ok(Sbp::MsgAcqSvProfile(msg.into_valid_msg()?)),
4379 Sbp::MsgAcqResult(msg) => Ok(Sbp::MsgAcqResult(msg.into_valid_msg()?)),
4380 Sbp::MsgTrackingState(msg) => Ok(Sbp::MsgTrackingState(msg.into_valid_msg()?)),
4381 Sbp::MsgObsDepB(msg) => Ok(Sbp::MsgObsDepB(msg.into_valid_msg()?)),
4382 Sbp::MsgBasePosLlh(msg) => Ok(Sbp::MsgBasePosLlh(msg.into_valid_msg()?)),
4383 Sbp::MsgObsDepA(msg) => Ok(Sbp::MsgObsDepA(msg.into_valid_msg()?)),
4384 Sbp::MsgEphemerisDepB(msg) => Ok(Sbp::MsgEphemerisDepB(msg.into_valid_msg()?)),
4385 Sbp::MsgEphemerisDepC(msg) => Ok(Sbp::MsgEphemerisDepC(msg.into_valid_msg()?)),
4386 Sbp::MsgBasePosEcef(msg) => Ok(Sbp::MsgBasePosEcef(msg.into_valid_msg()?)),
4387 Sbp::MsgObsDepC(msg) => Ok(Sbp::MsgObsDepC(msg.into_valid_msg()?)),
4388 Sbp::MsgObs(msg) => Ok(Sbp::MsgObs(msg.into_valid_msg()?)),
4389 Sbp::MsgSpecanDep(msg) => Ok(Sbp::MsgSpecanDep(msg.into_valid_msg()?)),
4390 Sbp::MsgSpecan(msg) => Ok(Sbp::MsgSpecan(msg.into_valid_msg()?)),
4391 Sbp::MsgMeasurementState(msg) => Ok(Sbp::MsgMeasurementState(msg.into_valid_msg()?)),
4392 Sbp::MsgSetTime(msg) => Ok(Sbp::MsgSetTime(msg.into_valid_msg()?)),
4393 Sbp::MsgAlmanac(msg) => Ok(Sbp::MsgAlmanac(msg.into_valid_msg()?)),
4394 Sbp::MsgAlmanacGpsDep(msg) => Ok(Sbp::MsgAlmanacGpsDep(msg.into_valid_msg()?)),
4395 Sbp::MsgAlmanacGloDep(msg) => Ok(Sbp::MsgAlmanacGloDep(msg.into_valid_msg()?)),
4396 Sbp::MsgAlmanacGps(msg) => Ok(Sbp::MsgAlmanacGps(msg.into_valid_msg()?)),
4397 Sbp::MsgAlmanacGlo(msg) => Ok(Sbp::MsgAlmanacGlo(msg.into_valid_msg()?)),
4398 Sbp::MsgGloBiases(msg) => Ok(Sbp::MsgGloBiases(msg.into_valid_msg()?)),
4399 Sbp::MsgEphemerisDepD(msg) => Ok(Sbp::MsgEphemerisDepD(msg.into_valid_msg()?)),
4400 Sbp::MsgEphemerisGpsDepE(msg) => Ok(Sbp::MsgEphemerisGpsDepE(msg.into_valid_msg()?)),
4401 Sbp::MsgEphemerisSbasDepA(msg) => Ok(Sbp::MsgEphemerisSbasDepA(msg.into_valid_msg()?)),
4402 Sbp::MsgEphemerisGloDepA(msg) => Ok(Sbp::MsgEphemerisGloDepA(msg.into_valid_msg()?)),
4403 Sbp::MsgEphemerisSbasDepB(msg) => Ok(Sbp::MsgEphemerisSbasDepB(msg.into_valid_msg()?)),
4404 Sbp::MsgEphemerisGloDepB(msg) => Ok(Sbp::MsgEphemerisGloDepB(msg.into_valid_msg()?)),
4405 Sbp::MsgEphemerisGpsDepF(msg) => Ok(Sbp::MsgEphemerisGpsDepF(msg.into_valid_msg()?)),
4406 Sbp::MsgEphemerisGloDepC(msg) => Ok(Sbp::MsgEphemerisGloDepC(msg.into_valid_msg()?)),
4407 Sbp::MsgEphemerisGloDepD(msg) => Ok(Sbp::MsgEphemerisGloDepD(msg.into_valid_msg()?)),
4408 Sbp::MsgEphemerisBds(msg) => Ok(Sbp::MsgEphemerisBds(msg.into_valid_msg()?)),
4409 Sbp::MsgEphemerisGps(msg) => Ok(Sbp::MsgEphemerisGps(msg.into_valid_msg()?)),
4410 Sbp::MsgEphemerisGlo(msg) => Ok(Sbp::MsgEphemerisGlo(msg.into_valid_msg()?)),
4411 Sbp::MsgEphemerisSbas(msg) => Ok(Sbp::MsgEphemerisSbas(msg.into_valid_msg()?)),
4412 Sbp::MsgEphemerisGal(msg) => Ok(Sbp::MsgEphemerisGal(msg.into_valid_msg()?)),
4413 Sbp::MsgEphemerisQzss(msg) => Ok(Sbp::MsgEphemerisQzss(msg.into_valid_msg()?)),
4414 Sbp::MsgIono(msg) => Ok(Sbp::MsgIono(msg.into_valid_msg()?)),
4415 Sbp::MsgSvConfigurationGpsDep(msg) => {
4416 Ok(Sbp::MsgSvConfigurationGpsDep(msg.into_valid_msg()?))
4417 }
4418 Sbp::MsgGroupDelayDepA(msg) => Ok(Sbp::MsgGroupDelayDepA(msg.into_valid_msg()?)),
4419 Sbp::MsgGroupDelayDepB(msg) => Ok(Sbp::MsgGroupDelayDepB(msg.into_valid_msg()?)),
4420 Sbp::MsgGroupDelay(msg) => Ok(Sbp::MsgGroupDelay(msg.into_valid_msg()?)),
4421 Sbp::MsgEphemerisGalDepA(msg) => Ok(Sbp::MsgEphemerisGalDepA(msg.into_valid_msg()?)),
4422 Sbp::MsgGnssCapb(msg) => Ok(Sbp::MsgGnssCapb(msg.into_valid_msg()?)),
4423 Sbp::MsgSvAzEl(msg) => Ok(Sbp::MsgSvAzEl(msg.into_valid_msg()?)),
4424 Sbp::MsgSettingsWrite(msg) => Ok(Sbp::MsgSettingsWrite(msg.into_valid_msg()?)),
4425 Sbp::MsgSettingsSave(msg) => Ok(Sbp::MsgSettingsSave(msg.into_valid_msg()?)),
4426 Sbp::MsgSettingsReadByIndexReq(msg) => {
4427 Ok(Sbp::MsgSettingsReadByIndexReq(msg.into_valid_msg()?))
4428 }
4429 Sbp::MsgFileioReadResp(msg) => Ok(Sbp::MsgFileioReadResp(msg.into_valid_msg()?)),
4430 Sbp::MsgSettingsReadReq(msg) => Ok(Sbp::MsgSettingsReadReq(msg.into_valid_msg()?)),
4431 Sbp::MsgSettingsReadResp(msg) => Ok(Sbp::MsgSettingsReadResp(msg.into_valid_msg()?)),
4432 Sbp::MsgSettingsReadByIndexDone(msg) => {
4433 Ok(Sbp::MsgSettingsReadByIndexDone(msg.into_valid_msg()?))
4434 }
4435 Sbp::MsgSettingsReadByIndexResp(msg) => {
4436 Ok(Sbp::MsgSettingsReadByIndexResp(msg.into_valid_msg()?))
4437 }
4438 Sbp::MsgFileioReadReq(msg) => Ok(Sbp::MsgFileioReadReq(msg.into_valid_msg()?)),
4439 Sbp::MsgFileioReadDirReq(msg) => Ok(Sbp::MsgFileioReadDirReq(msg.into_valid_msg()?)),
4440 Sbp::MsgFileioReadDirResp(msg) => Ok(Sbp::MsgFileioReadDirResp(msg.into_valid_msg()?)),
4441 Sbp::MsgFileioWriteResp(msg) => Ok(Sbp::MsgFileioWriteResp(msg.into_valid_msg()?)),
4442 Sbp::MsgFileioRemove(msg) => Ok(Sbp::MsgFileioRemove(msg.into_valid_msg()?)),
4443 Sbp::MsgFileioWriteReq(msg) => Ok(Sbp::MsgFileioWriteReq(msg.into_valid_msg()?)),
4444 Sbp::MsgSettingsRegister(msg) => Ok(Sbp::MsgSettingsRegister(msg.into_valid_msg()?)),
4445 Sbp::MsgSettingsWriteResp(msg) => Ok(Sbp::MsgSettingsWriteResp(msg.into_valid_msg()?)),
4446 Sbp::MsgBootloaderHandshakeDepA(msg) => {
4447 Ok(Sbp::MsgBootloaderHandshakeDepA(msg.into_valid_msg()?))
4448 }
4449 Sbp::MsgBootloaderJumpToApp(msg) => {
4450 Ok(Sbp::MsgBootloaderJumpToApp(msg.into_valid_msg()?))
4451 }
4452 Sbp::MsgResetDep(msg) => Ok(Sbp::MsgResetDep(msg.into_valid_msg()?)),
4453 Sbp::MsgBootloaderHandshakeReq(msg) => {
4454 Ok(Sbp::MsgBootloaderHandshakeReq(msg.into_valid_msg()?))
4455 }
4456 Sbp::MsgBootloaderHandshakeResp(msg) => {
4457 Ok(Sbp::MsgBootloaderHandshakeResp(msg.into_valid_msg()?))
4458 }
4459 Sbp::MsgDeviceMonitor(msg) => Ok(Sbp::MsgDeviceMonitor(msg.into_valid_msg()?)),
4460 Sbp::MsgReset(msg) => Ok(Sbp::MsgReset(msg.into_valid_msg()?)),
4461 Sbp::MsgCommandReq(msg) => Ok(Sbp::MsgCommandReq(msg.into_valid_msg()?)),
4462 Sbp::MsgCommandResp(msg) => Ok(Sbp::MsgCommandResp(msg.into_valid_msg()?)),
4463 Sbp::MsgNetworkStateReq(msg) => Ok(Sbp::MsgNetworkStateReq(msg.into_valid_msg()?)),
4464 Sbp::MsgNetworkStateResp(msg) => Ok(Sbp::MsgNetworkStateResp(msg.into_valid_msg()?)),
4465 Sbp::MsgCommandOutput(msg) => Ok(Sbp::MsgCommandOutput(msg.into_valid_msg()?)),
4466 Sbp::MsgNetworkBandwidthUsage(msg) => {
4467 Ok(Sbp::MsgNetworkBandwidthUsage(msg.into_valid_msg()?))
4468 }
4469 Sbp::MsgCellModemStatus(msg) => Ok(Sbp::MsgCellModemStatus(msg.into_valid_msg()?)),
4470 Sbp::MsgFrontEndGain(msg) => Ok(Sbp::MsgFrontEndGain(msg.into_valid_msg()?)),
4471 Sbp::MsgCwResults(msg) => Ok(Sbp::MsgCwResults(msg.into_valid_msg()?)),
4472 Sbp::MsgCwStart(msg) => Ok(Sbp::MsgCwStart(msg.into_valid_msg()?)),
4473 Sbp::MsgNapDeviceDnaResp(msg) => Ok(Sbp::MsgNapDeviceDnaResp(msg.into_valid_msg()?)),
4474 Sbp::MsgNapDeviceDnaReq(msg) => Ok(Sbp::MsgNapDeviceDnaReq(msg.into_valid_msg()?)),
4475 Sbp::MsgFlashDone(msg) => Ok(Sbp::MsgFlashDone(msg.into_valid_msg()?)),
4476 Sbp::MsgFlashReadResp(msg) => Ok(Sbp::MsgFlashReadResp(msg.into_valid_msg()?)),
4477 Sbp::MsgFlashErase(msg) => Ok(Sbp::MsgFlashErase(msg.into_valid_msg()?)),
4478 Sbp::MsgStmFlashLockSector(msg) => {
4479 Ok(Sbp::MsgStmFlashLockSector(msg.into_valid_msg()?))
4480 }
4481 Sbp::MsgStmFlashUnlockSector(msg) => {
4482 Ok(Sbp::MsgStmFlashUnlockSector(msg.into_valid_msg()?))
4483 }
4484 Sbp::MsgStmUniqueIdResp(msg) => Ok(Sbp::MsgStmUniqueIdResp(msg.into_valid_msg()?)),
4485 Sbp::MsgFlashProgram(msg) => Ok(Sbp::MsgFlashProgram(msg.into_valid_msg()?)),
4486 Sbp::MsgFlashReadReq(msg) => Ok(Sbp::MsgFlashReadReq(msg.into_valid_msg()?)),
4487 Sbp::MsgStmUniqueIdReq(msg) => Ok(Sbp::MsgStmUniqueIdReq(msg.into_valid_msg()?)),
4488 Sbp::MsgM25FlashWriteStatus(msg) => {
4489 Ok(Sbp::MsgM25FlashWriteStatus(msg.into_valid_msg()?))
4490 }
4491 Sbp::MsgGpsTimeDepA(msg) => Ok(Sbp::MsgGpsTimeDepA(msg.into_valid_msg()?)),
4492 Sbp::MsgExtEvent(msg) => Ok(Sbp::MsgExtEvent(msg.into_valid_msg()?)),
4493 Sbp::MsgGpsTime(msg) => Ok(Sbp::MsgGpsTime(msg.into_valid_msg()?)),
4494 Sbp::MsgUtcTime(msg) => Ok(Sbp::MsgUtcTime(msg.into_valid_msg()?)),
4495 Sbp::MsgGpsTimeGnss(msg) => Ok(Sbp::MsgGpsTimeGnss(msg.into_valid_msg()?)),
4496 Sbp::MsgUtcTimeGnss(msg) => Ok(Sbp::MsgUtcTimeGnss(msg.into_valid_msg()?)),
4497 Sbp::MsgTelSv(msg) => Ok(Sbp::MsgTelSv(msg.into_valid_msg()?)),
4498 Sbp::MsgSettingsRegisterResp(msg) => {
4499 Ok(Sbp::MsgSettingsRegisterResp(msg.into_valid_msg()?))
4500 }
4501 Sbp::MsgPosEcefDepA(msg) => Ok(Sbp::MsgPosEcefDepA(msg.into_valid_msg()?)),
4502 Sbp::MsgPosLlhDepA(msg) => Ok(Sbp::MsgPosLlhDepA(msg.into_valid_msg()?)),
4503 Sbp::MsgBaselineEcefDepA(msg) => Ok(Sbp::MsgBaselineEcefDepA(msg.into_valid_msg()?)),
4504 Sbp::MsgBaselineNedDepA(msg) => Ok(Sbp::MsgBaselineNedDepA(msg.into_valid_msg()?)),
4505 Sbp::MsgVelEcefDepA(msg) => Ok(Sbp::MsgVelEcefDepA(msg.into_valid_msg()?)),
4506 Sbp::MsgVelNedDepA(msg) => Ok(Sbp::MsgVelNedDepA(msg.into_valid_msg()?)),
4507 Sbp::MsgDopsDepA(msg) => Ok(Sbp::MsgDopsDepA(msg.into_valid_msg()?)),
4508 Sbp::MsgBaselineHeadingDepA(msg) => {
4509 Ok(Sbp::MsgBaselineHeadingDepA(msg.into_valid_msg()?))
4510 }
4511 Sbp::MsgDops(msg) => Ok(Sbp::MsgDops(msg.into_valid_msg()?)),
4512 Sbp::MsgPosEcef(msg) => Ok(Sbp::MsgPosEcef(msg.into_valid_msg()?)),
4513 Sbp::MsgPosLlh(msg) => Ok(Sbp::MsgPosLlh(msg.into_valid_msg()?)),
4514 Sbp::MsgBaselineEcef(msg) => Ok(Sbp::MsgBaselineEcef(msg.into_valid_msg()?)),
4515 Sbp::MsgBaselineNed(msg) => Ok(Sbp::MsgBaselineNed(msg.into_valid_msg()?)),
4516 Sbp::MsgVelEcef(msg) => Ok(Sbp::MsgVelEcef(msg.into_valid_msg()?)),
4517 Sbp::MsgVelNed(msg) => Ok(Sbp::MsgVelNed(msg.into_valid_msg()?)),
4518 Sbp::MsgBaselineHeading(msg) => Ok(Sbp::MsgBaselineHeading(msg.into_valid_msg()?)),
4519 Sbp::MsgAgeCorrections(msg) => Ok(Sbp::MsgAgeCorrections(msg.into_valid_msg()?)),
4520 Sbp::MsgPosLlhCov(msg) => Ok(Sbp::MsgPosLlhCov(msg.into_valid_msg()?)),
4521 Sbp::MsgVelNedCov(msg) => Ok(Sbp::MsgVelNedCov(msg.into_valid_msg()?)),
4522 Sbp::MsgVelBody(msg) => Ok(Sbp::MsgVelBody(msg.into_valid_msg()?)),
4523 Sbp::MsgPosEcefCov(msg) => Ok(Sbp::MsgPosEcefCov(msg.into_valid_msg()?)),
4524 Sbp::MsgVelEcefCov(msg) => Ok(Sbp::MsgVelEcefCov(msg.into_valid_msg()?)),
4525 Sbp::MsgProtectionLevelDepA(msg) => {
4526 Ok(Sbp::MsgProtectionLevelDepA(msg.into_valid_msg()?))
4527 }
4528 Sbp::MsgProtectionLevel(msg) => Ok(Sbp::MsgProtectionLevel(msg.into_valid_msg()?)),
4529 Sbp::MsgPosLlhAcc(msg) => Ok(Sbp::MsgPosLlhAcc(msg.into_valid_msg()?)),
4530 Sbp::MsgVelCog(msg) => Ok(Sbp::MsgVelCog(msg.into_valid_msg()?)),
4531 Sbp::MsgOrientQuat(msg) => Ok(Sbp::MsgOrientQuat(msg.into_valid_msg()?)),
4532 Sbp::MsgOrientEuler(msg) => Ok(Sbp::MsgOrientEuler(msg.into_valid_msg()?)),
4533 Sbp::MsgAngularRate(msg) => Ok(Sbp::MsgAngularRate(msg.into_valid_msg()?)),
4534 Sbp::MsgPosEcefGnss(msg) => Ok(Sbp::MsgPosEcefGnss(msg.into_valid_msg()?)),
4535 Sbp::MsgPosLlhGnss(msg) => Ok(Sbp::MsgPosLlhGnss(msg.into_valid_msg()?)),
4536 Sbp::MsgVelEcefGnss(msg) => Ok(Sbp::MsgVelEcefGnss(msg.into_valid_msg()?)),
4537 Sbp::MsgVelNedGnss(msg) => Ok(Sbp::MsgVelNedGnss(msg.into_valid_msg()?)),
4538 Sbp::MsgPosLlhCovGnss(msg) => Ok(Sbp::MsgPosLlhCovGnss(msg.into_valid_msg()?)),
4539 Sbp::MsgVelNedCovGnss(msg) => Ok(Sbp::MsgVelNedCovGnss(msg.into_valid_msg()?)),
4540 Sbp::MsgPosEcefCovGnss(msg) => Ok(Sbp::MsgPosEcefCovGnss(msg.into_valid_msg()?)),
4541 Sbp::MsgVelEcefCovGnss(msg) => Ok(Sbp::MsgVelEcefCovGnss(msg.into_valid_msg()?)),
4542 Sbp::MsgUtcLeapSecond(msg) => Ok(Sbp::MsgUtcLeapSecond(msg.into_valid_msg()?)),
4543 Sbp::MsgReferenceFrameParam(msg) => {
4544 Ok(Sbp::MsgReferenceFrameParam(msg.into_valid_msg()?))
4545 }
4546 Sbp::MsgPoseRelative(msg) => Ok(Sbp::MsgPoseRelative(msg.into_valid_msg()?)),
4547 Sbp::MsgNdbEvent(msg) => Ok(Sbp::MsgNdbEvent(msg.into_valid_msg()?)),
4548 Sbp::MsgLog(msg) => Ok(Sbp::MsgLog(msg.into_valid_msg()?)),
4549 Sbp::MsgFwd(msg) => Ok(Sbp::MsgFwd(msg.into_valid_msg()?)),
4550 Sbp::MsgSsrOrbitClockDepA(msg) => Ok(Sbp::MsgSsrOrbitClockDepA(msg.into_valid_msg()?)),
4551 Sbp::MsgSsrOrbitClock(msg) => Ok(Sbp::MsgSsrOrbitClock(msg.into_valid_msg()?)),
4552 Sbp::MsgSsrOrbitClockBounds(msg) => {
4553 Ok(Sbp::MsgSsrOrbitClockBounds(msg.into_valid_msg()?))
4554 }
4555 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => Ok(
4556 Sbp::MsgSsrOrbitClockBoundsDegradation(msg.into_valid_msg()?),
4557 ),
4558 Sbp::MsgSsrCodeBiases(msg) => Ok(Sbp::MsgSsrCodeBiases(msg.into_valid_msg()?)),
4559 Sbp::MsgSsrPhaseBiases(msg) => Ok(Sbp::MsgSsrPhaseBiases(msg.into_valid_msg()?)),
4560 Sbp::MsgSsrStecCorrectionDepA(msg) => {
4561 Ok(Sbp::MsgSsrStecCorrectionDepA(msg.into_valid_msg()?))
4562 }
4563 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => {
4564 Ok(Sbp::MsgSsrCodePhaseBiasesBounds(msg.into_valid_msg()?))
4565 }
4566 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => {
4567 Ok(Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg.into_valid_msg()?))
4568 }
4569 Sbp::MsgSsrGridDefinitionDepA(msg) => {
4570 Ok(Sbp::MsgSsrGridDefinitionDepA(msg.into_valid_msg()?))
4571 }
4572 Sbp::MsgSsrTileDefinitionDepA(msg) => {
4573 Ok(Sbp::MsgSsrTileDefinitionDepA(msg.into_valid_msg()?))
4574 }
4575 Sbp::MsgSsrTileDefinitionDepB(msg) => {
4576 Ok(Sbp::MsgSsrTileDefinitionDepB(msg.into_valid_msg()?))
4577 }
4578 Sbp::MsgSsrTileDefinition(msg) => Ok(Sbp::MsgSsrTileDefinition(msg.into_valid_msg()?)),
4579 Sbp::MsgSsrGriddedCorrectionDepA(msg) => {
4580 Ok(Sbp::MsgSsrGriddedCorrectionDepA(msg.into_valid_msg()?))
4581 }
4582 Sbp::MsgSsrStecCorrectionDep(msg) => {
4583 Ok(Sbp::MsgSsrStecCorrectionDep(msg.into_valid_msg()?))
4584 }
4585 Sbp::MsgSsrGriddedCorrection(msg) => {
4586 Ok(Sbp::MsgSsrGriddedCorrection(msg.into_valid_msg()?))
4587 }
4588 Sbp::MsgSsrStecCorrection(msg) => Ok(Sbp::MsgSsrStecCorrection(msg.into_valid_msg()?)),
4589 Sbp::MsgSsrGriddedCorrectionBounds(msg) => {
4590 Ok(Sbp::MsgSsrGriddedCorrectionBounds(msg.into_valid_msg()?))
4591 }
4592 Sbp::MsgSsrSatelliteApcDep(msg) => {
4593 Ok(Sbp::MsgSsrSatelliteApcDep(msg.into_valid_msg()?))
4594 }
4595 Sbp::MsgSsrSatelliteApc(msg) => Ok(Sbp::MsgSsrSatelliteApc(msg.into_valid_msg()?)),
4596 Sbp::MsgOsr(msg) => Ok(Sbp::MsgOsr(msg.into_valid_msg()?)),
4597 Sbp::MsgUserData(msg) => Ok(Sbp::MsgUserData(msg.into_valid_msg()?)),
4598 Sbp::MsgImuRaw(msg) => Ok(Sbp::MsgImuRaw(msg.into_valid_msg()?)),
4599 Sbp::MsgImuAux(msg) => Ok(Sbp::MsgImuAux(msg.into_valid_msg()?)),
4600 Sbp::MsgMagRaw(msg) => Ok(Sbp::MsgMagRaw(msg.into_valid_msg()?)),
4601 Sbp::MsgOdometry(msg) => Ok(Sbp::MsgOdometry(msg.into_valid_msg()?)),
4602 Sbp::MsgWheeltick(msg) => Ok(Sbp::MsgWheeltick(msg.into_valid_msg()?)),
4603 Sbp::MsgImuComp(msg) => Ok(Sbp::MsgImuComp(msg.into_valid_msg()?)),
4604 Sbp::MsgSsrFlagHighLevelDepA(msg) => {
4605 Ok(Sbp::MsgSsrFlagHighLevelDepA(msg.into_valid_msg()?))
4606 }
4607 Sbp::MsgSsrFlagHighLevel(msg) => Ok(Sbp::MsgSsrFlagHighLevel(msg.into_valid_msg()?)),
4608 Sbp::MsgSsrFlagSatellites(msg) => Ok(Sbp::MsgSsrFlagSatellites(msg.into_valid_msg()?)),
4609 Sbp::MsgSsrFlagTropoGridPoints(msg) => {
4610 Ok(Sbp::MsgSsrFlagTropoGridPoints(msg.into_valid_msg()?))
4611 }
4612 Sbp::MsgSsrFlagIonoGridPoints(msg) => {
4613 Ok(Sbp::MsgSsrFlagIonoGridPoints(msg.into_valid_msg()?))
4614 }
4615 Sbp::MsgSsrFlagIonoTileSatLos(msg) => {
4616 Ok(Sbp::MsgSsrFlagIonoTileSatLos(msg.into_valid_msg()?))
4617 }
4618 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => {
4619 Ok(Sbp::MsgSsrFlagIonoGridPointSatLos(msg.into_valid_msg()?))
4620 }
4621 Sbp::MsgAcknowledge(msg) => Ok(Sbp::MsgAcknowledge(msg.into_valid_msg()?)),
4622 Sbp::MsgEd25519SignatureDepA(msg) => {
4623 Ok(Sbp::MsgEd25519SignatureDepA(msg.into_valid_msg()?))
4624 }
4625 Sbp::MsgEd25519CertificateDep(msg) => {
4626 Ok(Sbp::MsgEd25519CertificateDep(msg.into_valid_msg()?))
4627 }
4628 Sbp::MsgEd25519SignatureDepB(msg) => {
4629 Ok(Sbp::MsgEd25519SignatureDepB(msg.into_valid_msg()?))
4630 }
4631 Sbp::MsgEcdsaCertificate(msg) => Ok(Sbp::MsgEcdsaCertificate(msg.into_valid_msg()?)),
4632 Sbp::MsgCertificateChainDep(msg) => {
4633 Ok(Sbp::MsgCertificateChainDep(msg.into_valid_msg()?))
4634 }
4635 Sbp::MsgEcdsaSignatureDepA(msg) => {
4636 Ok(Sbp::MsgEcdsaSignatureDepA(msg.into_valid_msg()?))
4637 }
4638 Sbp::MsgEcdsaSignatureDepB(msg) => {
4639 Ok(Sbp::MsgEcdsaSignatureDepB(msg.into_valid_msg()?))
4640 }
4641 Sbp::MsgEcdsaSignature(msg) => Ok(Sbp::MsgEcdsaSignature(msg.into_valid_msg()?)),
4642 Sbp::MsgCertificateChain(msg) => Ok(Sbp::MsgCertificateChain(msg.into_valid_msg()?)),
4643 Sbp::MsgAesCmacSignature(msg) => Ok(Sbp::MsgAesCmacSignature(msg.into_valid_msg()?)),
4644 Sbp::MsgFileioConfigReq(msg) => Ok(Sbp::MsgFileioConfigReq(msg.into_valid_msg()?)),
4645 Sbp::MsgFileioConfigResp(msg) => Ok(Sbp::MsgFileioConfigResp(msg.into_valid_msg()?)),
4646 Sbp::MsgSbasRaw(msg) => Ok(Sbp::MsgSbasRaw(msg.into_valid_msg()?)),
4647 Sbp::MsgLinuxCpuStateDepA(msg) => Ok(Sbp::MsgLinuxCpuStateDepA(msg.into_valid_msg()?)),
4648 Sbp::MsgLinuxMemStateDepA(msg) => Ok(Sbp::MsgLinuxMemStateDepA(msg.into_valid_msg()?)),
4649 Sbp::MsgLinuxSysStateDepA(msg) => Ok(Sbp::MsgLinuxSysStateDepA(msg.into_valid_msg()?)),
4650 Sbp::MsgLinuxProcessSocketCounts(msg) => {
4651 Ok(Sbp::MsgLinuxProcessSocketCounts(msg.into_valid_msg()?))
4652 }
4653 Sbp::MsgLinuxProcessSocketQueues(msg) => {
4654 Ok(Sbp::MsgLinuxProcessSocketQueues(msg.into_valid_msg()?))
4655 }
4656 Sbp::MsgLinuxSocketUsage(msg) => Ok(Sbp::MsgLinuxSocketUsage(msg.into_valid_msg()?)),
4657 Sbp::MsgLinuxProcessFdCount(msg) => {
4658 Ok(Sbp::MsgLinuxProcessFdCount(msg.into_valid_msg()?))
4659 }
4660 Sbp::MsgLinuxProcessFdSummary(msg) => {
4661 Ok(Sbp::MsgLinuxProcessFdSummary(msg.into_valid_msg()?))
4662 }
4663 Sbp::MsgLinuxCpuState(msg) => Ok(Sbp::MsgLinuxCpuState(msg.into_valid_msg()?)),
4664 Sbp::MsgLinuxMemState(msg) => Ok(Sbp::MsgLinuxMemState(msg.into_valid_msg()?)),
4665 Sbp::MsgLinuxSysState(msg) => Ok(Sbp::MsgLinuxSysState(msg.into_valid_msg()?)),
4666 Sbp::MsgMeasurementPoint(msg) => Ok(Sbp::MsgMeasurementPoint(msg.into_valid_msg()?)),
4667 Sbp::MsgProfilingSystemInfo(msg) => {
4668 Ok(Sbp::MsgProfilingSystemInfo(msg.into_valid_msg()?))
4669 }
4670 Sbp::MsgProfilingThreadInfo(msg) => {
4671 Ok(Sbp::MsgProfilingThreadInfo(msg.into_valid_msg()?))
4672 }
4673 Sbp::MsgProfilingResourceCounter(msg) => {
4674 Ok(Sbp::MsgProfilingResourceCounter(msg.into_valid_msg()?))
4675 }
4676 Sbp::MsgStartup(msg) => Ok(Sbp::MsgStartup(msg.into_valid_msg()?)),
4677 Sbp::MsgDgnssStatus(msg) => Ok(Sbp::MsgDgnssStatus(msg.into_valid_msg()?)),
4678 Sbp::MsgInsStatus(msg) => Ok(Sbp::MsgInsStatus(msg.into_valid_msg()?)),
4679 Sbp::MsgCsacTelemetry(msg) => Ok(Sbp::MsgCsacTelemetry(msg.into_valid_msg()?)),
4680 Sbp::MsgCsacTelemetryLabels(msg) => {
4681 Ok(Sbp::MsgCsacTelemetryLabels(msg.into_valid_msg()?))
4682 }
4683 Sbp::MsgInsUpdates(msg) => Ok(Sbp::MsgInsUpdates(msg.into_valid_msg()?)),
4684 Sbp::MsgGnssTimeOffset(msg) => Ok(Sbp::MsgGnssTimeOffset(msg.into_valid_msg()?)),
4685 Sbp::MsgPpsTime(msg) => Ok(Sbp::MsgPpsTime(msg.into_valid_msg()?)),
4686 Sbp::MsgSensorAidEvent(msg) => Ok(Sbp::MsgSensorAidEvent(msg.into_valid_msg()?)),
4687 Sbp::MsgGroupMeta(msg) => Ok(Sbp::MsgGroupMeta(msg.into_valid_msg()?)),
4688 Sbp::MsgSolnMeta(msg) => Ok(Sbp::MsgSolnMeta(msg.into_valid_msg()?)),
4689 Sbp::MsgSolnMetaDepA(msg) => Ok(Sbp::MsgSolnMetaDepA(msg.into_valid_msg()?)),
4690 Sbp::MsgStatusJournal(msg) => Ok(Sbp::MsgStatusJournal(msg.into_valid_msg()?)),
4691 Sbp::MsgStatusReport(msg) => Ok(Sbp::MsgStatusReport(msg.into_valid_msg()?)),
4692 Sbp::MsgHeartbeat(msg) => Ok(Sbp::MsgHeartbeat(msg.into_valid_msg()?)),
4693 Sbp::Unknown(msg) => Ok(Sbp::Unknown(msg.into_valid_msg()?)),
4694 Sbp::Invalid(msg) => {
4695 let res = msg.into_valid_msg();
4697 debug_assert!(res.is_err(), "invalid messages may never be valid");
4698 Ok(Sbp::Invalid(res?))
4699 }
4700 }
4701 }
4702}
4703
4704impl WireFormat for Sbp {
4705 const MIN_LEN: usize = crate::MAX_FRAME_LEN;
4706
4707 fn parse_unchecked<B: Buf>(_: &mut B) -> Self {
4708 unimplemented!("Sbp must be parsed with Sbp::from_parts");
4709 }
4710
4711 fn write<B: BufMut>(&self, buf: &mut B) {
4712 match self {
4713 Sbp::MsgPrintDep(msg) => WireFormat::write(msg, buf),
4714 Sbp::MsgTrackingStateDetailedDep(msg) => WireFormat::write(msg, buf),
4715 Sbp::MsgTrackingStateDepB(msg) => WireFormat::write(msg, buf),
4716 Sbp::MsgAcqResultDepB(msg) => WireFormat::write(msg, buf),
4717 Sbp::MsgAcqResultDepA(msg) => WireFormat::write(msg, buf),
4718 Sbp::MsgTrackingStateDepA(msg) => WireFormat::write(msg, buf),
4719 Sbp::MsgThreadState(msg) => WireFormat::write(msg, buf),
4720 Sbp::MsgUartStateDepa(msg) => WireFormat::write(msg, buf),
4721 Sbp::MsgIarState(msg) => WireFormat::write(msg, buf),
4722 Sbp::MsgEphemerisDepA(msg) => WireFormat::write(msg, buf),
4723 Sbp::MsgMaskSatelliteDep(msg) => WireFormat::write(msg, buf),
4724 Sbp::MsgTrackingIqDepA(msg) => WireFormat::write(msg, buf),
4725 Sbp::MsgUartState(msg) => WireFormat::write(msg, buf),
4726 Sbp::MsgAcqSvProfileDep(msg) => WireFormat::write(msg, buf),
4727 Sbp::MsgAcqResultDepC(msg) => WireFormat::write(msg, buf),
4728 Sbp::MsgTrackingStateDetailedDepA(msg) => WireFormat::write(msg, buf),
4729 Sbp::MsgResetFilters(msg) => WireFormat::write(msg, buf),
4730 Sbp::MsgInitBaseDep(msg) => WireFormat::write(msg, buf),
4731 Sbp::MsgMaskSatellite(msg) => WireFormat::write(msg, buf),
4732 Sbp::MsgTrackingIqDepB(msg) => WireFormat::write(msg, buf),
4733 Sbp::MsgTrackingIq(msg) => WireFormat::write(msg, buf),
4734 Sbp::MsgAcqSvProfile(msg) => WireFormat::write(msg, buf),
4735 Sbp::MsgAcqResult(msg) => WireFormat::write(msg, buf),
4736 Sbp::MsgTrackingState(msg) => WireFormat::write(msg, buf),
4737 Sbp::MsgObsDepB(msg) => WireFormat::write(msg, buf),
4738 Sbp::MsgBasePosLlh(msg) => WireFormat::write(msg, buf),
4739 Sbp::MsgObsDepA(msg) => WireFormat::write(msg, buf),
4740 Sbp::MsgEphemerisDepB(msg) => WireFormat::write(msg, buf),
4741 Sbp::MsgEphemerisDepC(msg) => WireFormat::write(msg, buf),
4742 Sbp::MsgBasePosEcef(msg) => WireFormat::write(msg, buf),
4743 Sbp::MsgObsDepC(msg) => WireFormat::write(msg, buf),
4744 Sbp::MsgObs(msg) => WireFormat::write(msg, buf),
4745 Sbp::MsgSpecanDep(msg) => WireFormat::write(msg, buf),
4746 Sbp::MsgSpecan(msg) => WireFormat::write(msg, buf),
4747 Sbp::MsgMeasurementState(msg) => WireFormat::write(msg, buf),
4748 Sbp::MsgSetTime(msg) => WireFormat::write(msg, buf),
4749 Sbp::MsgAlmanac(msg) => WireFormat::write(msg, buf),
4750 Sbp::MsgAlmanacGpsDep(msg) => WireFormat::write(msg, buf),
4751 Sbp::MsgAlmanacGloDep(msg) => WireFormat::write(msg, buf),
4752 Sbp::MsgAlmanacGps(msg) => WireFormat::write(msg, buf),
4753 Sbp::MsgAlmanacGlo(msg) => WireFormat::write(msg, buf),
4754 Sbp::MsgGloBiases(msg) => WireFormat::write(msg, buf),
4755 Sbp::MsgEphemerisDepD(msg) => WireFormat::write(msg, buf),
4756 Sbp::MsgEphemerisGpsDepE(msg) => WireFormat::write(msg, buf),
4757 Sbp::MsgEphemerisSbasDepA(msg) => WireFormat::write(msg, buf),
4758 Sbp::MsgEphemerisGloDepA(msg) => WireFormat::write(msg, buf),
4759 Sbp::MsgEphemerisSbasDepB(msg) => WireFormat::write(msg, buf),
4760 Sbp::MsgEphemerisGloDepB(msg) => WireFormat::write(msg, buf),
4761 Sbp::MsgEphemerisGpsDepF(msg) => WireFormat::write(msg, buf),
4762 Sbp::MsgEphemerisGloDepC(msg) => WireFormat::write(msg, buf),
4763 Sbp::MsgEphemerisGloDepD(msg) => WireFormat::write(msg, buf),
4764 Sbp::MsgEphemerisBds(msg) => WireFormat::write(msg, buf),
4765 Sbp::MsgEphemerisGps(msg) => WireFormat::write(msg, buf),
4766 Sbp::MsgEphemerisGlo(msg) => WireFormat::write(msg, buf),
4767 Sbp::MsgEphemerisSbas(msg) => WireFormat::write(msg, buf),
4768 Sbp::MsgEphemerisGal(msg) => WireFormat::write(msg, buf),
4769 Sbp::MsgEphemerisQzss(msg) => WireFormat::write(msg, buf),
4770 Sbp::MsgIono(msg) => WireFormat::write(msg, buf),
4771 Sbp::MsgSvConfigurationGpsDep(msg) => WireFormat::write(msg, buf),
4772 Sbp::MsgGroupDelayDepA(msg) => WireFormat::write(msg, buf),
4773 Sbp::MsgGroupDelayDepB(msg) => WireFormat::write(msg, buf),
4774 Sbp::MsgGroupDelay(msg) => WireFormat::write(msg, buf),
4775 Sbp::MsgEphemerisGalDepA(msg) => WireFormat::write(msg, buf),
4776 Sbp::MsgGnssCapb(msg) => WireFormat::write(msg, buf),
4777 Sbp::MsgSvAzEl(msg) => WireFormat::write(msg, buf),
4778 Sbp::MsgSettingsWrite(msg) => WireFormat::write(msg, buf),
4779 Sbp::MsgSettingsSave(msg) => WireFormat::write(msg, buf),
4780 Sbp::MsgSettingsReadByIndexReq(msg) => WireFormat::write(msg, buf),
4781 Sbp::MsgFileioReadResp(msg) => WireFormat::write(msg, buf),
4782 Sbp::MsgSettingsReadReq(msg) => WireFormat::write(msg, buf),
4783 Sbp::MsgSettingsReadResp(msg) => WireFormat::write(msg, buf),
4784 Sbp::MsgSettingsReadByIndexDone(msg) => WireFormat::write(msg, buf),
4785 Sbp::MsgSettingsReadByIndexResp(msg) => WireFormat::write(msg, buf),
4786 Sbp::MsgFileioReadReq(msg) => WireFormat::write(msg, buf),
4787 Sbp::MsgFileioReadDirReq(msg) => WireFormat::write(msg, buf),
4788 Sbp::MsgFileioReadDirResp(msg) => WireFormat::write(msg, buf),
4789 Sbp::MsgFileioWriteResp(msg) => WireFormat::write(msg, buf),
4790 Sbp::MsgFileioRemove(msg) => WireFormat::write(msg, buf),
4791 Sbp::MsgFileioWriteReq(msg) => WireFormat::write(msg, buf),
4792 Sbp::MsgSettingsRegister(msg) => WireFormat::write(msg, buf),
4793 Sbp::MsgSettingsWriteResp(msg) => WireFormat::write(msg, buf),
4794 Sbp::MsgBootloaderHandshakeDepA(msg) => WireFormat::write(msg, buf),
4795 Sbp::MsgBootloaderJumpToApp(msg) => WireFormat::write(msg, buf),
4796 Sbp::MsgResetDep(msg) => WireFormat::write(msg, buf),
4797 Sbp::MsgBootloaderHandshakeReq(msg) => WireFormat::write(msg, buf),
4798 Sbp::MsgBootloaderHandshakeResp(msg) => WireFormat::write(msg, buf),
4799 Sbp::MsgDeviceMonitor(msg) => WireFormat::write(msg, buf),
4800 Sbp::MsgReset(msg) => WireFormat::write(msg, buf),
4801 Sbp::MsgCommandReq(msg) => WireFormat::write(msg, buf),
4802 Sbp::MsgCommandResp(msg) => WireFormat::write(msg, buf),
4803 Sbp::MsgNetworkStateReq(msg) => WireFormat::write(msg, buf),
4804 Sbp::MsgNetworkStateResp(msg) => WireFormat::write(msg, buf),
4805 Sbp::MsgCommandOutput(msg) => WireFormat::write(msg, buf),
4806 Sbp::MsgNetworkBandwidthUsage(msg) => WireFormat::write(msg, buf),
4807 Sbp::MsgCellModemStatus(msg) => WireFormat::write(msg, buf),
4808 Sbp::MsgFrontEndGain(msg) => WireFormat::write(msg, buf),
4809 Sbp::MsgCwResults(msg) => WireFormat::write(msg, buf),
4810 Sbp::MsgCwStart(msg) => WireFormat::write(msg, buf),
4811 Sbp::MsgNapDeviceDnaResp(msg) => WireFormat::write(msg, buf),
4812 Sbp::MsgNapDeviceDnaReq(msg) => WireFormat::write(msg, buf),
4813 Sbp::MsgFlashDone(msg) => WireFormat::write(msg, buf),
4814 Sbp::MsgFlashReadResp(msg) => WireFormat::write(msg, buf),
4815 Sbp::MsgFlashErase(msg) => WireFormat::write(msg, buf),
4816 Sbp::MsgStmFlashLockSector(msg) => WireFormat::write(msg, buf),
4817 Sbp::MsgStmFlashUnlockSector(msg) => WireFormat::write(msg, buf),
4818 Sbp::MsgStmUniqueIdResp(msg) => WireFormat::write(msg, buf),
4819 Sbp::MsgFlashProgram(msg) => WireFormat::write(msg, buf),
4820 Sbp::MsgFlashReadReq(msg) => WireFormat::write(msg, buf),
4821 Sbp::MsgStmUniqueIdReq(msg) => WireFormat::write(msg, buf),
4822 Sbp::MsgM25FlashWriteStatus(msg) => WireFormat::write(msg, buf),
4823 Sbp::MsgGpsTimeDepA(msg) => WireFormat::write(msg, buf),
4824 Sbp::MsgExtEvent(msg) => WireFormat::write(msg, buf),
4825 Sbp::MsgGpsTime(msg) => WireFormat::write(msg, buf),
4826 Sbp::MsgUtcTime(msg) => WireFormat::write(msg, buf),
4827 Sbp::MsgGpsTimeGnss(msg) => WireFormat::write(msg, buf),
4828 Sbp::MsgUtcTimeGnss(msg) => WireFormat::write(msg, buf),
4829 Sbp::MsgTelSv(msg) => WireFormat::write(msg, buf),
4830 Sbp::MsgSettingsRegisterResp(msg) => WireFormat::write(msg, buf),
4831 Sbp::MsgPosEcefDepA(msg) => WireFormat::write(msg, buf),
4832 Sbp::MsgPosLlhDepA(msg) => WireFormat::write(msg, buf),
4833 Sbp::MsgBaselineEcefDepA(msg) => WireFormat::write(msg, buf),
4834 Sbp::MsgBaselineNedDepA(msg) => WireFormat::write(msg, buf),
4835 Sbp::MsgVelEcefDepA(msg) => WireFormat::write(msg, buf),
4836 Sbp::MsgVelNedDepA(msg) => WireFormat::write(msg, buf),
4837 Sbp::MsgDopsDepA(msg) => WireFormat::write(msg, buf),
4838 Sbp::MsgBaselineHeadingDepA(msg) => WireFormat::write(msg, buf),
4839 Sbp::MsgDops(msg) => WireFormat::write(msg, buf),
4840 Sbp::MsgPosEcef(msg) => WireFormat::write(msg, buf),
4841 Sbp::MsgPosLlh(msg) => WireFormat::write(msg, buf),
4842 Sbp::MsgBaselineEcef(msg) => WireFormat::write(msg, buf),
4843 Sbp::MsgBaselineNed(msg) => WireFormat::write(msg, buf),
4844 Sbp::MsgVelEcef(msg) => WireFormat::write(msg, buf),
4845 Sbp::MsgVelNed(msg) => WireFormat::write(msg, buf),
4846 Sbp::MsgBaselineHeading(msg) => WireFormat::write(msg, buf),
4847 Sbp::MsgAgeCorrections(msg) => WireFormat::write(msg, buf),
4848 Sbp::MsgPosLlhCov(msg) => WireFormat::write(msg, buf),
4849 Sbp::MsgVelNedCov(msg) => WireFormat::write(msg, buf),
4850 Sbp::MsgVelBody(msg) => WireFormat::write(msg, buf),
4851 Sbp::MsgPosEcefCov(msg) => WireFormat::write(msg, buf),
4852 Sbp::MsgVelEcefCov(msg) => WireFormat::write(msg, buf),
4853 Sbp::MsgProtectionLevelDepA(msg) => WireFormat::write(msg, buf),
4854 Sbp::MsgProtectionLevel(msg) => WireFormat::write(msg, buf),
4855 Sbp::MsgPosLlhAcc(msg) => WireFormat::write(msg, buf),
4856 Sbp::MsgVelCog(msg) => WireFormat::write(msg, buf),
4857 Sbp::MsgOrientQuat(msg) => WireFormat::write(msg, buf),
4858 Sbp::MsgOrientEuler(msg) => WireFormat::write(msg, buf),
4859 Sbp::MsgAngularRate(msg) => WireFormat::write(msg, buf),
4860 Sbp::MsgPosEcefGnss(msg) => WireFormat::write(msg, buf),
4861 Sbp::MsgPosLlhGnss(msg) => WireFormat::write(msg, buf),
4862 Sbp::MsgVelEcefGnss(msg) => WireFormat::write(msg, buf),
4863 Sbp::MsgVelNedGnss(msg) => WireFormat::write(msg, buf),
4864 Sbp::MsgPosLlhCovGnss(msg) => WireFormat::write(msg, buf),
4865 Sbp::MsgVelNedCovGnss(msg) => WireFormat::write(msg, buf),
4866 Sbp::MsgPosEcefCovGnss(msg) => WireFormat::write(msg, buf),
4867 Sbp::MsgVelEcefCovGnss(msg) => WireFormat::write(msg, buf),
4868 Sbp::MsgUtcLeapSecond(msg) => WireFormat::write(msg, buf),
4869 Sbp::MsgReferenceFrameParam(msg) => WireFormat::write(msg, buf),
4870 Sbp::MsgPoseRelative(msg) => WireFormat::write(msg, buf),
4871 Sbp::MsgNdbEvent(msg) => WireFormat::write(msg, buf),
4872 Sbp::MsgLog(msg) => WireFormat::write(msg, buf),
4873 Sbp::MsgFwd(msg) => WireFormat::write(msg, buf),
4874 Sbp::MsgSsrOrbitClockDepA(msg) => WireFormat::write(msg, buf),
4875 Sbp::MsgSsrOrbitClock(msg) => WireFormat::write(msg, buf),
4876 Sbp::MsgSsrOrbitClockBounds(msg) => WireFormat::write(msg, buf),
4877 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => WireFormat::write(msg, buf),
4878 Sbp::MsgSsrCodeBiases(msg) => WireFormat::write(msg, buf),
4879 Sbp::MsgSsrPhaseBiases(msg) => WireFormat::write(msg, buf),
4880 Sbp::MsgSsrStecCorrectionDepA(msg) => WireFormat::write(msg, buf),
4881 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => WireFormat::write(msg, buf),
4882 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => WireFormat::write(msg, buf),
4883 Sbp::MsgSsrGridDefinitionDepA(msg) => WireFormat::write(msg, buf),
4884 Sbp::MsgSsrTileDefinitionDepA(msg) => WireFormat::write(msg, buf),
4885 Sbp::MsgSsrTileDefinitionDepB(msg) => WireFormat::write(msg, buf),
4886 Sbp::MsgSsrTileDefinition(msg) => WireFormat::write(msg, buf),
4887 Sbp::MsgSsrGriddedCorrectionDepA(msg) => WireFormat::write(msg, buf),
4888 Sbp::MsgSsrStecCorrectionDep(msg) => WireFormat::write(msg, buf),
4889 Sbp::MsgSsrGriddedCorrection(msg) => WireFormat::write(msg, buf),
4890 Sbp::MsgSsrStecCorrection(msg) => WireFormat::write(msg, buf),
4891 Sbp::MsgSsrGriddedCorrectionBounds(msg) => WireFormat::write(msg, buf),
4892 Sbp::MsgSsrSatelliteApcDep(msg) => WireFormat::write(msg, buf),
4893 Sbp::MsgSsrSatelliteApc(msg) => WireFormat::write(msg, buf),
4894 Sbp::MsgOsr(msg) => WireFormat::write(msg, buf),
4895 Sbp::MsgUserData(msg) => WireFormat::write(msg, buf),
4896 Sbp::MsgImuRaw(msg) => WireFormat::write(msg, buf),
4897 Sbp::MsgImuAux(msg) => WireFormat::write(msg, buf),
4898 Sbp::MsgMagRaw(msg) => WireFormat::write(msg, buf),
4899 Sbp::MsgOdometry(msg) => WireFormat::write(msg, buf),
4900 Sbp::MsgWheeltick(msg) => WireFormat::write(msg, buf),
4901 Sbp::MsgImuComp(msg) => WireFormat::write(msg, buf),
4902 Sbp::MsgSsrFlagHighLevelDepA(msg) => WireFormat::write(msg, buf),
4903 Sbp::MsgSsrFlagHighLevel(msg) => WireFormat::write(msg, buf),
4904 Sbp::MsgSsrFlagSatellites(msg) => WireFormat::write(msg, buf),
4905 Sbp::MsgSsrFlagTropoGridPoints(msg) => WireFormat::write(msg, buf),
4906 Sbp::MsgSsrFlagIonoGridPoints(msg) => WireFormat::write(msg, buf),
4907 Sbp::MsgSsrFlagIonoTileSatLos(msg) => WireFormat::write(msg, buf),
4908 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => WireFormat::write(msg, buf),
4909 Sbp::MsgAcknowledge(msg) => WireFormat::write(msg, buf),
4910 Sbp::MsgEd25519SignatureDepA(msg) => WireFormat::write(msg, buf),
4911 Sbp::MsgEd25519CertificateDep(msg) => WireFormat::write(msg, buf),
4912 Sbp::MsgEd25519SignatureDepB(msg) => WireFormat::write(msg, buf),
4913 Sbp::MsgEcdsaCertificate(msg) => WireFormat::write(msg, buf),
4914 Sbp::MsgCertificateChainDep(msg) => WireFormat::write(msg, buf),
4915 Sbp::MsgEcdsaSignatureDepA(msg) => WireFormat::write(msg, buf),
4916 Sbp::MsgEcdsaSignatureDepB(msg) => WireFormat::write(msg, buf),
4917 Sbp::MsgEcdsaSignature(msg) => WireFormat::write(msg, buf),
4918 Sbp::MsgCertificateChain(msg) => WireFormat::write(msg, buf),
4919 Sbp::MsgAesCmacSignature(msg) => WireFormat::write(msg, buf),
4920 Sbp::MsgFileioConfigReq(msg) => WireFormat::write(msg, buf),
4921 Sbp::MsgFileioConfigResp(msg) => WireFormat::write(msg, buf),
4922 Sbp::MsgSbasRaw(msg) => WireFormat::write(msg, buf),
4923 Sbp::MsgLinuxCpuStateDepA(msg) => WireFormat::write(msg, buf),
4924 Sbp::MsgLinuxMemStateDepA(msg) => WireFormat::write(msg, buf),
4925 Sbp::MsgLinuxSysStateDepA(msg) => WireFormat::write(msg, buf),
4926 Sbp::MsgLinuxProcessSocketCounts(msg) => WireFormat::write(msg, buf),
4927 Sbp::MsgLinuxProcessSocketQueues(msg) => WireFormat::write(msg, buf),
4928 Sbp::MsgLinuxSocketUsage(msg) => WireFormat::write(msg, buf),
4929 Sbp::MsgLinuxProcessFdCount(msg) => WireFormat::write(msg, buf),
4930 Sbp::MsgLinuxProcessFdSummary(msg) => WireFormat::write(msg, buf),
4931 Sbp::MsgLinuxCpuState(msg) => WireFormat::write(msg, buf),
4932 Sbp::MsgLinuxMemState(msg) => WireFormat::write(msg, buf),
4933 Sbp::MsgLinuxSysState(msg) => WireFormat::write(msg, buf),
4934 Sbp::MsgMeasurementPoint(msg) => WireFormat::write(msg, buf),
4935 Sbp::MsgProfilingSystemInfo(msg) => WireFormat::write(msg, buf),
4936 Sbp::MsgProfilingThreadInfo(msg) => WireFormat::write(msg, buf),
4937 Sbp::MsgProfilingResourceCounter(msg) => WireFormat::write(msg, buf),
4938 Sbp::MsgStartup(msg) => WireFormat::write(msg, buf),
4939 Sbp::MsgDgnssStatus(msg) => WireFormat::write(msg, buf),
4940 Sbp::MsgInsStatus(msg) => WireFormat::write(msg, buf),
4941 Sbp::MsgCsacTelemetry(msg) => WireFormat::write(msg, buf),
4942 Sbp::MsgCsacTelemetryLabels(msg) => WireFormat::write(msg, buf),
4943 Sbp::MsgInsUpdates(msg) => WireFormat::write(msg, buf),
4944 Sbp::MsgGnssTimeOffset(msg) => WireFormat::write(msg, buf),
4945 Sbp::MsgPpsTime(msg) => WireFormat::write(msg, buf),
4946 Sbp::MsgSensorAidEvent(msg) => WireFormat::write(msg, buf),
4947 Sbp::MsgGroupMeta(msg) => WireFormat::write(msg, buf),
4948 Sbp::MsgSolnMeta(msg) => WireFormat::write(msg, buf),
4949 Sbp::MsgSolnMetaDepA(msg) => WireFormat::write(msg, buf),
4950 Sbp::MsgStatusJournal(msg) => WireFormat::write(msg, buf),
4951 Sbp::MsgStatusReport(msg) => WireFormat::write(msg, buf),
4952 Sbp::MsgHeartbeat(msg) => WireFormat::write(msg, buf),
4953 Sbp::Unknown(msg) => WireFormat::write(msg, buf),
4954 Sbp::Invalid(msg) => WireFormat::write(msg, buf),
4955 }
4956 }
4957
4958 fn len(&self) -> usize {
4959 match self {
4960 Sbp::MsgPrintDep(msg) => WireFormat::len(msg),
4961 Sbp::MsgTrackingStateDetailedDep(msg) => WireFormat::len(msg),
4962 Sbp::MsgTrackingStateDepB(msg) => WireFormat::len(msg),
4963 Sbp::MsgAcqResultDepB(msg) => WireFormat::len(msg),
4964 Sbp::MsgAcqResultDepA(msg) => WireFormat::len(msg),
4965 Sbp::MsgTrackingStateDepA(msg) => WireFormat::len(msg),
4966 Sbp::MsgThreadState(msg) => WireFormat::len(msg),
4967 Sbp::MsgUartStateDepa(msg) => WireFormat::len(msg),
4968 Sbp::MsgIarState(msg) => WireFormat::len(msg),
4969 Sbp::MsgEphemerisDepA(msg) => WireFormat::len(msg),
4970 Sbp::MsgMaskSatelliteDep(msg) => WireFormat::len(msg),
4971 Sbp::MsgTrackingIqDepA(msg) => WireFormat::len(msg),
4972 Sbp::MsgUartState(msg) => WireFormat::len(msg),
4973 Sbp::MsgAcqSvProfileDep(msg) => WireFormat::len(msg),
4974 Sbp::MsgAcqResultDepC(msg) => WireFormat::len(msg),
4975 Sbp::MsgTrackingStateDetailedDepA(msg) => WireFormat::len(msg),
4976 Sbp::MsgResetFilters(msg) => WireFormat::len(msg),
4977 Sbp::MsgInitBaseDep(msg) => WireFormat::len(msg),
4978 Sbp::MsgMaskSatellite(msg) => WireFormat::len(msg),
4979 Sbp::MsgTrackingIqDepB(msg) => WireFormat::len(msg),
4980 Sbp::MsgTrackingIq(msg) => WireFormat::len(msg),
4981 Sbp::MsgAcqSvProfile(msg) => WireFormat::len(msg),
4982 Sbp::MsgAcqResult(msg) => WireFormat::len(msg),
4983 Sbp::MsgTrackingState(msg) => WireFormat::len(msg),
4984 Sbp::MsgObsDepB(msg) => WireFormat::len(msg),
4985 Sbp::MsgBasePosLlh(msg) => WireFormat::len(msg),
4986 Sbp::MsgObsDepA(msg) => WireFormat::len(msg),
4987 Sbp::MsgEphemerisDepB(msg) => WireFormat::len(msg),
4988 Sbp::MsgEphemerisDepC(msg) => WireFormat::len(msg),
4989 Sbp::MsgBasePosEcef(msg) => WireFormat::len(msg),
4990 Sbp::MsgObsDepC(msg) => WireFormat::len(msg),
4991 Sbp::MsgObs(msg) => WireFormat::len(msg),
4992 Sbp::MsgSpecanDep(msg) => WireFormat::len(msg),
4993 Sbp::MsgSpecan(msg) => WireFormat::len(msg),
4994 Sbp::MsgMeasurementState(msg) => WireFormat::len(msg),
4995 Sbp::MsgSetTime(msg) => WireFormat::len(msg),
4996 Sbp::MsgAlmanac(msg) => WireFormat::len(msg),
4997 Sbp::MsgAlmanacGpsDep(msg) => WireFormat::len(msg),
4998 Sbp::MsgAlmanacGloDep(msg) => WireFormat::len(msg),
4999 Sbp::MsgAlmanacGps(msg) => WireFormat::len(msg),
5000 Sbp::MsgAlmanacGlo(msg) => WireFormat::len(msg),
5001 Sbp::MsgGloBiases(msg) => WireFormat::len(msg),
5002 Sbp::MsgEphemerisDepD(msg) => WireFormat::len(msg),
5003 Sbp::MsgEphemerisGpsDepE(msg) => WireFormat::len(msg),
5004 Sbp::MsgEphemerisSbasDepA(msg) => WireFormat::len(msg),
5005 Sbp::MsgEphemerisGloDepA(msg) => WireFormat::len(msg),
5006 Sbp::MsgEphemerisSbasDepB(msg) => WireFormat::len(msg),
5007 Sbp::MsgEphemerisGloDepB(msg) => WireFormat::len(msg),
5008 Sbp::MsgEphemerisGpsDepF(msg) => WireFormat::len(msg),
5009 Sbp::MsgEphemerisGloDepC(msg) => WireFormat::len(msg),
5010 Sbp::MsgEphemerisGloDepD(msg) => WireFormat::len(msg),
5011 Sbp::MsgEphemerisBds(msg) => WireFormat::len(msg),
5012 Sbp::MsgEphemerisGps(msg) => WireFormat::len(msg),
5013 Sbp::MsgEphemerisGlo(msg) => WireFormat::len(msg),
5014 Sbp::MsgEphemerisSbas(msg) => WireFormat::len(msg),
5015 Sbp::MsgEphemerisGal(msg) => WireFormat::len(msg),
5016 Sbp::MsgEphemerisQzss(msg) => WireFormat::len(msg),
5017 Sbp::MsgIono(msg) => WireFormat::len(msg),
5018 Sbp::MsgSvConfigurationGpsDep(msg) => WireFormat::len(msg),
5019 Sbp::MsgGroupDelayDepA(msg) => WireFormat::len(msg),
5020 Sbp::MsgGroupDelayDepB(msg) => WireFormat::len(msg),
5021 Sbp::MsgGroupDelay(msg) => WireFormat::len(msg),
5022 Sbp::MsgEphemerisGalDepA(msg) => WireFormat::len(msg),
5023 Sbp::MsgGnssCapb(msg) => WireFormat::len(msg),
5024 Sbp::MsgSvAzEl(msg) => WireFormat::len(msg),
5025 Sbp::MsgSettingsWrite(msg) => WireFormat::len(msg),
5026 Sbp::MsgSettingsSave(msg) => WireFormat::len(msg),
5027 Sbp::MsgSettingsReadByIndexReq(msg) => WireFormat::len(msg),
5028 Sbp::MsgFileioReadResp(msg) => WireFormat::len(msg),
5029 Sbp::MsgSettingsReadReq(msg) => WireFormat::len(msg),
5030 Sbp::MsgSettingsReadResp(msg) => WireFormat::len(msg),
5031 Sbp::MsgSettingsReadByIndexDone(msg) => WireFormat::len(msg),
5032 Sbp::MsgSettingsReadByIndexResp(msg) => WireFormat::len(msg),
5033 Sbp::MsgFileioReadReq(msg) => WireFormat::len(msg),
5034 Sbp::MsgFileioReadDirReq(msg) => WireFormat::len(msg),
5035 Sbp::MsgFileioReadDirResp(msg) => WireFormat::len(msg),
5036 Sbp::MsgFileioWriteResp(msg) => WireFormat::len(msg),
5037 Sbp::MsgFileioRemove(msg) => WireFormat::len(msg),
5038 Sbp::MsgFileioWriteReq(msg) => WireFormat::len(msg),
5039 Sbp::MsgSettingsRegister(msg) => WireFormat::len(msg),
5040 Sbp::MsgSettingsWriteResp(msg) => WireFormat::len(msg),
5041 Sbp::MsgBootloaderHandshakeDepA(msg) => WireFormat::len(msg),
5042 Sbp::MsgBootloaderJumpToApp(msg) => WireFormat::len(msg),
5043 Sbp::MsgResetDep(msg) => WireFormat::len(msg),
5044 Sbp::MsgBootloaderHandshakeReq(msg) => WireFormat::len(msg),
5045 Sbp::MsgBootloaderHandshakeResp(msg) => WireFormat::len(msg),
5046 Sbp::MsgDeviceMonitor(msg) => WireFormat::len(msg),
5047 Sbp::MsgReset(msg) => WireFormat::len(msg),
5048 Sbp::MsgCommandReq(msg) => WireFormat::len(msg),
5049 Sbp::MsgCommandResp(msg) => WireFormat::len(msg),
5050 Sbp::MsgNetworkStateReq(msg) => WireFormat::len(msg),
5051 Sbp::MsgNetworkStateResp(msg) => WireFormat::len(msg),
5052 Sbp::MsgCommandOutput(msg) => WireFormat::len(msg),
5053 Sbp::MsgNetworkBandwidthUsage(msg) => WireFormat::len(msg),
5054 Sbp::MsgCellModemStatus(msg) => WireFormat::len(msg),
5055 Sbp::MsgFrontEndGain(msg) => WireFormat::len(msg),
5056 Sbp::MsgCwResults(msg) => WireFormat::len(msg),
5057 Sbp::MsgCwStart(msg) => WireFormat::len(msg),
5058 Sbp::MsgNapDeviceDnaResp(msg) => WireFormat::len(msg),
5059 Sbp::MsgNapDeviceDnaReq(msg) => WireFormat::len(msg),
5060 Sbp::MsgFlashDone(msg) => WireFormat::len(msg),
5061 Sbp::MsgFlashReadResp(msg) => WireFormat::len(msg),
5062 Sbp::MsgFlashErase(msg) => WireFormat::len(msg),
5063 Sbp::MsgStmFlashLockSector(msg) => WireFormat::len(msg),
5064 Sbp::MsgStmFlashUnlockSector(msg) => WireFormat::len(msg),
5065 Sbp::MsgStmUniqueIdResp(msg) => WireFormat::len(msg),
5066 Sbp::MsgFlashProgram(msg) => WireFormat::len(msg),
5067 Sbp::MsgFlashReadReq(msg) => WireFormat::len(msg),
5068 Sbp::MsgStmUniqueIdReq(msg) => WireFormat::len(msg),
5069 Sbp::MsgM25FlashWriteStatus(msg) => WireFormat::len(msg),
5070 Sbp::MsgGpsTimeDepA(msg) => WireFormat::len(msg),
5071 Sbp::MsgExtEvent(msg) => WireFormat::len(msg),
5072 Sbp::MsgGpsTime(msg) => WireFormat::len(msg),
5073 Sbp::MsgUtcTime(msg) => WireFormat::len(msg),
5074 Sbp::MsgGpsTimeGnss(msg) => WireFormat::len(msg),
5075 Sbp::MsgUtcTimeGnss(msg) => WireFormat::len(msg),
5076 Sbp::MsgTelSv(msg) => WireFormat::len(msg),
5077 Sbp::MsgSettingsRegisterResp(msg) => WireFormat::len(msg),
5078 Sbp::MsgPosEcefDepA(msg) => WireFormat::len(msg),
5079 Sbp::MsgPosLlhDepA(msg) => WireFormat::len(msg),
5080 Sbp::MsgBaselineEcefDepA(msg) => WireFormat::len(msg),
5081 Sbp::MsgBaselineNedDepA(msg) => WireFormat::len(msg),
5082 Sbp::MsgVelEcefDepA(msg) => WireFormat::len(msg),
5083 Sbp::MsgVelNedDepA(msg) => WireFormat::len(msg),
5084 Sbp::MsgDopsDepA(msg) => WireFormat::len(msg),
5085 Sbp::MsgBaselineHeadingDepA(msg) => WireFormat::len(msg),
5086 Sbp::MsgDops(msg) => WireFormat::len(msg),
5087 Sbp::MsgPosEcef(msg) => WireFormat::len(msg),
5088 Sbp::MsgPosLlh(msg) => WireFormat::len(msg),
5089 Sbp::MsgBaselineEcef(msg) => WireFormat::len(msg),
5090 Sbp::MsgBaselineNed(msg) => WireFormat::len(msg),
5091 Sbp::MsgVelEcef(msg) => WireFormat::len(msg),
5092 Sbp::MsgVelNed(msg) => WireFormat::len(msg),
5093 Sbp::MsgBaselineHeading(msg) => WireFormat::len(msg),
5094 Sbp::MsgAgeCorrections(msg) => WireFormat::len(msg),
5095 Sbp::MsgPosLlhCov(msg) => WireFormat::len(msg),
5096 Sbp::MsgVelNedCov(msg) => WireFormat::len(msg),
5097 Sbp::MsgVelBody(msg) => WireFormat::len(msg),
5098 Sbp::MsgPosEcefCov(msg) => WireFormat::len(msg),
5099 Sbp::MsgVelEcefCov(msg) => WireFormat::len(msg),
5100 Sbp::MsgProtectionLevelDepA(msg) => WireFormat::len(msg),
5101 Sbp::MsgProtectionLevel(msg) => WireFormat::len(msg),
5102 Sbp::MsgPosLlhAcc(msg) => WireFormat::len(msg),
5103 Sbp::MsgVelCog(msg) => WireFormat::len(msg),
5104 Sbp::MsgOrientQuat(msg) => WireFormat::len(msg),
5105 Sbp::MsgOrientEuler(msg) => WireFormat::len(msg),
5106 Sbp::MsgAngularRate(msg) => WireFormat::len(msg),
5107 Sbp::MsgPosEcefGnss(msg) => WireFormat::len(msg),
5108 Sbp::MsgPosLlhGnss(msg) => WireFormat::len(msg),
5109 Sbp::MsgVelEcefGnss(msg) => WireFormat::len(msg),
5110 Sbp::MsgVelNedGnss(msg) => WireFormat::len(msg),
5111 Sbp::MsgPosLlhCovGnss(msg) => WireFormat::len(msg),
5112 Sbp::MsgVelNedCovGnss(msg) => WireFormat::len(msg),
5113 Sbp::MsgPosEcefCovGnss(msg) => WireFormat::len(msg),
5114 Sbp::MsgVelEcefCovGnss(msg) => WireFormat::len(msg),
5115 Sbp::MsgUtcLeapSecond(msg) => WireFormat::len(msg),
5116 Sbp::MsgReferenceFrameParam(msg) => WireFormat::len(msg),
5117 Sbp::MsgPoseRelative(msg) => WireFormat::len(msg),
5118 Sbp::MsgNdbEvent(msg) => WireFormat::len(msg),
5119 Sbp::MsgLog(msg) => WireFormat::len(msg),
5120 Sbp::MsgFwd(msg) => WireFormat::len(msg),
5121 Sbp::MsgSsrOrbitClockDepA(msg) => WireFormat::len(msg),
5122 Sbp::MsgSsrOrbitClock(msg) => WireFormat::len(msg),
5123 Sbp::MsgSsrOrbitClockBounds(msg) => WireFormat::len(msg),
5124 Sbp::MsgSsrOrbitClockBoundsDegradation(msg) => WireFormat::len(msg),
5125 Sbp::MsgSsrCodeBiases(msg) => WireFormat::len(msg),
5126 Sbp::MsgSsrPhaseBiases(msg) => WireFormat::len(msg),
5127 Sbp::MsgSsrStecCorrectionDepA(msg) => WireFormat::len(msg),
5128 Sbp::MsgSsrCodePhaseBiasesBounds(msg) => WireFormat::len(msg),
5129 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg) => WireFormat::len(msg),
5130 Sbp::MsgSsrGridDefinitionDepA(msg) => WireFormat::len(msg),
5131 Sbp::MsgSsrTileDefinitionDepA(msg) => WireFormat::len(msg),
5132 Sbp::MsgSsrTileDefinitionDepB(msg) => WireFormat::len(msg),
5133 Sbp::MsgSsrTileDefinition(msg) => WireFormat::len(msg),
5134 Sbp::MsgSsrGriddedCorrectionDepA(msg) => WireFormat::len(msg),
5135 Sbp::MsgSsrStecCorrectionDep(msg) => WireFormat::len(msg),
5136 Sbp::MsgSsrGriddedCorrection(msg) => WireFormat::len(msg),
5137 Sbp::MsgSsrStecCorrection(msg) => WireFormat::len(msg),
5138 Sbp::MsgSsrGriddedCorrectionBounds(msg) => WireFormat::len(msg),
5139 Sbp::MsgSsrSatelliteApcDep(msg) => WireFormat::len(msg),
5140 Sbp::MsgSsrSatelliteApc(msg) => WireFormat::len(msg),
5141 Sbp::MsgOsr(msg) => WireFormat::len(msg),
5142 Sbp::MsgUserData(msg) => WireFormat::len(msg),
5143 Sbp::MsgImuRaw(msg) => WireFormat::len(msg),
5144 Sbp::MsgImuAux(msg) => WireFormat::len(msg),
5145 Sbp::MsgMagRaw(msg) => WireFormat::len(msg),
5146 Sbp::MsgOdometry(msg) => WireFormat::len(msg),
5147 Sbp::MsgWheeltick(msg) => WireFormat::len(msg),
5148 Sbp::MsgImuComp(msg) => WireFormat::len(msg),
5149 Sbp::MsgSsrFlagHighLevelDepA(msg) => WireFormat::len(msg),
5150 Sbp::MsgSsrFlagHighLevel(msg) => WireFormat::len(msg),
5151 Sbp::MsgSsrFlagSatellites(msg) => WireFormat::len(msg),
5152 Sbp::MsgSsrFlagTropoGridPoints(msg) => WireFormat::len(msg),
5153 Sbp::MsgSsrFlagIonoGridPoints(msg) => WireFormat::len(msg),
5154 Sbp::MsgSsrFlagIonoTileSatLos(msg) => WireFormat::len(msg),
5155 Sbp::MsgSsrFlagIonoGridPointSatLos(msg) => WireFormat::len(msg),
5156 Sbp::MsgAcknowledge(msg) => WireFormat::len(msg),
5157 Sbp::MsgEd25519SignatureDepA(msg) => WireFormat::len(msg),
5158 Sbp::MsgEd25519CertificateDep(msg) => WireFormat::len(msg),
5159 Sbp::MsgEd25519SignatureDepB(msg) => WireFormat::len(msg),
5160 Sbp::MsgEcdsaCertificate(msg) => WireFormat::len(msg),
5161 Sbp::MsgCertificateChainDep(msg) => WireFormat::len(msg),
5162 Sbp::MsgEcdsaSignatureDepA(msg) => WireFormat::len(msg),
5163 Sbp::MsgEcdsaSignatureDepB(msg) => WireFormat::len(msg),
5164 Sbp::MsgEcdsaSignature(msg) => WireFormat::len(msg),
5165 Sbp::MsgCertificateChain(msg) => WireFormat::len(msg),
5166 Sbp::MsgAesCmacSignature(msg) => WireFormat::len(msg),
5167 Sbp::MsgFileioConfigReq(msg) => WireFormat::len(msg),
5168 Sbp::MsgFileioConfigResp(msg) => WireFormat::len(msg),
5169 Sbp::MsgSbasRaw(msg) => WireFormat::len(msg),
5170 Sbp::MsgLinuxCpuStateDepA(msg) => WireFormat::len(msg),
5171 Sbp::MsgLinuxMemStateDepA(msg) => WireFormat::len(msg),
5172 Sbp::MsgLinuxSysStateDepA(msg) => WireFormat::len(msg),
5173 Sbp::MsgLinuxProcessSocketCounts(msg) => WireFormat::len(msg),
5174 Sbp::MsgLinuxProcessSocketQueues(msg) => WireFormat::len(msg),
5175 Sbp::MsgLinuxSocketUsage(msg) => WireFormat::len(msg),
5176 Sbp::MsgLinuxProcessFdCount(msg) => WireFormat::len(msg),
5177 Sbp::MsgLinuxProcessFdSummary(msg) => WireFormat::len(msg),
5178 Sbp::MsgLinuxCpuState(msg) => WireFormat::len(msg),
5179 Sbp::MsgLinuxMemState(msg) => WireFormat::len(msg),
5180 Sbp::MsgLinuxSysState(msg) => WireFormat::len(msg),
5181 Sbp::MsgMeasurementPoint(msg) => WireFormat::len(msg),
5182 Sbp::MsgProfilingSystemInfo(msg) => WireFormat::len(msg),
5183 Sbp::MsgProfilingThreadInfo(msg) => WireFormat::len(msg),
5184 Sbp::MsgProfilingResourceCounter(msg) => WireFormat::len(msg),
5185 Sbp::MsgStartup(msg) => WireFormat::len(msg),
5186 Sbp::MsgDgnssStatus(msg) => WireFormat::len(msg),
5187 Sbp::MsgInsStatus(msg) => WireFormat::len(msg),
5188 Sbp::MsgCsacTelemetry(msg) => WireFormat::len(msg),
5189 Sbp::MsgCsacTelemetryLabels(msg) => WireFormat::len(msg),
5190 Sbp::MsgInsUpdates(msg) => WireFormat::len(msg),
5191 Sbp::MsgGnssTimeOffset(msg) => WireFormat::len(msg),
5192 Sbp::MsgPpsTime(msg) => WireFormat::len(msg),
5193 Sbp::MsgSensorAidEvent(msg) => WireFormat::len(msg),
5194 Sbp::MsgGroupMeta(msg) => WireFormat::len(msg),
5195 Sbp::MsgSolnMeta(msg) => WireFormat::len(msg),
5196 Sbp::MsgSolnMetaDepA(msg) => WireFormat::len(msg),
5197 Sbp::MsgStatusJournal(msg) => WireFormat::len(msg),
5198 Sbp::MsgStatusReport(msg) => WireFormat::len(msg),
5199 Sbp::MsgHeartbeat(msg) => WireFormat::len(msg),
5200 Sbp::Unknown(msg) => WireFormat::len(msg),
5201 Sbp::Invalid(msg) => WireFormat::len(msg),
5202 }
5203 }
5204}
5205
5206impl From<MsgPrintDep> for Sbp {
5207 fn from(msg: MsgPrintDep) -> Self {
5208 Sbp::MsgPrintDep(msg)
5209 }
5210}
5211
5212impl From<MsgTrackingStateDetailedDep> for Sbp {
5213 fn from(msg: MsgTrackingStateDetailedDep) -> Self {
5214 Sbp::MsgTrackingStateDetailedDep(msg)
5215 }
5216}
5217
5218impl From<MsgTrackingStateDepB> for Sbp {
5219 fn from(msg: MsgTrackingStateDepB) -> Self {
5220 Sbp::MsgTrackingStateDepB(msg)
5221 }
5222}
5223
5224impl From<MsgAcqResultDepB> for Sbp {
5225 fn from(msg: MsgAcqResultDepB) -> Self {
5226 Sbp::MsgAcqResultDepB(msg)
5227 }
5228}
5229
5230impl From<MsgAcqResultDepA> for Sbp {
5231 fn from(msg: MsgAcqResultDepA) -> Self {
5232 Sbp::MsgAcqResultDepA(msg)
5233 }
5234}
5235
5236impl From<MsgTrackingStateDepA> for Sbp {
5237 fn from(msg: MsgTrackingStateDepA) -> Self {
5238 Sbp::MsgTrackingStateDepA(msg)
5239 }
5240}
5241
5242impl From<MsgThreadState> for Sbp {
5243 fn from(msg: MsgThreadState) -> Self {
5244 Sbp::MsgThreadState(msg)
5245 }
5246}
5247
5248impl From<MsgUartStateDepa> for Sbp {
5249 fn from(msg: MsgUartStateDepa) -> Self {
5250 Sbp::MsgUartStateDepa(msg)
5251 }
5252}
5253
5254impl From<MsgIarState> for Sbp {
5255 fn from(msg: MsgIarState) -> Self {
5256 Sbp::MsgIarState(msg)
5257 }
5258}
5259
5260impl From<MsgEphemerisDepA> for Sbp {
5261 fn from(msg: MsgEphemerisDepA) -> Self {
5262 Sbp::MsgEphemerisDepA(msg)
5263 }
5264}
5265
5266impl From<MsgMaskSatelliteDep> for Sbp {
5267 fn from(msg: MsgMaskSatelliteDep) -> Self {
5268 Sbp::MsgMaskSatelliteDep(msg)
5269 }
5270}
5271
5272impl From<MsgTrackingIqDepA> for Sbp {
5273 fn from(msg: MsgTrackingIqDepA) -> Self {
5274 Sbp::MsgTrackingIqDepA(msg)
5275 }
5276}
5277
5278impl From<MsgUartState> for Sbp {
5279 fn from(msg: MsgUartState) -> Self {
5280 Sbp::MsgUartState(msg)
5281 }
5282}
5283
5284impl From<MsgAcqSvProfileDep> for Sbp {
5285 fn from(msg: MsgAcqSvProfileDep) -> Self {
5286 Sbp::MsgAcqSvProfileDep(msg)
5287 }
5288}
5289
5290impl From<MsgAcqResultDepC> for Sbp {
5291 fn from(msg: MsgAcqResultDepC) -> Self {
5292 Sbp::MsgAcqResultDepC(msg)
5293 }
5294}
5295
5296impl From<MsgTrackingStateDetailedDepA> for Sbp {
5297 fn from(msg: MsgTrackingStateDetailedDepA) -> Self {
5298 Sbp::MsgTrackingStateDetailedDepA(msg)
5299 }
5300}
5301
5302impl From<MsgResetFilters> for Sbp {
5303 fn from(msg: MsgResetFilters) -> Self {
5304 Sbp::MsgResetFilters(msg)
5305 }
5306}
5307
5308impl From<MsgInitBaseDep> for Sbp {
5309 fn from(msg: MsgInitBaseDep) -> Self {
5310 Sbp::MsgInitBaseDep(msg)
5311 }
5312}
5313
5314impl From<MsgMaskSatellite> for Sbp {
5315 fn from(msg: MsgMaskSatellite) -> Self {
5316 Sbp::MsgMaskSatellite(msg)
5317 }
5318}
5319
5320impl From<MsgTrackingIqDepB> for Sbp {
5321 fn from(msg: MsgTrackingIqDepB) -> Self {
5322 Sbp::MsgTrackingIqDepB(msg)
5323 }
5324}
5325
5326impl From<MsgTrackingIq> for Sbp {
5327 fn from(msg: MsgTrackingIq) -> Self {
5328 Sbp::MsgTrackingIq(msg)
5329 }
5330}
5331
5332impl From<MsgAcqSvProfile> for Sbp {
5333 fn from(msg: MsgAcqSvProfile) -> Self {
5334 Sbp::MsgAcqSvProfile(msg)
5335 }
5336}
5337
5338impl From<MsgAcqResult> for Sbp {
5339 fn from(msg: MsgAcqResult) -> Self {
5340 Sbp::MsgAcqResult(msg)
5341 }
5342}
5343
5344impl From<MsgTrackingState> for Sbp {
5345 fn from(msg: MsgTrackingState) -> Self {
5346 Sbp::MsgTrackingState(msg)
5347 }
5348}
5349
5350impl From<MsgObsDepB> for Sbp {
5351 fn from(msg: MsgObsDepB) -> Self {
5352 Sbp::MsgObsDepB(msg)
5353 }
5354}
5355
5356impl From<MsgBasePosLlh> for Sbp {
5357 fn from(msg: MsgBasePosLlh) -> Self {
5358 Sbp::MsgBasePosLlh(msg)
5359 }
5360}
5361
5362impl From<MsgObsDepA> for Sbp {
5363 fn from(msg: MsgObsDepA) -> Self {
5364 Sbp::MsgObsDepA(msg)
5365 }
5366}
5367
5368impl From<MsgEphemerisDepB> for Sbp {
5369 fn from(msg: MsgEphemerisDepB) -> Self {
5370 Sbp::MsgEphemerisDepB(msg)
5371 }
5372}
5373
5374impl From<MsgEphemerisDepC> for Sbp {
5375 fn from(msg: MsgEphemerisDepC) -> Self {
5376 Sbp::MsgEphemerisDepC(msg)
5377 }
5378}
5379
5380impl From<MsgBasePosEcef> for Sbp {
5381 fn from(msg: MsgBasePosEcef) -> Self {
5382 Sbp::MsgBasePosEcef(msg)
5383 }
5384}
5385
5386impl From<MsgObsDepC> for Sbp {
5387 fn from(msg: MsgObsDepC) -> Self {
5388 Sbp::MsgObsDepC(msg)
5389 }
5390}
5391
5392impl From<MsgObs> for Sbp {
5393 fn from(msg: MsgObs) -> Self {
5394 Sbp::MsgObs(msg)
5395 }
5396}
5397
5398impl From<MsgSpecanDep> for Sbp {
5399 fn from(msg: MsgSpecanDep) -> Self {
5400 Sbp::MsgSpecanDep(msg)
5401 }
5402}
5403
5404impl From<MsgSpecan> for Sbp {
5405 fn from(msg: MsgSpecan) -> Self {
5406 Sbp::MsgSpecan(msg)
5407 }
5408}
5409
5410impl From<MsgMeasurementState> for Sbp {
5411 fn from(msg: MsgMeasurementState) -> Self {
5412 Sbp::MsgMeasurementState(msg)
5413 }
5414}
5415
5416impl From<MsgSetTime> for Sbp {
5417 fn from(msg: MsgSetTime) -> Self {
5418 Sbp::MsgSetTime(msg)
5419 }
5420}
5421
5422impl From<MsgAlmanac> for Sbp {
5423 fn from(msg: MsgAlmanac) -> Self {
5424 Sbp::MsgAlmanac(msg)
5425 }
5426}
5427
5428impl From<MsgAlmanacGpsDep> for Sbp {
5429 fn from(msg: MsgAlmanacGpsDep) -> Self {
5430 Sbp::MsgAlmanacGpsDep(msg)
5431 }
5432}
5433
5434impl From<MsgAlmanacGloDep> for Sbp {
5435 fn from(msg: MsgAlmanacGloDep) -> Self {
5436 Sbp::MsgAlmanacGloDep(msg)
5437 }
5438}
5439
5440impl From<MsgAlmanacGps> for Sbp {
5441 fn from(msg: MsgAlmanacGps) -> Self {
5442 Sbp::MsgAlmanacGps(msg)
5443 }
5444}
5445
5446impl From<MsgAlmanacGlo> for Sbp {
5447 fn from(msg: MsgAlmanacGlo) -> Self {
5448 Sbp::MsgAlmanacGlo(msg)
5449 }
5450}
5451
5452impl From<MsgGloBiases> for Sbp {
5453 fn from(msg: MsgGloBiases) -> Self {
5454 Sbp::MsgGloBiases(msg)
5455 }
5456}
5457
5458impl From<MsgEphemerisDepD> for Sbp {
5459 fn from(msg: MsgEphemerisDepD) -> Self {
5460 Sbp::MsgEphemerisDepD(msg)
5461 }
5462}
5463
5464impl From<MsgEphemerisGpsDepE> for Sbp {
5465 fn from(msg: MsgEphemerisGpsDepE) -> Self {
5466 Sbp::MsgEphemerisGpsDepE(msg)
5467 }
5468}
5469
5470impl From<MsgEphemerisSbasDepA> for Sbp {
5471 fn from(msg: MsgEphemerisSbasDepA) -> Self {
5472 Sbp::MsgEphemerisSbasDepA(msg)
5473 }
5474}
5475
5476impl From<MsgEphemerisGloDepA> for Sbp {
5477 fn from(msg: MsgEphemerisGloDepA) -> Self {
5478 Sbp::MsgEphemerisGloDepA(msg)
5479 }
5480}
5481
5482impl From<MsgEphemerisSbasDepB> for Sbp {
5483 fn from(msg: MsgEphemerisSbasDepB) -> Self {
5484 Sbp::MsgEphemerisSbasDepB(msg)
5485 }
5486}
5487
5488impl From<MsgEphemerisGloDepB> for Sbp {
5489 fn from(msg: MsgEphemerisGloDepB) -> Self {
5490 Sbp::MsgEphemerisGloDepB(msg)
5491 }
5492}
5493
5494impl From<MsgEphemerisGpsDepF> for Sbp {
5495 fn from(msg: MsgEphemerisGpsDepF) -> Self {
5496 Sbp::MsgEphemerisGpsDepF(msg)
5497 }
5498}
5499
5500impl From<MsgEphemerisGloDepC> for Sbp {
5501 fn from(msg: MsgEphemerisGloDepC) -> Self {
5502 Sbp::MsgEphemerisGloDepC(msg)
5503 }
5504}
5505
5506impl From<MsgEphemerisGloDepD> for Sbp {
5507 fn from(msg: MsgEphemerisGloDepD) -> Self {
5508 Sbp::MsgEphemerisGloDepD(msg)
5509 }
5510}
5511
5512impl From<MsgEphemerisBds> for Sbp {
5513 fn from(msg: MsgEphemerisBds) -> Self {
5514 Sbp::MsgEphemerisBds(msg)
5515 }
5516}
5517
5518impl From<MsgEphemerisGps> for Sbp {
5519 fn from(msg: MsgEphemerisGps) -> Self {
5520 Sbp::MsgEphemerisGps(msg)
5521 }
5522}
5523
5524impl From<MsgEphemerisGlo> for Sbp {
5525 fn from(msg: MsgEphemerisGlo) -> Self {
5526 Sbp::MsgEphemerisGlo(msg)
5527 }
5528}
5529
5530impl From<MsgEphemerisSbas> for Sbp {
5531 fn from(msg: MsgEphemerisSbas) -> Self {
5532 Sbp::MsgEphemerisSbas(msg)
5533 }
5534}
5535
5536impl From<MsgEphemerisGal> for Sbp {
5537 fn from(msg: MsgEphemerisGal) -> Self {
5538 Sbp::MsgEphemerisGal(msg)
5539 }
5540}
5541
5542impl From<MsgEphemerisQzss> for Sbp {
5543 fn from(msg: MsgEphemerisQzss) -> Self {
5544 Sbp::MsgEphemerisQzss(msg)
5545 }
5546}
5547
5548impl From<MsgIono> for Sbp {
5549 fn from(msg: MsgIono) -> Self {
5550 Sbp::MsgIono(msg)
5551 }
5552}
5553
5554impl From<MsgSvConfigurationGpsDep> for Sbp {
5555 fn from(msg: MsgSvConfigurationGpsDep) -> Self {
5556 Sbp::MsgSvConfigurationGpsDep(msg)
5557 }
5558}
5559
5560impl From<MsgGroupDelayDepA> for Sbp {
5561 fn from(msg: MsgGroupDelayDepA) -> Self {
5562 Sbp::MsgGroupDelayDepA(msg)
5563 }
5564}
5565
5566impl From<MsgGroupDelayDepB> for Sbp {
5567 fn from(msg: MsgGroupDelayDepB) -> Self {
5568 Sbp::MsgGroupDelayDepB(msg)
5569 }
5570}
5571
5572impl From<MsgGroupDelay> for Sbp {
5573 fn from(msg: MsgGroupDelay) -> Self {
5574 Sbp::MsgGroupDelay(msg)
5575 }
5576}
5577
5578impl From<MsgEphemerisGalDepA> for Sbp {
5579 fn from(msg: MsgEphemerisGalDepA) -> Self {
5580 Sbp::MsgEphemerisGalDepA(msg)
5581 }
5582}
5583
5584impl From<MsgGnssCapb> for Sbp {
5585 fn from(msg: MsgGnssCapb) -> Self {
5586 Sbp::MsgGnssCapb(msg)
5587 }
5588}
5589
5590impl From<MsgSvAzEl> for Sbp {
5591 fn from(msg: MsgSvAzEl) -> Self {
5592 Sbp::MsgSvAzEl(msg)
5593 }
5594}
5595
5596impl From<MsgSettingsWrite> for Sbp {
5597 fn from(msg: MsgSettingsWrite) -> Self {
5598 Sbp::MsgSettingsWrite(msg)
5599 }
5600}
5601
5602impl From<MsgSettingsSave> for Sbp {
5603 fn from(msg: MsgSettingsSave) -> Self {
5604 Sbp::MsgSettingsSave(msg)
5605 }
5606}
5607
5608impl From<MsgSettingsReadByIndexReq> for Sbp {
5609 fn from(msg: MsgSettingsReadByIndexReq) -> Self {
5610 Sbp::MsgSettingsReadByIndexReq(msg)
5611 }
5612}
5613
5614impl From<MsgFileioReadResp> for Sbp {
5615 fn from(msg: MsgFileioReadResp) -> Self {
5616 Sbp::MsgFileioReadResp(msg)
5617 }
5618}
5619
5620impl From<MsgSettingsReadReq> for Sbp {
5621 fn from(msg: MsgSettingsReadReq) -> Self {
5622 Sbp::MsgSettingsReadReq(msg)
5623 }
5624}
5625
5626impl From<MsgSettingsReadResp> for Sbp {
5627 fn from(msg: MsgSettingsReadResp) -> Self {
5628 Sbp::MsgSettingsReadResp(msg)
5629 }
5630}
5631
5632impl From<MsgSettingsReadByIndexDone> for Sbp {
5633 fn from(msg: MsgSettingsReadByIndexDone) -> Self {
5634 Sbp::MsgSettingsReadByIndexDone(msg)
5635 }
5636}
5637
5638impl From<MsgSettingsReadByIndexResp> for Sbp {
5639 fn from(msg: MsgSettingsReadByIndexResp) -> Self {
5640 Sbp::MsgSettingsReadByIndexResp(msg)
5641 }
5642}
5643
5644impl From<MsgFileioReadReq> for Sbp {
5645 fn from(msg: MsgFileioReadReq) -> Self {
5646 Sbp::MsgFileioReadReq(msg)
5647 }
5648}
5649
5650impl From<MsgFileioReadDirReq> for Sbp {
5651 fn from(msg: MsgFileioReadDirReq) -> Self {
5652 Sbp::MsgFileioReadDirReq(msg)
5653 }
5654}
5655
5656impl From<MsgFileioReadDirResp> for Sbp {
5657 fn from(msg: MsgFileioReadDirResp) -> Self {
5658 Sbp::MsgFileioReadDirResp(msg)
5659 }
5660}
5661
5662impl From<MsgFileioWriteResp> for Sbp {
5663 fn from(msg: MsgFileioWriteResp) -> Self {
5664 Sbp::MsgFileioWriteResp(msg)
5665 }
5666}
5667
5668impl From<MsgFileioRemove> for Sbp {
5669 fn from(msg: MsgFileioRemove) -> Self {
5670 Sbp::MsgFileioRemove(msg)
5671 }
5672}
5673
5674impl From<MsgFileioWriteReq> for Sbp {
5675 fn from(msg: MsgFileioWriteReq) -> Self {
5676 Sbp::MsgFileioWriteReq(msg)
5677 }
5678}
5679
5680impl From<MsgSettingsRegister> for Sbp {
5681 fn from(msg: MsgSettingsRegister) -> Self {
5682 Sbp::MsgSettingsRegister(msg)
5683 }
5684}
5685
5686impl From<MsgSettingsWriteResp> for Sbp {
5687 fn from(msg: MsgSettingsWriteResp) -> Self {
5688 Sbp::MsgSettingsWriteResp(msg)
5689 }
5690}
5691
5692impl From<MsgBootloaderHandshakeDepA> for Sbp {
5693 fn from(msg: MsgBootloaderHandshakeDepA) -> Self {
5694 Sbp::MsgBootloaderHandshakeDepA(msg)
5695 }
5696}
5697
5698impl From<MsgBootloaderJumpToApp> for Sbp {
5699 fn from(msg: MsgBootloaderJumpToApp) -> Self {
5700 Sbp::MsgBootloaderJumpToApp(msg)
5701 }
5702}
5703
5704impl From<MsgResetDep> for Sbp {
5705 fn from(msg: MsgResetDep) -> Self {
5706 Sbp::MsgResetDep(msg)
5707 }
5708}
5709
5710impl From<MsgBootloaderHandshakeReq> for Sbp {
5711 fn from(msg: MsgBootloaderHandshakeReq) -> Self {
5712 Sbp::MsgBootloaderHandshakeReq(msg)
5713 }
5714}
5715
5716impl From<MsgBootloaderHandshakeResp> for Sbp {
5717 fn from(msg: MsgBootloaderHandshakeResp) -> Self {
5718 Sbp::MsgBootloaderHandshakeResp(msg)
5719 }
5720}
5721
5722impl From<MsgDeviceMonitor> for Sbp {
5723 fn from(msg: MsgDeviceMonitor) -> Self {
5724 Sbp::MsgDeviceMonitor(msg)
5725 }
5726}
5727
5728impl From<MsgReset> for Sbp {
5729 fn from(msg: MsgReset) -> Self {
5730 Sbp::MsgReset(msg)
5731 }
5732}
5733
5734impl From<MsgCommandReq> for Sbp {
5735 fn from(msg: MsgCommandReq) -> Self {
5736 Sbp::MsgCommandReq(msg)
5737 }
5738}
5739
5740impl From<MsgCommandResp> for Sbp {
5741 fn from(msg: MsgCommandResp) -> Self {
5742 Sbp::MsgCommandResp(msg)
5743 }
5744}
5745
5746impl From<MsgNetworkStateReq> for Sbp {
5747 fn from(msg: MsgNetworkStateReq) -> Self {
5748 Sbp::MsgNetworkStateReq(msg)
5749 }
5750}
5751
5752impl From<MsgNetworkStateResp> for Sbp {
5753 fn from(msg: MsgNetworkStateResp) -> Self {
5754 Sbp::MsgNetworkStateResp(msg)
5755 }
5756}
5757
5758impl From<MsgCommandOutput> for Sbp {
5759 fn from(msg: MsgCommandOutput) -> Self {
5760 Sbp::MsgCommandOutput(msg)
5761 }
5762}
5763
5764impl From<MsgNetworkBandwidthUsage> for Sbp {
5765 fn from(msg: MsgNetworkBandwidthUsage) -> Self {
5766 Sbp::MsgNetworkBandwidthUsage(msg)
5767 }
5768}
5769
5770impl From<MsgCellModemStatus> for Sbp {
5771 fn from(msg: MsgCellModemStatus) -> Self {
5772 Sbp::MsgCellModemStatus(msg)
5773 }
5774}
5775
5776impl From<MsgFrontEndGain> for Sbp {
5777 fn from(msg: MsgFrontEndGain) -> Self {
5778 Sbp::MsgFrontEndGain(msg)
5779 }
5780}
5781
5782impl From<MsgCwResults> for Sbp {
5783 fn from(msg: MsgCwResults) -> Self {
5784 Sbp::MsgCwResults(msg)
5785 }
5786}
5787
5788impl From<MsgCwStart> for Sbp {
5789 fn from(msg: MsgCwStart) -> Self {
5790 Sbp::MsgCwStart(msg)
5791 }
5792}
5793
5794impl From<MsgNapDeviceDnaResp> for Sbp {
5795 fn from(msg: MsgNapDeviceDnaResp) -> Self {
5796 Sbp::MsgNapDeviceDnaResp(msg)
5797 }
5798}
5799
5800impl From<MsgNapDeviceDnaReq> for Sbp {
5801 fn from(msg: MsgNapDeviceDnaReq) -> Self {
5802 Sbp::MsgNapDeviceDnaReq(msg)
5803 }
5804}
5805
5806impl From<MsgFlashDone> for Sbp {
5807 fn from(msg: MsgFlashDone) -> Self {
5808 Sbp::MsgFlashDone(msg)
5809 }
5810}
5811
5812impl From<MsgFlashReadResp> for Sbp {
5813 fn from(msg: MsgFlashReadResp) -> Self {
5814 Sbp::MsgFlashReadResp(msg)
5815 }
5816}
5817
5818impl From<MsgFlashErase> for Sbp {
5819 fn from(msg: MsgFlashErase) -> Self {
5820 Sbp::MsgFlashErase(msg)
5821 }
5822}
5823
5824impl From<MsgStmFlashLockSector> for Sbp {
5825 fn from(msg: MsgStmFlashLockSector) -> Self {
5826 Sbp::MsgStmFlashLockSector(msg)
5827 }
5828}
5829
5830impl From<MsgStmFlashUnlockSector> for Sbp {
5831 fn from(msg: MsgStmFlashUnlockSector) -> Self {
5832 Sbp::MsgStmFlashUnlockSector(msg)
5833 }
5834}
5835
5836impl From<MsgStmUniqueIdResp> for Sbp {
5837 fn from(msg: MsgStmUniqueIdResp) -> Self {
5838 Sbp::MsgStmUniqueIdResp(msg)
5839 }
5840}
5841
5842impl From<MsgFlashProgram> for Sbp {
5843 fn from(msg: MsgFlashProgram) -> Self {
5844 Sbp::MsgFlashProgram(msg)
5845 }
5846}
5847
5848impl From<MsgFlashReadReq> for Sbp {
5849 fn from(msg: MsgFlashReadReq) -> Self {
5850 Sbp::MsgFlashReadReq(msg)
5851 }
5852}
5853
5854impl From<MsgStmUniqueIdReq> for Sbp {
5855 fn from(msg: MsgStmUniqueIdReq) -> Self {
5856 Sbp::MsgStmUniqueIdReq(msg)
5857 }
5858}
5859
5860impl From<MsgM25FlashWriteStatus> for Sbp {
5861 fn from(msg: MsgM25FlashWriteStatus) -> Self {
5862 Sbp::MsgM25FlashWriteStatus(msg)
5863 }
5864}
5865
5866impl From<MsgGpsTimeDepA> for Sbp {
5867 fn from(msg: MsgGpsTimeDepA) -> Self {
5868 Sbp::MsgGpsTimeDepA(msg)
5869 }
5870}
5871
5872impl From<MsgExtEvent> for Sbp {
5873 fn from(msg: MsgExtEvent) -> Self {
5874 Sbp::MsgExtEvent(msg)
5875 }
5876}
5877
5878impl From<MsgGpsTime> for Sbp {
5879 fn from(msg: MsgGpsTime) -> Self {
5880 Sbp::MsgGpsTime(msg)
5881 }
5882}
5883
5884impl From<MsgUtcTime> for Sbp {
5885 fn from(msg: MsgUtcTime) -> Self {
5886 Sbp::MsgUtcTime(msg)
5887 }
5888}
5889
5890impl From<MsgGpsTimeGnss> for Sbp {
5891 fn from(msg: MsgGpsTimeGnss) -> Self {
5892 Sbp::MsgGpsTimeGnss(msg)
5893 }
5894}
5895
5896impl From<MsgUtcTimeGnss> for Sbp {
5897 fn from(msg: MsgUtcTimeGnss) -> Self {
5898 Sbp::MsgUtcTimeGnss(msg)
5899 }
5900}
5901
5902impl From<MsgTelSv> for Sbp {
5903 fn from(msg: MsgTelSv) -> Self {
5904 Sbp::MsgTelSv(msg)
5905 }
5906}
5907
5908impl From<MsgSettingsRegisterResp> for Sbp {
5909 fn from(msg: MsgSettingsRegisterResp) -> Self {
5910 Sbp::MsgSettingsRegisterResp(msg)
5911 }
5912}
5913
5914impl From<MsgPosEcefDepA> for Sbp {
5915 fn from(msg: MsgPosEcefDepA) -> Self {
5916 Sbp::MsgPosEcefDepA(msg)
5917 }
5918}
5919
5920impl From<MsgPosLlhDepA> for Sbp {
5921 fn from(msg: MsgPosLlhDepA) -> Self {
5922 Sbp::MsgPosLlhDepA(msg)
5923 }
5924}
5925
5926impl From<MsgBaselineEcefDepA> for Sbp {
5927 fn from(msg: MsgBaselineEcefDepA) -> Self {
5928 Sbp::MsgBaselineEcefDepA(msg)
5929 }
5930}
5931
5932impl From<MsgBaselineNedDepA> for Sbp {
5933 fn from(msg: MsgBaselineNedDepA) -> Self {
5934 Sbp::MsgBaselineNedDepA(msg)
5935 }
5936}
5937
5938impl From<MsgVelEcefDepA> for Sbp {
5939 fn from(msg: MsgVelEcefDepA) -> Self {
5940 Sbp::MsgVelEcefDepA(msg)
5941 }
5942}
5943
5944impl From<MsgVelNedDepA> for Sbp {
5945 fn from(msg: MsgVelNedDepA) -> Self {
5946 Sbp::MsgVelNedDepA(msg)
5947 }
5948}
5949
5950impl From<MsgDopsDepA> for Sbp {
5951 fn from(msg: MsgDopsDepA) -> Self {
5952 Sbp::MsgDopsDepA(msg)
5953 }
5954}
5955
5956impl From<MsgBaselineHeadingDepA> for Sbp {
5957 fn from(msg: MsgBaselineHeadingDepA) -> Self {
5958 Sbp::MsgBaselineHeadingDepA(msg)
5959 }
5960}
5961
5962impl From<MsgDops> for Sbp {
5963 fn from(msg: MsgDops) -> Self {
5964 Sbp::MsgDops(msg)
5965 }
5966}
5967
5968impl From<MsgPosEcef> for Sbp {
5969 fn from(msg: MsgPosEcef) -> Self {
5970 Sbp::MsgPosEcef(msg)
5971 }
5972}
5973
5974impl From<MsgPosLlh> for Sbp {
5975 fn from(msg: MsgPosLlh) -> Self {
5976 Sbp::MsgPosLlh(msg)
5977 }
5978}
5979
5980impl From<MsgBaselineEcef> for Sbp {
5981 fn from(msg: MsgBaselineEcef) -> Self {
5982 Sbp::MsgBaselineEcef(msg)
5983 }
5984}
5985
5986impl From<MsgBaselineNed> for Sbp {
5987 fn from(msg: MsgBaselineNed) -> Self {
5988 Sbp::MsgBaselineNed(msg)
5989 }
5990}
5991
5992impl From<MsgVelEcef> for Sbp {
5993 fn from(msg: MsgVelEcef) -> Self {
5994 Sbp::MsgVelEcef(msg)
5995 }
5996}
5997
5998impl From<MsgVelNed> for Sbp {
5999 fn from(msg: MsgVelNed) -> Self {
6000 Sbp::MsgVelNed(msg)
6001 }
6002}
6003
6004impl From<MsgBaselineHeading> for Sbp {
6005 fn from(msg: MsgBaselineHeading) -> Self {
6006 Sbp::MsgBaselineHeading(msg)
6007 }
6008}
6009
6010impl From<MsgAgeCorrections> for Sbp {
6011 fn from(msg: MsgAgeCorrections) -> Self {
6012 Sbp::MsgAgeCorrections(msg)
6013 }
6014}
6015
6016impl From<MsgPosLlhCov> for Sbp {
6017 fn from(msg: MsgPosLlhCov) -> Self {
6018 Sbp::MsgPosLlhCov(msg)
6019 }
6020}
6021
6022impl From<MsgVelNedCov> for Sbp {
6023 fn from(msg: MsgVelNedCov) -> Self {
6024 Sbp::MsgVelNedCov(msg)
6025 }
6026}
6027
6028impl From<MsgVelBody> for Sbp {
6029 fn from(msg: MsgVelBody) -> Self {
6030 Sbp::MsgVelBody(msg)
6031 }
6032}
6033
6034impl From<MsgPosEcefCov> for Sbp {
6035 fn from(msg: MsgPosEcefCov) -> Self {
6036 Sbp::MsgPosEcefCov(msg)
6037 }
6038}
6039
6040impl From<MsgVelEcefCov> for Sbp {
6041 fn from(msg: MsgVelEcefCov) -> Self {
6042 Sbp::MsgVelEcefCov(msg)
6043 }
6044}
6045
6046impl From<MsgProtectionLevelDepA> for Sbp {
6047 fn from(msg: MsgProtectionLevelDepA) -> Self {
6048 Sbp::MsgProtectionLevelDepA(msg)
6049 }
6050}
6051
6052impl From<MsgProtectionLevel> for Sbp {
6053 fn from(msg: MsgProtectionLevel) -> Self {
6054 Sbp::MsgProtectionLevel(msg)
6055 }
6056}
6057
6058impl From<MsgPosLlhAcc> for Sbp {
6059 fn from(msg: MsgPosLlhAcc) -> Self {
6060 Sbp::MsgPosLlhAcc(msg)
6061 }
6062}
6063
6064impl From<MsgVelCog> for Sbp {
6065 fn from(msg: MsgVelCog) -> Self {
6066 Sbp::MsgVelCog(msg)
6067 }
6068}
6069
6070impl From<MsgOrientQuat> for Sbp {
6071 fn from(msg: MsgOrientQuat) -> Self {
6072 Sbp::MsgOrientQuat(msg)
6073 }
6074}
6075
6076impl From<MsgOrientEuler> for Sbp {
6077 fn from(msg: MsgOrientEuler) -> Self {
6078 Sbp::MsgOrientEuler(msg)
6079 }
6080}
6081
6082impl From<MsgAngularRate> for Sbp {
6083 fn from(msg: MsgAngularRate) -> Self {
6084 Sbp::MsgAngularRate(msg)
6085 }
6086}
6087
6088impl From<MsgPosEcefGnss> for Sbp {
6089 fn from(msg: MsgPosEcefGnss) -> Self {
6090 Sbp::MsgPosEcefGnss(msg)
6091 }
6092}
6093
6094impl From<MsgPosLlhGnss> for Sbp {
6095 fn from(msg: MsgPosLlhGnss) -> Self {
6096 Sbp::MsgPosLlhGnss(msg)
6097 }
6098}
6099
6100impl From<MsgVelEcefGnss> for Sbp {
6101 fn from(msg: MsgVelEcefGnss) -> Self {
6102 Sbp::MsgVelEcefGnss(msg)
6103 }
6104}
6105
6106impl From<MsgVelNedGnss> for Sbp {
6107 fn from(msg: MsgVelNedGnss) -> Self {
6108 Sbp::MsgVelNedGnss(msg)
6109 }
6110}
6111
6112impl From<MsgPosLlhCovGnss> for Sbp {
6113 fn from(msg: MsgPosLlhCovGnss) -> Self {
6114 Sbp::MsgPosLlhCovGnss(msg)
6115 }
6116}
6117
6118impl From<MsgVelNedCovGnss> for Sbp {
6119 fn from(msg: MsgVelNedCovGnss) -> Self {
6120 Sbp::MsgVelNedCovGnss(msg)
6121 }
6122}
6123
6124impl From<MsgPosEcefCovGnss> for Sbp {
6125 fn from(msg: MsgPosEcefCovGnss) -> Self {
6126 Sbp::MsgPosEcefCovGnss(msg)
6127 }
6128}
6129
6130impl From<MsgVelEcefCovGnss> for Sbp {
6131 fn from(msg: MsgVelEcefCovGnss) -> Self {
6132 Sbp::MsgVelEcefCovGnss(msg)
6133 }
6134}
6135
6136impl From<MsgUtcLeapSecond> for Sbp {
6137 fn from(msg: MsgUtcLeapSecond) -> Self {
6138 Sbp::MsgUtcLeapSecond(msg)
6139 }
6140}
6141
6142impl From<MsgReferenceFrameParam> for Sbp {
6143 fn from(msg: MsgReferenceFrameParam) -> Self {
6144 Sbp::MsgReferenceFrameParam(msg)
6145 }
6146}
6147
6148impl From<MsgPoseRelative> for Sbp {
6149 fn from(msg: MsgPoseRelative) -> Self {
6150 Sbp::MsgPoseRelative(msg)
6151 }
6152}
6153
6154impl From<MsgNdbEvent> for Sbp {
6155 fn from(msg: MsgNdbEvent) -> Self {
6156 Sbp::MsgNdbEvent(msg)
6157 }
6158}
6159
6160impl From<MsgLog> for Sbp {
6161 fn from(msg: MsgLog) -> Self {
6162 Sbp::MsgLog(msg)
6163 }
6164}
6165
6166impl From<MsgFwd> for Sbp {
6167 fn from(msg: MsgFwd) -> Self {
6168 Sbp::MsgFwd(msg)
6169 }
6170}
6171
6172impl From<MsgSsrOrbitClockDepA> for Sbp {
6173 fn from(msg: MsgSsrOrbitClockDepA) -> Self {
6174 Sbp::MsgSsrOrbitClockDepA(msg)
6175 }
6176}
6177
6178impl From<MsgSsrOrbitClock> for Sbp {
6179 fn from(msg: MsgSsrOrbitClock) -> Self {
6180 Sbp::MsgSsrOrbitClock(msg)
6181 }
6182}
6183
6184impl From<MsgSsrOrbitClockBounds> for Sbp {
6185 fn from(msg: MsgSsrOrbitClockBounds) -> Self {
6186 Sbp::MsgSsrOrbitClockBounds(msg)
6187 }
6188}
6189
6190impl From<MsgSsrOrbitClockBoundsDegradation> for Sbp {
6191 fn from(msg: MsgSsrOrbitClockBoundsDegradation) -> Self {
6192 Sbp::MsgSsrOrbitClockBoundsDegradation(msg)
6193 }
6194}
6195
6196impl From<MsgSsrCodeBiases> for Sbp {
6197 fn from(msg: MsgSsrCodeBiases) -> Self {
6198 Sbp::MsgSsrCodeBiases(msg)
6199 }
6200}
6201
6202impl From<MsgSsrPhaseBiases> for Sbp {
6203 fn from(msg: MsgSsrPhaseBiases) -> Self {
6204 Sbp::MsgSsrPhaseBiases(msg)
6205 }
6206}
6207
6208impl From<MsgSsrStecCorrectionDepA> for Sbp {
6209 fn from(msg: MsgSsrStecCorrectionDepA) -> Self {
6210 Sbp::MsgSsrStecCorrectionDepA(msg)
6211 }
6212}
6213
6214impl From<MsgSsrCodePhaseBiasesBounds> for Sbp {
6215 fn from(msg: MsgSsrCodePhaseBiasesBounds) -> Self {
6216 Sbp::MsgSsrCodePhaseBiasesBounds(msg)
6217 }
6218}
6219
6220impl From<MsgSsrGriddedCorrectionNoStdDepA> for Sbp {
6221 fn from(msg: MsgSsrGriddedCorrectionNoStdDepA) -> Self {
6222 Sbp::MsgSsrGriddedCorrectionNoStdDepA(msg)
6223 }
6224}
6225
6226impl From<MsgSsrGridDefinitionDepA> for Sbp {
6227 fn from(msg: MsgSsrGridDefinitionDepA) -> Self {
6228 Sbp::MsgSsrGridDefinitionDepA(msg)
6229 }
6230}
6231
6232impl From<MsgSsrTileDefinitionDepA> for Sbp {
6233 fn from(msg: MsgSsrTileDefinitionDepA) -> Self {
6234 Sbp::MsgSsrTileDefinitionDepA(msg)
6235 }
6236}
6237
6238impl From<MsgSsrTileDefinitionDepB> for Sbp {
6239 fn from(msg: MsgSsrTileDefinitionDepB) -> Self {
6240 Sbp::MsgSsrTileDefinitionDepB(msg)
6241 }
6242}
6243
6244impl From<MsgSsrTileDefinition> for Sbp {
6245 fn from(msg: MsgSsrTileDefinition) -> Self {
6246 Sbp::MsgSsrTileDefinition(msg)
6247 }
6248}
6249
6250impl From<MsgSsrGriddedCorrectionDepA> for Sbp {
6251 fn from(msg: MsgSsrGriddedCorrectionDepA) -> Self {
6252 Sbp::MsgSsrGriddedCorrectionDepA(msg)
6253 }
6254}
6255
6256impl From<MsgSsrStecCorrectionDep> for Sbp {
6257 fn from(msg: MsgSsrStecCorrectionDep) -> Self {
6258 Sbp::MsgSsrStecCorrectionDep(msg)
6259 }
6260}
6261
6262impl From<MsgSsrGriddedCorrection> for Sbp {
6263 fn from(msg: MsgSsrGriddedCorrection) -> Self {
6264 Sbp::MsgSsrGriddedCorrection(msg)
6265 }
6266}
6267
6268impl From<MsgSsrStecCorrection> for Sbp {
6269 fn from(msg: MsgSsrStecCorrection) -> Self {
6270 Sbp::MsgSsrStecCorrection(msg)
6271 }
6272}
6273
6274impl From<MsgSsrGriddedCorrectionBounds> for Sbp {
6275 fn from(msg: MsgSsrGriddedCorrectionBounds) -> Self {
6276 Sbp::MsgSsrGriddedCorrectionBounds(msg)
6277 }
6278}
6279
6280impl From<MsgSsrSatelliteApcDep> for Sbp {
6281 fn from(msg: MsgSsrSatelliteApcDep) -> Self {
6282 Sbp::MsgSsrSatelliteApcDep(msg)
6283 }
6284}
6285
6286impl From<MsgSsrSatelliteApc> for Sbp {
6287 fn from(msg: MsgSsrSatelliteApc) -> Self {
6288 Sbp::MsgSsrSatelliteApc(msg)
6289 }
6290}
6291
6292impl From<MsgOsr> for Sbp {
6293 fn from(msg: MsgOsr) -> Self {
6294 Sbp::MsgOsr(msg)
6295 }
6296}
6297
6298impl From<MsgUserData> for Sbp {
6299 fn from(msg: MsgUserData) -> Self {
6300 Sbp::MsgUserData(msg)
6301 }
6302}
6303
6304impl From<MsgImuRaw> for Sbp {
6305 fn from(msg: MsgImuRaw) -> Self {
6306 Sbp::MsgImuRaw(msg)
6307 }
6308}
6309
6310impl From<MsgImuAux> for Sbp {
6311 fn from(msg: MsgImuAux) -> Self {
6312 Sbp::MsgImuAux(msg)
6313 }
6314}
6315
6316impl From<MsgMagRaw> for Sbp {
6317 fn from(msg: MsgMagRaw) -> Self {
6318 Sbp::MsgMagRaw(msg)
6319 }
6320}
6321
6322impl From<MsgOdometry> for Sbp {
6323 fn from(msg: MsgOdometry) -> Self {
6324 Sbp::MsgOdometry(msg)
6325 }
6326}
6327
6328impl From<MsgWheeltick> for Sbp {
6329 fn from(msg: MsgWheeltick) -> Self {
6330 Sbp::MsgWheeltick(msg)
6331 }
6332}
6333
6334impl From<MsgImuComp> for Sbp {
6335 fn from(msg: MsgImuComp) -> Self {
6336 Sbp::MsgImuComp(msg)
6337 }
6338}
6339
6340impl From<MsgSsrFlagHighLevelDepA> for Sbp {
6341 fn from(msg: MsgSsrFlagHighLevelDepA) -> Self {
6342 Sbp::MsgSsrFlagHighLevelDepA(msg)
6343 }
6344}
6345
6346impl From<MsgSsrFlagHighLevel> for Sbp {
6347 fn from(msg: MsgSsrFlagHighLevel) -> Self {
6348 Sbp::MsgSsrFlagHighLevel(msg)
6349 }
6350}
6351
6352impl From<MsgSsrFlagSatellites> for Sbp {
6353 fn from(msg: MsgSsrFlagSatellites) -> Self {
6354 Sbp::MsgSsrFlagSatellites(msg)
6355 }
6356}
6357
6358impl From<MsgSsrFlagTropoGridPoints> for Sbp {
6359 fn from(msg: MsgSsrFlagTropoGridPoints) -> Self {
6360 Sbp::MsgSsrFlagTropoGridPoints(msg)
6361 }
6362}
6363
6364impl From<MsgSsrFlagIonoGridPoints> for Sbp {
6365 fn from(msg: MsgSsrFlagIonoGridPoints) -> Self {
6366 Sbp::MsgSsrFlagIonoGridPoints(msg)
6367 }
6368}
6369
6370impl From<MsgSsrFlagIonoTileSatLos> for Sbp {
6371 fn from(msg: MsgSsrFlagIonoTileSatLos) -> Self {
6372 Sbp::MsgSsrFlagIonoTileSatLos(msg)
6373 }
6374}
6375
6376impl From<MsgSsrFlagIonoGridPointSatLos> for Sbp {
6377 fn from(msg: MsgSsrFlagIonoGridPointSatLos) -> Self {
6378 Sbp::MsgSsrFlagIonoGridPointSatLos(msg)
6379 }
6380}
6381
6382impl From<MsgAcknowledge> for Sbp {
6383 fn from(msg: MsgAcknowledge) -> Self {
6384 Sbp::MsgAcknowledge(msg)
6385 }
6386}
6387
6388impl From<MsgEd25519SignatureDepA> for Sbp {
6389 fn from(msg: MsgEd25519SignatureDepA) -> Self {
6390 Sbp::MsgEd25519SignatureDepA(msg)
6391 }
6392}
6393
6394impl From<MsgEd25519CertificateDep> for Sbp {
6395 fn from(msg: MsgEd25519CertificateDep) -> Self {
6396 Sbp::MsgEd25519CertificateDep(msg)
6397 }
6398}
6399
6400impl From<MsgEd25519SignatureDepB> for Sbp {
6401 fn from(msg: MsgEd25519SignatureDepB) -> Self {
6402 Sbp::MsgEd25519SignatureDepB(msg)
6403 }
6404}
6405
6406impl From<MsgEcdsaCertificate> for Sbp {
6407 fn from(msg: MsgEcdsaCertificate) -> Self {
6408 Sbp::MsgEcdsaCertificate(msg)
6409 }
6410}
6411
6412impl From<MsgCertificateChainDep> for Sbp {
6413 fn from(msg: MsgCertificateChainDep) -> Self {
6414 Sbp::MsgCertificateChainDep(msg)
6415 }
6416}
6417
6418impl From<MsgEcdsaSignatureDepA> for Sbp {
6419 fn from(msg: MsgEcdsaSignatureDepA) -> Self {
6420 Sbp::MsgEcdsaSignatureDepA(msg)
6421 }
6422}
6423
6424impl From<MsgEcdsaSignatureDepB> for Sbp {
6425 fn from(msg: MsgEcdsaSignatureDepB) -> Self {
6426 Sbp::MsgEcdsaSignatureDepB(msg)
6427 }
6428}
6429
6430impl From<MsgEcdsaSignature> for Sbp {
6431 fn from(msg: MsgEcdsaSignature) -> Self {
6432 Sbp::MsgEcdsaSignature(msg)
6433 }
6434}
6435
6436impl From<MsgCertificateChain> for Sbp {
6437 fn from(msg: MsgCertificateChain) -> Self {
6438 Sbp::MsgCertificateChain(msg)
6439 }
6440}
6441
6442impl From<MsgAesCmacSignature> for Sbp {
6443 fn from(msg: MsgAesCmacSignature) -> Self {
6444 Sbp::MsgAesCmacSignature(msg)
6445 }
6446}
6447
6448impl From<MsgFileioConfigReq> for Sbp {
6449 fn from(msg: MsgFileioConfigReq) -> Self {
6450 Sbp::MsgFileioConfigReq(msg)
6451 }
6452}
6453
6454impl From<MsgFileioConfigResp> for Sbp {
6455 fn from(msg: MsgFileioConfigResp) -> Self {
6456 Sbp::MsgFileioConfigResp(msg)
6457 }
6458}
6459
6460impl From<MsgSbasRaw> for Sbp {
6461 fn from(msg: MsgSbasRaw) -> Self {
6462 Sbp::MsgSbasRaw(msg)
6463 }
6464}
6465
6466impl From<MsgLinuxCpuStateDepA> for Sbp {
6467 fn from(msg: MsgLinuxCpuStateDepA) -> Self {
6468 Sbp::MsgLinuxCpuStateDepA(msg)
6469 }
6470}
6471
6472impl From<MsgLinuxMemStateDepA> for Sbp {
6473 fn from(msg: MsgLinuxMemStateDepA) -> Self {
6474 Sbp::MsgLinuxMemStateDepA(msg)
6475 }
6476}
6477
6478impl From<MsgLinuxSysStateDepA> for Sbp {
6479 fn from(msg: MsgLinuxSysStateDepA) -> Self {
6480 Sbp::MsgLinuxSysStateDepA(msg)
6481 }
6482}
6483
6484impl From<MsgLinuxProcessSocketCounts> for Sbp {
6485 fn from(msg: MsgLinuxProcessSocketCounts) -> Self {
6486 Sbp::MsgLinuxProcessSocketCounts(msg)
6487 }
6488}
6489
6490impl From<MsgLinuxProcessSocketQueues> for Sbp {
6491 fn from(msg: MsgLinuxProcessSocketQueues) -> Self {
6492 Sbp::MsgLinuxProcessSocketQueues(msg)
6493 }
6494}
6495
6496impl From<MsgLinuxSocketUsage> for Sbp {
6497 fn from(msg: MsgLinuxSocketUsage) -> Self {
6498 Sbp::MsgLinuxSocketUsage(msg)
6499 }
6500}
6501
6502impl From<MsgLinuxProcessFdCount> for Sbp {
6503 fn from(msg: MsgLinuxProcessFdCount) -> Self {
6504 Sbp::MsgLinuxProcessFdCount(msg)
6505 }
6506}
6507
6508impl From<MsgLinuxProcessFdSummary> for Sbp {
6509 fn from(msg: MsgLinuxProcessFdSummary) -> Self {
6510 Sbp::MsgLinuxProcessFdSummary(msg)
6511 }
6512}
6513
6514impl From<MsgLinuxCpuState> for Sbp {
6515 fn from(msg: MsgLinuxCpuState) -> Self {
6516 Sbp::MsgLinuxCpuState(msg)
6517 }
6518}
6519
6520impl From<MsgLinuxMemState> for Sbp {
6521 fn from(msg: MsgLinuxMemState) -> Self {
6522 Sbp::MsgLinuxMemState(msg)
6523 }
6524}
6525
6526impl From<MsgLinuxSysState> for Sbp {
6527 fn from(msg: MsgLinuxSysState) -> Self {
6528 Sbp::MsgLinuxSysState(msg)
6529 }
6530}
6531
6532impl From<MsgMeasurementPoint> for Sbp {
6533 fn from(msg: MsgMeasurementPoint) -> Self {
6534 Sbp::MsgMeasurementPoint(msg)
6535 }
6536}
6537
6538impl From<MsgProfilingSystemInfo> for Sbp {
6539 fn from(msg: MsgProfilingSystemInfo) -> Self {
6540 Sbp::MsgProfilingSystemInfo(msg)
6541 }
6542}
6543
6544impl From<MsgProfilingThreadInfo> for Sbp {
6545 fn from(msg: MsgProfilingThreadInfo) -> Self {
6546 Sbp::MsgProfilingThreadInfo(msg)
6547 }
6548}
6549
6550impl From<MsgProfilingResourceCounter> for Sbp {
6551 fn from(msg: MsgProfilingResourceCounter) -> Self {
6552 Sbp::MsgProfilingResourceCounter(msg)
6553 }
6554}
6555
6556impl From<MsgStartup> for Sbp {
6557 fn from(msg: MsgStartup) -> Self {
6558 Sbp::MsgStartup(msg)
6559 }
6560}
6561
6562impl From<MsgDgnssStatus> for Sbp {
6563 fn from(msg: MsgDgnssStatus) -> Self {
6564 Sbp::MsgDgnssStatus(msg)
6565 }
6566}
6567
6568impl From<MsgInsStatus> for Sbp {
6569 fn from(msg: MsgInsStatus) -> Self {
6570 Sbp::MsgInsStatus(msg)
6571 }
6572}
6573
6574impl From<MsgCsacTelemetry> for Sbp {
6575 fn from(msg: MsgCsacTelemetry) -> Self {
6576 Sbp::MsgCsacTelemetry(msg)
6577 }
6578}
6579
6580impl From<MsgCsacTelemetryLabels> for Sbp {
6581 fn from(msg: MsgCsacTelemetryLabels) -> Self {
6582 Sbp::MsgCsacTelemetryLabels(msg)
6583 }
6584}
6585
6586impl From<MsgInsUpdates> for Sbp {
6587 fn from(msg: MsgInsUpdates) -> Self {
6588 Sbp::MsgInsUpdates(msg)
6589 }
6590}
6591
6592impl From<MsgGnssTimeOffset> for Sbp {
6593 fn from(msg: MsgGnssTimeOffset) -> Self {
6594 Sbp::MsgGnssTimeOffset(msg)
6595 }
6596}
6597
6598impl From<MsgPpsTime> for Sbp {
6599 fn from(msg: MsgPpsTime) -> Self {
6600 Sbp::MsgPpsTime(msg)
6601 }
6602}
6603
6604impl From<MsgSensorAidEvent> for Sbp {
6605 fn from(msg: MsgSensorAidEvent) -> Self {
6606 Sbp::MsgSensorAidEvent(msg)
6607 }
6608}
6609
6610impl From<MsgGroupMeta> for Sbp {
6611 fn from(msg: MsgGroupMeta) -> Self {
6612 Sbp::MsgGroupMeta(msg)
6613 }
6614}
6615
6616impl From<MsgSolnMeta> for Sbp {
6617 fn from(msg: MsgSolnMeta) -> Self {
6618 Sbp::MsgSolnMeta(msg)
6619 }
6620}
6621
6622impl From<MsgSolnMetaDepA> for Sbp {
6623 fn from(msg: MsgSolnMetaDepA) -> Self {
6624 Sbp::MsgSolnMetaDepA(msg)
6625 }
6626}
6627
6628impl From<MsgStatusJournal> for Sbp {
6629 fn from(msg: MsgStatusJournal) -> Self {
6630 Sbp::MsgStatusJournal(msg)
6631 }
6632}
6633
6634impl From<MsgStatusReport> for Sbp {
6635 fn from(msg: MsgStatusReport) -> Self {
6636 Sbp::MsgStatusReport(msg)
6637 }
6638}
6639
6640impl From<MsgHeartbeat> for Sbp {
6641 fn from(msg: MsgHeartbeat) -> Self {
6642 Sbp::MsgHeartbeat(msg)
6643 }
6644}
6645
6646impl From<Unknown> for Sbp {
6647 fn from(msg: Unknown) -> Self {
6648 Sbp::Unknown(msg)
6649 }
6650}
6651impl From<Invalid> for Sbp {
6652 fn from(msg: Invalid) -> Self {
6653 Sbp::Invalid(msg)
6654 }
6655}