diff --git a/c/include/libsbp/acquisition.h b/c/include/libsbp/acquisition.h index 826310a8b5..91eac9b212 100644 --- a/c/include/libsbp/acquisition.h +++ b/c/include/libsbp/acquisition.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_ACQUISITION_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_ACQUISITION_MESSAGES_H */ diff --git a/c/include/libsbp/bootload.h b/c/include/libsbp/bootload.h index 680951506c..c7cf5cbf44 100644 --- a/c/include/libsbp/bootload.h +++ b/c/include/libsbp/bootload.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_BOOTLOAD_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_BOOTLOAD_MESSAGES_H */ diff --git a/c/include/libsbp/cpp/message_traits.h b/c/include/libsbp/cpp/message_traits.h index e1c7054f73..15cfc59fc4 100644 --- a/c/include/libsbp/cpp/message_traits.h +++ b/c/include/libsbp/cpp/message_traits.h @@ -2688,41 +2688,6 @@ struct MessageTraits { } }; -template <> -struct MessageTraits { - static constexpr sbp_msg_type_t id = SbpMsgGpsLeapSecond; - static const sbp_msg_gps_leap_second_t &get(const sbp_msg_t &msg) { - return msg.gps_leap_second; - } - static sbp_msg_gps_leap_second_t &get(sbp_msg_t &msg) { - return msg.gps_leap_second; - } - static void to_sbp_msg(const sbp_msg_gps_leap_second_t &msg, - sbp_msg_t *sbp_msg) { - sbp_msg->gps_leap_second = msg; - } - static sbp_msg_t to_sbp_msg(const sbp_msg_gps_leap_second_t &msg) { - sbp_msg_t sbp_msg; - sbp_msg.gps_leap_second = msg; - return sbp_msg; - } - static s8 send(sbp_state_t *state, u16 sender_id, - const sbp_msg_gps_leap_second_t &msg, sbp_write_fn_t write) { - return sbp_msg_gps_leap_second_send(state, sender_id, &msg, write); - } - static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_gps_leap_second_t &msg) { - return sbp_msg_gps_leap_second_encode(buf, len, n_written, &msg); - } - static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, - sbp_msg_gps_leap_second_t *msg) { - return sbp_msg_gps_leap_second_decode(buf, len, n_read, msg); - } - static size_t encoded_len(const sbp_msg_gps_leap_second_t &msg) { - return sbp_msg_gps_leap_second_encoded_len(&msg); - } -}; - template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgGpsTimeDepA; @@ -3234,36 +3199,6 @@ struct MessageTraits { } }; -template <> -struct MessageTraits { - static constexpr sbp_msg_type_t id = SbpMsgItrf; - static const sbp_msg_itrf_t &get(const sbp_msg_t &msg) { return msg.itrf; } - static sbp_msg_itrf_t &get(sbp_msg_t &msg) { return msg.itrf; } - static void to_sbp_msg(const sbp_msg_itrf_t &msg, sbp_msg_t *sbp_msg) { - sbp_msg->itrf = msg; - } - static sbp_msg_t to_sbp_msg(const sbp_msg_itrf_t &msg) { - sbp_msg_t sbp_msg; - sbp_msg.itrf = msg; - return sbp_msg; - } - static s8 send(sbp_state_t *state, u16 sender_id, const sbp_msg_itrf_t &msg, - sbp_write_fn_t write) { - return sbp_msg_itrf_send(state, sender_id, &msg, write); - } - static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_itrf_t &msg) { - return sbp_msg_itrf_encode(buf, len, n_written, &msg); - } - static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, - sbp_msg_itrf_t *msg) { - return sbp_msg_itrf_decode(buf, len, n_read, msg); - } - static size_t encoded_len(const sbp_msg_itrf_t &msg) { - return sbp_msg_itrf_encoded_len(&msg); - } -}; - template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgLinuxCpuStateDepA; @@ -4920,6 +4855,42 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgReferenceFrameParam; + static const sbp_msg_reference_frame_param_t &get(const sbp_msg_t &msg) { + return msg.reference_frame_param; + } + static sbp_msg_reference_frame_param_t &get(sbp_msg_t &msg) { + return msg.reference_frame_param; + } + static void to_sbp_msg(const sbp_msg_reference_frame_param_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->reference_frame_param = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_reference_frame_param_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.reference_frame_param = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_reference_frame_param_t &msg, + sbp_write_fn_t write) { + return sbp_msg_reference_frame_param_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_reference_frame_param_t &msg) { + return sbp_msg_reference_frame_param_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_reference_frame_param_t *msg) { + return sbp_msg_reference_frame_param_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_reference_frame_param_t &msg) { + return sbp_msg_reference_frame_param_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgResetDep; @@ -7247,6 +7218,41 @@ struct MessageTraits { } }; +template <> +struct MessageTraits { + static constexpr sbp_msg_type_t id = SbpMsgUtcLeapSecond; + static const sbp_msg_utc_leap_second_t &get(const sbp_msg_t &msg) { + return msg.utc_leap_second; + } + static sbp_msg_utc_leap_second_t &get(sbp_msg_t &msg) { + return msg.utc_leap_second; + } + static void to_sbp_msg(const sbp_msg_utc_leap_second_t &msg, + sbp_msg_t *sbp_msg) { + sbp_msg->utc_leap_second = msg; + } + static sbp_msg_t to_sbp_msg(const sbp_msg_utc_leap_second_t &msg) { + sbp_msg_t sbp_msg; + sbp_msg.utc_leap_second = msg; + return sbp_msg; + } + static s8 send(sbp_state_t *state, u16 sender_id, + const sbp_msg_utc_leap_second_t &msg, sbp_write_fn_t write) { + return sbp_msg_utc_leap_second_send(state, sender_id, &msg, write); + } + static s8 encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_utc_leap_second_t &msg) { + return sbp_msg_utc_leap_second_encode(buf, len, n_written, &msg); + } + static s8 decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_utc_leap_second_t *msg) { + return sbp_msg_utc_leap_second_decode(buf, len, n_read, msg); + } + static size_t encoded_len(const sbp_msg_utc_leap_second_t &msg) { + return sbp_msg_utc_leap_second_encoded_len(&msg); + } +}; + template <> struct MessageTraits { static constexpr sbp_msg_type_t id = SbpMsgUtcTimeGnss; diff --git a/c/include/libsbp/ext_events.h b/c/include/libsbp/ext_events.h index 7b4c60cd5d..c6ed4dcc8b 100644 --- a/c/include/libsbp/ext_events.h +++ b/c/include/libsbp/ext_events.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_EXT_EVENTS_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_EXT_EVENTS_MESSAGES_H */ diff --git a/c/include/libsbp/file_io.h b/c/include/libsbp/file_io.h index 68ca30c29b..289a20a04d 100644 --- a/c/include/libsbp/file_io.h +++ b/c/include/libsbp/file_io.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_FILE_IO_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_FILE_IO_MESSAGES_H */ diff --git a/c/include/libsbp/flash.h b/c/include/libsbp/flash.h index 2a0b7397e2..2b9fea98e0 100644 --- a/c/include/libsbp/flash.h +++ b/c/include/libsbp/flash.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_FLASH_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_FLASH_MESSAGES_H */ diff --git a/c/include/libsbp/gnss.h b/c/include/libsbp/gnss.h index 43df846424..caa105c97a 100644 --- a/c/include/libsbp/gnss.h +++ b/c/include/libsbp/gnss.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_GNSS_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_GNSS_MESSAGES_H */ diff --git a/c/include/libsbp/imu.h b/c/include/libsbp/imu.h index ee2db9276f..94c00a97ba 100644 --- a/c/include/libsbp/imu.h +++ b/c/include/libsbp/imu.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_IMU_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_IMU_MESSAGES_H */ diff --git a/c/include/libsbp/integrity.h b/c/include/libsbp/integrity.h index 20a99b3f59..bbdc073a2a 100644 --- a/c/include/libsbp/integrity.h +++ b/c/include/libsbp/integrity.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_INTEGRITY_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_INTEGRITY_MESSAGES_H */ diff --git a/c/include/libsbp/legacy/cpp/message_traits.h b/c/include/libsbp/legacy/cpp/message_traits.h index 0d3549f8c1..a81bcb944b 100644 --- a/c/include/libsbp/legacy/cpp/message_traits.h +++ b/c/include/libsbp/legacy/cpp/message_traits.h @@ -914,13 +914,13 @@ struct MessageTraits { template<> -struct MessageTraits { +struct MessageTraits { static constexpr u16 id = 570; }; template<> -struct MessageTraits { +struct MessageTraits { static constexpr u16 id = 580; }; diff --git a/c/include/libsbp/legacy/navigation.h b/c/include/libsbp/legacy/navigation.h index b3817150e6..1bd7e72e6b 100644 --- a/c/include/libsbp/legacy/navigation.h +++ b/c/include/libsbp/legacy/navigation.h @@ -940,22 +940,22 @@ typedef struct SBP_ATTR_PACKED { u16 ref_wn; /**< Leap second reference week number. [weeks] */ u8 ref_dn; /**< Leap second reference day number. [days] */ s8 count_after; /**< Leap second count after insertion. [s] */ -} msg_gps_leap_second_t; - -typedef struct SBP_ATTR_PACKED { - u8 ssr_iod; /**< SSR IOD parameter. */ - u8 sn_counter_n; /**< Source-Name Counter N. */ - char sn[31]; /**< Source-Name */ - u8 tn_counter_m; /**< Target-Name Counter M. */ - char tn[31]; /**< Target-Name */ - u8 sin; /**< System Identification Number. */ - u16 utn; /**< Utilized Transformation Message. */ - u16 re_t0; /**< Reference Epoch t0 for transformation parameter - set given as Modified Julian Day (MDJ) Number - minus 44244 days. [1 day] */ - s32 delta_X0; /**< Translation in X for Reference Epoch t0. [0.001 m] */ - s32 delta_Y0; /**< Translation in Y for Reference Epoch t0. [0.001 m] */ - s32 delta_Z0; /**< Translation in Z for Reference Epoch t0. [0.001 m] */ +} msg_utc_leap_second_t; + +typedef struct SBP_ATTR_PACKED { + u8 ssr_iod; /**< SSR IOD parameter. */ + char sn[32]; /**< Name of source coordinate-system using the EPSG + identification code. */ + char tn[32]; /**< Name of target coordinate-system using the EPSG + identification code. */ + u8 sin; /**< System Identification Number. */ + u16 utn; /**< Utilized Transformation Message. */ + u16 re_t0; /**< Reference Epoch t0 for transformation parameter + set given as Modified Julian Day (MDJ) Number + minus 44244 days. [1 day] */ + s32 delta_X0; /**< Translation in X for Reference Epoch t0. [0.001 m] */ + s32 delta_Y0; /**< Translation in Y for Reference Epoch t0. [0.001 m] */ + s32 delta_Z0; /**< Translation in Z for Reference Epoch t0. [0.001 m] */ s32 theta_01; /**< Rotation around the X-axis for Reference Epoch t0. [0.00002 "] */ s32 theta_02; /**< Rotation around the Y-axis for Reference Epoch t0. [0.00002 @@ -973,7 +973,7 @@ typedef struct SBP_ATTR_PACKED { s32 dot_theta_03; /**< Rate of change of rotation around the Z-axis. [0.0000004 "/yr] */ s16 dot_scale; /**< Rate of change of scale correction. [0.0000002 ppm/yr] */ -} msg_itrf_t; +} msg_reference_frame_param_t; /** \} */ diff --git a/c/include/libsbp/legacy/ssr.h b/c/include/libsbp/legacy/ssr.h index e278b8e7bf..2a595ffd01 100644 --- a/c/include/libsbp/legacy/ssr.h +++ b/c/include/libsbp/legacy/ssr.h @@ -321,10 +321,9 @@ typedef struct SBP_ATTR_PACKED { stec_residual_t stec_residual; /**< STEC residuals (mean, stddev) */ u8 stec_bound_mu; /**< Error Bound Mean. See Note 1. [m] */ u8 stec_bound_sig; /**< Error Bound StDev. See Note 1. [m] */ - u8 stec_bound_mu_dot; /**< Error Bound Mean First derivative. Range: - 0-0.01275 m/s [0.00005 m/s] */ - u8 stec_bound_sig_dot; /**< Error Bound StDev First derivative. Range: - 0-0.01275 m/s [0.00005 m/s] */ + u8 stec_bound_mu_dot; /**< Error Bound Mean First derivative. [0.00005 m/s] */ + u8 stec_bound_sig_dot; /**< Error Bound StDev First derivative. [0.00005 m/s] + */ } stec_sat_element_integrity_t; /** Gridded troposhere and STEC correction residuals bounds @@ -335,9 +334,8 @@ typedef struct SBP_ATTR_PACKED { typedef struct SBP_ATTR_PACKED { bounds_header_t header; /**< Header of a bounds message. */ - u8 ssr_iod_atmo; /**< IOD of the SSR atmospheric correction. */ - u16 tile_set_id; /**< Unique identifier of the set this tile - belongs to. */ + u8 ssr_iod_atmo; /**< IOD of the correction. */ + u16 tile_set_id; /**< Set this tile belongs to. */ u16 tile_id; /**< Unique identifier of this tile in the tile set. */ u8 tropo_qi; /**< Tropo Quality Indicator. Similar to RTCM @@ -346,11 +344,13 @@ typedef struct SBP_ATTR_PACKED { tropospheric_delay_correction_t tropo_delay_correction; /**< Tropospheric delay at grid point. */ - u8 tropo_bound_mu; /**< Troposphere Error Bound Mean. Range: - 0-1.275 m [0.005 m] */ - u8 tropo_bound_sig; /**< Troposphere Error Bound StDev. Range: - 0-1.275 m [0.005 m] */ - u8 n_sats; /**< Number of satellites. */ + u8 tropo_v_hydro_bound_mu; /**< Vertical Hydrostatic Error Bound Mean. [0.005 + m] */ + u8 tropo_v_hydro_bound_sig; /**< Vertical Hydrostatic Error Bound StDev. + [0.005 m] */ + u8 tropo_v_wet_bound_mu; /**< Vertical Wet Error Bound Mean. [0.005 m] */ + u8 tropo_v_wet_bound_sig; /**< Vertical Wet Error Bound StDev. [0.005 m] */ + u8 n_sats; /**< Number of satellites. */ stec_sat_element_integrity_t stec_sat_list[0]; /**< Array of STEC polynomial coefficients @@ -675,19 +675,22 @@ typedef struct SBP_ATTR_PACKED { u8 orb_radial_bound_mu; /**< Mean Radial. See Note 1. [m] */ u8 orb_along_bound_mu; /**< Mean Along-Track. See Note 1. [m] */ u8 orb_cross_bound_mu; /**< Mean Cross-Track. See Note 1. [m] */ - u8 orb_radial_bound_sig; /**< Standard Deviation Radial. See Note 1. [m] */ - u8 orb_along_bound_sig; /**< Standard Deviation Along-Track. See Note 1. [m] + u8 orb_radial_bound_sig; /**< Standard Deviation Radial. See Note 2. [m] */ + u8 orb_along_bound_sig; /**< Standard Deviation Along-Track. See Note 2. [m] */ - u8 orb_cross_bound_sig; /**< Standard Deviation Cross-Track. See Note 1. [m] + u8 orb_cross_bound_sig; /**< Standard Deviation Cross-Track. See Note 2. [m] */ u8 clock_bound_mu; /**< Clock Bound Mean. See Note 1. [m] */ - u8 clock_bound_sig; /**< Clock Bound Standard Deviation. See Note 1. [m] */ + u8 clock_bound_sig; /**< Clock Bound Standard Deviation. See Note 2. [m] */ } orbit_clock_bound_t; /** Combined Orbit and Clock Bound * - * Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + * Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). + * + * Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230). */ typedef struct SBP_ATTR_PACKED { @@ -763,7 +766,9 @@ typedef struct SBP_ATTR_PACKED { u64 sat_bitmask; /**< Satellite Bit Mask. Put 1 for each satellite where the following degradation parameters - are applicable, 0 otherwise. */ + are applicable, 0 otherwise. + Encoded following RTCM DF394 + specification. */ orbit_clock_bound_degradation_t orbit_clock_bounds_degradation; /**< Orbit and diff --git a/c/include/libsbp/linux.h b/c/include/libsbp/linux.h index bbfe27be9c..6053dd5227 100644 --- a/c/include/libsbp/linux.h +++ b/c/include/libsbp/linux.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_LINUX_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_LINUX_MESSAGES_H */ diff --git a/c/include/libsbp/logging.h b/c/include/libsbp/logging.h index e655853e17..4402638ec5 100644 --- a/c/include/libsbp/logging.h +++ b/c/include/libsbp/logging.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_LOGGING_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_LOGGING_MESSAGES_H */ diff --git a/c/include/libsbp/mag.h b/c/include/libsbp/mag.h index fce2cf0eda..01c3afbaaf 100644 --- a/c/include/libsbp/mag.h +++ b/c/include/libsbp/mag.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_MAG_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_MAG_MESSAGES_H */ diff --git a/c/include/libsbp/navigation.h b/c/include/libsbp/navigation.h index 70cebcd020..36d1db2e36 100644 --- a/c/include/libsbp/navigation.h +++ b/c/include/libsbp/navigation.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_NAVIGATION_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_NAVIGATION_MESSAGES_H */ diff --git a/c/include/libsbp/navigation_macros.h b/c/include/libsbp/navigation_macros.h index ac018e5af7..e2ad5dcf0e 100644 --- a/c/include/libsbp/navigation_macros.h +++ b/c/include/libsbp/navigation_macros.h @@ -1736,32 +1736,34 @@ */ #define SBP_MSG_PROTECTION_LEVEL_ENCODED_LEN 76u -#define SBP_MSG_GPS_LEAP_SECOND 0x023A +#define SBP_MSG_UTC_LEAP_SECOND 0x023A /** - * Encoded length of sbp_msg_gps_leap_second_t (V4 API) and - * msg_gps_leap_second_t (legacy API) + * Encoded length of sbp_msg_utc_leap_second_t (V4 API) and + * msg_utc_leap_second_t (legacy API) */ -#define SBP_MSG_GPS_LEAP_SECOND_ENCODED_LEN 14u +#define SBP_MSG_UTC_LEAP_SECOND_ENCODED_LEN 14u -#define SBP_MSG_ITRF 0x0244 +#define SBP_MSG_REFERENCE_FRAME_PARAM 0x0244 /** - * The maximum number of items that can be stored in sbp_msg_itrf_t::sn (V4 API) - * or msg_itrf_t::sn (legacy API) before the maximum SBP message size is - * exceeded + * The maximum number of items that can be stored in + * sbp_msg_reference_frame_param_t::sn (V4 API) or + * msg_reference_frame_param_t::sn (legacy API) before the maximum SBP message + * size is exceeded */ -#define SBP_MSG_ITRF_SN_MAX 31u +#define SBP_MSG_REFERENCE_FRAME_PARAM_SN_MAX 32u /** - * The maximum number of items that can be stored in sbp_msg_itrf_t::tn (V4 API) - * or msg_itrf_t::tn (legacy API) before the maximum SBP message size is - * exceeded + * The maximum number of items that can be stored in + * sbp_msg_reference_frame_param_t::tn (V4 API) or + * msg_reference_frame_param_t::tn (legacy API) before the maximum SBP message + * size is exceeded */ -#define SBP_MSG_ITRF_TN_MAX 31u +#define SBP_MSG_REFERENCE_FRAME_PARAM_TN_MAX 32u /** - * Encoded length of sbp_msg_itrf_t (V4 API) and - * msg_itrf_t (legacy API) + * Encoded length of sbp_msg_reference_frame_param_t (V4 API) and + * msg_reference_frame_param_t (legacy API) */ -#define SBP_MSG_ITRF_ENCODED_LEN 124u +#define SBP_MSG_REFERENCE_FRAME_PARAM_ENCODED_LEN 124u #endif /* LIBSBP_NAVIGATION_MACROS_H */ diff --git a/c/include/libsbp/ndb.h b/c/include/libsbp/ndb.h index a1a76cd00f..726db3788d 100644 --- a/c/include/libsbp/ndb.h +++ b/c/include/libsbp/ndb.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_NDB_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_NDB_MESSAGES_H */ diff --git a/c/include/libsbp/observation.h b/c/include/libsbp/observation.h index 0ec9ad1cc2..801c5eec91 100644 --- a/c/include/libsbp/observation.h +++ b/c/include/libsbp/observation.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_OBSERVATION_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_OBSERVATION_MESSAGES_H */ diff --git a/c/include/libsbp/orientation.h b/c/include/libsbp/orientation.h index e317209ccf..708e2e60e3 100644 --- a/c/include/libsbp/orientation.h +++ b/c/include/libsbp/orientation.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_ORIENTATION_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_ORIENTATION_MESSAGES_H */ diff --git a/c/include/libsbp/piksi.h b/c/include/libsbp/piksi.h index 0a9c8e20f7..bb8343206b 100644 --- a/c/include/libsbp/piksi.h +++ b/c/include/libsbp/piksi.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_PIKSI_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_PIKSI_MESSAGES_H */ diff --git a/c/include/libsbp/sbas.h b/c/include/libsbp/sbas.h index fbda482604..262385f6f7 100644 --- a/c/include/libsbp/sbas.h +++ b/c/include/libsbp/sbas.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_SBAS_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_SBAS_MESSAGES_H */ diff --git a/c/include/libsbp/sbp_msg_type.h b/c/include/libsbp/sbp_msg_type.h index 1be546c6e4..9dda8899e0 100644 --- a/c/include/libsbp/sbp_msg_type.h +++ b/c/include/libsbp/sbp_msg_type.h @@ -127,7 +127,6 @@ typedef enum { SbpMsgGloBiases = SBP_MSG_GLO_BIASES, SbpMsgGnssCapb = SBP_MSG_GNSS_CAPB, SbpMsgGnssTimeOffset = SBP_MSG_GNSS_TIME_OFFSET, - SbpMsgGpsLeapSecond = SBP_MSG_GPS_LEAP_SECOND, SbpMsgGpsTimeDepA = SBP_MSG_GPS_TIME_DEP_A, SbpMsgGpsTimeGnss = SBP_MSG_GPS_TIME_GNSS, SbpMsgGpsTime = SBP_MSG_GPS_TIME, @@ -143,7 +142,6 @@ typedef enum { SbpMsgInsStatus = SBP_MSG_INS_STATUS, SbpMsgInsUpdates = SBP_MSG_INS_UPDATES, SbpMsgIono = SBP_MSG_IONO, - SbpMsgItrf = SBP_MSG_ITRF, SbpMsgLinuxCpuStateDepA = SBP_MSG_LINUX_CPU_STATE_DEP_A, SbpMsgLinuxCpuState = SBP_MSG_LINUX_CPU_STATE, SbpMsgLinuxMemStateDepA = SBP_MSG_LINUX_MEM_STATE_DEP_A, @@ -190,6 +188,7 @@ typedef enum { SbpMsgPrintDep = SBP_MSG_PRINT_DEP, SbpMsgProtectionLevelDepA = SBP_MSG_PROTECTION_LEVEL_DEP_A, SbpMsgProtectionLevel = SBP_MSG_PROTECTION_LEVEL, + SbpMsgReferenceFrameParam = SBP_MSG_REFERENCE_FRAME_PARAM, SbpMsgResetDep = SBP_MSG_RESET_DEP, SbpMsgResetFilters = SBP_MSG_RESET_FILTERS, SbpMsgReset = SBP_MSG_RESET, @@ -257,6 +256,7 @@ typedef enum { SbpMsgUartStateDepa = SBP_MSG_UART_STATE_DEPA, SbpMsgUartState = SBP_MSG_UART_STATE, SbpMsgUserData = SBP_MSG_USER_DATA, + SbpMsgUtcLeapSecond = SBP_MSG_UTC_LEAP_SECOND, SbpMsgUtcTimeGnss = SBP_MSG_UTC_TIME_GNSS, SbpMsgUtcTime = SBP_MSG_UTC_TIME, SbpMsgVelBody = SBP_MSG_VEL_BODY, diff --git a/c/include/libsbp/settings.h b/c/include/libsbp/settings.h index dd7f13023d..730ca93f34 100644 --- a/c/include/libsbp/settings.h +++ b/c/include/libsbp/settings.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_SETTINGS_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_SETTINGS_MESSAGES_H */ diff --git a/c/include/libsbp/solution_meta.h b/c/include/libsbp/solution_meta.h index 3a728868e5..f1cf93df3b 100644 --- a/c/include/libsbp/solution_meta.h +++ b/c/include/libsbp/solution_meta.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_SOLUTION_META_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_SOLUTION_META_MESSAGES_H */ diff --git a/c/include/libsbp/ssr.h b/c/include/libsbp/ssr.h index bf0a12dbbc..9ccdff09ef 100644 --- a/c/include/libsbp/ssr.h +++ b/c/include/libsbp/ssr.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_SSR_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_SSR_MESSAGES_H */ diff --git a/c/include/libsbp/ssr_macros.h b/c/include/libsbp/ssr_macros.h index 30e383ccdd..4cd8bc86a4 100644 --- a/c/include/libsbp/ssr_macros.h +++ b/c/include/libsbp/ssr_macros.h @@ -238,7 +238,7 @@ * See the documentation for libsbp for more details regarding the message * structure and its variable length component(s) */ -#define SBP_MSG_SSR_GRIDDED_CORRECTION_BOUNDS_ENCODED_OVERHEAD 25u +#define SBP_MSG_SSR_GRIDDED_CORRECTION_BOUNDS_ENCODED_OVERHEAD 27u #define SBP_MSG_SSR_TILE_DEFINITION_DEP 0x05F6 /** diff --git a/c/include/libsbp/system.h b/c/include/libsbp/system.h index 5455beddbb..865d72faed 100644 --- a/c/include/libsbp/system.h +++ b/c/include/libsbp/system.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_SYSTEM_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_SYSTEM_MESSAGES_H */ diff --git a/c/include/libsbp/tracking.h b/c/include/libsbp/tracking.h index 5b86cb8cdc..71c1669579 100644 --- a/c/include/libsbp/tracking.h +++ b/c/include/libsbp/tracking.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_TRACKING_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_TRACKING_MESSAGES_H */ diff --git a/c/include/libsbp/user.h b/c/include/libsbp/user.h index d74a362840..7f769b249d 100644 --- a/c/include/libsbp/user.h +++ b/c/include/libsbp/user.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_USER_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_USER_MESSAGES_H */ diff --git a/c/include/libsbp/v4/navigation.h b/c/include/libsbp/v4/navigation.h index f61fd07640..fc89dacc0c 100644 --- a/c/include/libsbp/v4/navigation.h +++ b/c/include/libsbp/v4/navigation.h @@ -26,11 +26,9 @@ #include #include #include -#include #include #include #include -#include #include #include #include @@ -44,6 +42,8 @@ #include #include #include +#include +#include #include #include #include diff --git a/c/include/libsbp/v4/navigation/MSG_ITRF.h b/c/include/libsbp/v4/navigation/MSG_REFERENCE_FRAME_PARAM.h similarity index 57% rename from c/include/libsbp/v4/navigation/MSG_ITRF.h rename to c/include/libsbp/v4/navigation/MSG_REFERENCE_FRAME_PARAM.h index 361db39f5c..e92f9fe49b 100644 --- a/c/include/libsbp/v4/navigation/MSG_ITRF.h +++ b/c/include/libsbp/v4/navigation/MSG_REFERENCE_FRAME_PARAM.h @@ -15,8 +15,8 @@ * with generate.py. Please do not hand edit! *****************************************************************************/ -#ifndef LIBSBP_V4_NAVIGATION_MSG_ITRF_H -#define LIBSBP_V4_NAVIGATION_MSG_ITRF_H +#ifndef LIBSBP_V4_NAVIGATION_MSG_REFERENCE_FRAME_PARAM_H +#define LIBSBP_V4_NAVIGATION_MSG_REFERENCE_FRAME_PARAM_H #include #include @@ -35,7 +35,7 @@ extern "C" { /****************************************************************************** * - * SBP_MSG_ITRF + * SBP_MSG_REFERENCE_FRAME_PARAM * *****************************************************************************/ typedef struct { @@ -45,24 +45,14 @@ typedef struct { u8 ssr_iod; /** - * Source-Name Counter N. + * Name of source coordinate-system using the EPSG identification code. */ - u8 sn_counter_n; + char sn[SBP_MSG_REFERENCE_FRAME_PARAM_SN_MAX]; /** - * Source-Name + * Name of target coordinate-system using the EPSG identification code. */ - char sn[SBP_MSG_ITRF_SN_MAX]; - - /** - * Target-Name Counter M. - */ - u8 tn_counter_m; - - /** - * Target-Name - */ - char tn[SBP_MSG_ITRF_TN_MAX]; + char tn[SBP_MSG_REFERENCE_FRAME_PARAM_TN_MAX]; /** * System Identification Number. @@ -149,21 +139,22 @@ typedef struct { * Rate of change of scale correction. [0.0000002 ppm/yr] */ s16 dot_scale; -} sbp_msg_itrf_t; +} sbp_msg_reference_frame_param_t; /** - * Get encoded size of an instance of sbp_msg_itrf_t + * Get encoded size of an instance of sbp_msg_reference_frame_param_t * - * @param msg sbp_msg_itrf_t instance + * @param msg sbp_msg_reference_frame_param_t instance * @return Length of on-wire representation */ -static inline size_t sbp_msg_itrf_encoded_len(const sbp_msg_itrf_t *msg) { +static inline size_t sbp_msg_reference_frame_param_encoded_len( + const sbp_msg_reference_frame_param_t *msg) { (void)msg; - return SBP_MSG_ITRF_ENCODED_LEN; + return SBP_MSG_REFERENCE_FRAME_PARAM_ENCODED_LEN; } /** - * Encode an instance of sbp_msg_itrf_t to wire representation + * Encode an instance of sbp_msg_reference_frame_param_t to wire representation * * This function encodes the given instance in to the user provided buffer. The * buffer provided to this function must be large enough to store the encoded @@ -178,34 +169,39 @@ static inline size_t sbp_msg_itrf_encoded_len(const sbp_msg_itrf_t *msg) { * @param len Length of \p buf * @param n_written If not null, on success will be set to the number of bytes * written to \p buf - * @param msg Instance of sbp_msg_itrf_t to encode + * @param msg Instance of sbp_msg_reference_frame_param_t to encode * @return SBP_OK on success, or other libsbp error code */ -SBP_EXPORT s8 sbp_msg_itrf_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_itrf_t *msg); +SBP_EXPORT s8 sbp_msg_reference_frame_param_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_reference_frame_param_t *msg); /** - * Decode an instance of sbp_msg_itrf_t from wire representation + * Decode an instance of sbp_msg_reference_frame_param_t from wire + * representation * - * This function decodes the wire representation of a sbp_msg_itrf_t message to - * the given instance. The caller must specify the length of the buffer in the - * \p len parameter. If non-null the number of bytes read from the buffer will - * be returned in \p n_read. + * This function decodes the wire representation of a + * sbp_msg_reference_frame_param_t message to the given instance. The caller + * must specify the length of the buffer in the \p len parameter. If non-null + * the number of bytes read from the buffer will be returned in \p n_read. * - * @param buf Wire representation of the sbp_msg_itrf_t instance + * @param buf Wire representation of the sbp_msg_reference_frame_param_t + * instance * @param len Length of \p buf * @param n_read If not null, on success will be set to the number of bytes read * from \p buf * @param msg Destination * @return SBP_OK on success, or other libsbp error code */ -SBP_EXPORT s8 sbp_msg_itrf_decode(const uint8_t *buf, uint8_t len, - uint8_t *n_read, sbp_msg_itrf_t *msg); +SBP_EXPORT s8 sbp_msg_reference_frame_param_decode( + const uint8_t *buf, uint8_t len, uint8_t *n_read, + sbp_msg_reference_frame_param_t *msg); /** - * Send an instance of sbp_msg_itrf_t with the given write function + * Send an instance of sbp_msg_reference_frame_param_t with the given write + * function * * An equivalent of #sbp_message_send which operates specifically on - * sbp_msg_itrf_t + * sbp_msg_reference_frame_param_t * * The given message will be encoded to wire representation and passed in to the * given write function callback. The write callback will be called several @@ -217,12 +213,12 @@ SBP_EXPORT s8 sbp_msg_itrf_decode(const uint8_t *buf, uint8_t len, * @param write Write function * @return SBP_OK on success, or other libsbp error code */ -SBP_EXPORT s8 sbp_msg_itrf_send(sbp_state_t *s, u16 sender_id, - const sbp_msg_itrf_t *msg, - sbp_write_fn_t write); +SBP_EXPORT s8 sbp_msg_reference_frame_param_send( + sbp_state_t *s, u16 sender_id, const sbp_msg_reference_frame_param_t *msg, + sbp_write_fn_t write); /** - * Compare two instances of sbp_msg_itrf_t + * Compare two instances of sbp_msg_reference_frame_param_t * * The two instances will be compared and a value returned consistent with the * return codes of comparison functions from the C standard library @@ -232,46 +228,47 @@ SBP_EXPORT s8 sbp_msg_itrf_send(sbp_state_t *s, u16 sender_id, * b A value greater than 0 will be returned if \p b is considered to be greater * than \p b * - * @param a sbp_msg_itrf_t instance - * @param b sbp_msg_itrf_t instance + * @param a sbp_msg_reference_frame_param_t instance + * @param b sbp_msg_reference_frame_param_t instance * @return 0, <0, >0 */ -SBP_EXPORT int sbp_msg_itrf_cmp(const sbp_msg_itrf_t *a, - const sbp_msg_itrf_t *b); +SBP_EXPORT int sbp_msg_reference_frame_param_cmp( + const sbp_msg_reference_frame_param_t *a, + const sbp_msg_reference_frame_param_t *b); #ifdef __cplusplus } -static inline bool operator==(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) == 0; +static inline bool operator==(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) == 0; } -static inline bool operator!=(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) != 0; +static inline bool operator!=(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) != 0; } -static inline bool operator<(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) < 0; +static inline bool operator<(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) < 0; } -static inline bool operator<=(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) <= 0; +static inline bool operator<=(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) <= 0; } -static inline bool operator>(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) > 0; +static inline bool operator>(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) > 0; } -static inline bool operator>=(const sbp_msg_itrf_t &lhs, - const sbp_msg_itrf_t &rhs) { - return sbp_msg_itrf_cmp(&lhs, &rhs) >= 0; +static inline bool operator>=(const sbp_msg_reference_frame_param_t &lhs, + const sbp_msg_reference_frame_param_t &rhs) { + return sbp_msg_reference_frame_param_cmp(&lhs, &rhs) >= 0; } #endif // ifdef __cplusplus -#endif /* LIBSBP_V4_NAVIGATION_MSG_ITRF_H */ +#endif /* LIBSBP_V4_NAVIGATION_MSG_REFERENCE_FRAME_PARAM_H */ diff --git a/c/include/libsbp/v4/navigation/MSG_GPS_LEAP_SECOND.h b/c/include/libsbp/v4/navigation/MSG_UTC_LEAP_SECOND.h similarity index 63% rename from c/include/libsbp/v4/navigation/MSG_GPS_LEAP_SECOND.h rename to c/include/libsbp/v4/navigation/MSG_UTC_LEAP_SECOND.h index 35dc956dc3..79b3692f19 100644 --- a/c/include/libsbp/v4/navigation/MSG_GPS_LEAP_SECOND.h +++ b/c/include/libsbp/v4/navigation/MSG_UTC_LEAP_SECOND.h @@ -15,8 +15,8 @@ * with generate.py. Please do not hand edit! *****************************************************************************/ -#ifndef LIBSBP_V4_NAVIGATION_MSG_GPS_LEAP_SECOND_H -#define LIBSBP_V4_NAVIGATION_MSG_GPS_LEAP_SECOND_H +#ifndef LIBSBP_V4_NAVIGATION_MSG_UTC_LEAP_SECOND_H +#define LIBSBP_V4_NAVIGATION_MSG_UTC_LEAP_SECOND_H #include #include @@ -35,7 +35,7 @@ extern "C" { /****************************************************************************** * - * SBP_MSG_GPS_LEAP_SECOND + * SBP_MSG_UTC_LEAP_SECOND * *****************************************************************************/ /** Leap second SBP message. @@ -92,22 +92,22 @@ typedef struct { * Leap second count after insertion. [s] */ s8 count_after; -} sbp_msg_gps_leap_second_t; +} sbp_msg_utc_leap_second_t; /** - * Get encoded size of an instance of sbp_msg_gps_leap_second_t + * Get encoded size of an instance of sbp_msg_utc_leap_second_t * - * @param msg sbp_msg_gps_leap_second_t instance + * @param msg sbp_msg_utc_leap_second_t instance * @return Length of on-wire representation */ -static inline size_t sbp_msg_gps_leap_second_encoded_len( - const sbp_msg_gps_leap_second_t *msg) { +static inline size_t sbp_msg_utc_leap_second_encoded_len( + const sbp_msg_utc_leap_second_t *msg) { (void)msg; - return SBP_MSG_GPS_LEAP_SECOND_ENCODED_LEN; + return SBP_MSG_UTC_LEAP_SECOND_ENCODED_LEN; } /** - * Encode an instance of sbp_msg_gps_leap_second_t to wire representation + * Encode an instance of sbp_msg_utc_leap_second_t to wire representation * * This function encodes the given instance in to the user provided buffer. The * buffer provided to this function must be large enough to store the encoded @@ -122,36 +122,36 @@ static inline size_t sbp_msg_gps_leap_second_encoded_len( * @param len Length of \p buf * @param n_written If not null, on success will be set to the number of bytes * written to \p buf - * @param msg Instance of sbp_msg_gps_leap_second_t to encode + * @param msg Instance of sbp_msg_utc_leap_second_t to encode * @return SBP_OK on success, or other libsbp error code */ SBP_EXPORT s8 -sbp_msg_gps_leap_second_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_gps_leap_second_t *msg); +sbp_msg_utc_leap_second_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_utc_leap_second_t *msg); /** - * Decode an instance of sbp_msg_gps_leap_second_t from wire representation + * Decode an instance of sbp_msg_utc_leap_second_t from wire representation * - * This function decodes the wire representation of a sbp_msg_gps_leap_second_t + * This function decodes the wire representation of a sbp_msg_utc_leap_second_t * message to the given instance. The caller must specify the length of the * buffer in the \p len parameter. If non-null the number of bytes read from the * buffer will be returned in \p n_read. * - * @param buf Wire representation of the sbp_msg_gps_leap_second_t instance + * @param buf Wire representation of the sbp_msg_utc_leap_second_t instance * @param len Length of \p buf * @param n_read If not null, on success will be set to the number of bytes read * from \p buf * @param msg Destination * @return SBP_OK on success, or other libsbp error code */ -SBP_EXPORT s8 sbp_msg_gps_leap_second_decode(const uint8_t *buf, uint8_t len, +SBP_EXPORT s8 sbp_msg_utc_leap_second_decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, - sbp_msg_gps_leap_second_t *msg); + sbp_msg_utc_leap_second_t *msg); /** - * Send an instance of sbp_msg_gps_leap_second_t with the given write function + * Send an instance of sbp_msg_utc_leap_second_t with the given write function * * An equivalent of #sbp_message_send which operates specifically on - * sbp_msg_gps_leap_second_t + * sbp_msg_utc_leap_second_t * * The given message will be encoded to wire representation and passed in to the * given write function callback. The write callback will be called several @@ -163,12 +163,12 @@ SBP_EXPORT s8 sbp_msg_gps_leap_second_decode(const uint8_t *buf, uint8_t len, * @param write Write function * @return SBP_OK on success, or other libsbp error code */ -SBP_EXPORT s8 sbp_msg_gps_leap_second_send(sbp_state_t *s, u16 sender_id, - const sbp_msg_gps_leap_second_t *msg, +SBP_EXPORT s8 sbp_msg_utc_leap_second_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_utc_leap_second_t *msg, sbp_write_fn_t write); /** - * Compare two instances of sbp_msg_gps_leap_second_t + * Compare two instances of sbp_msg_utc_leap_second_t * * The two instances will be compared and a value returned consistent with the * return codes of comparison functions from the C standard library @@ -178,46 +178,46 @@ SBP_EXPORT s8 sbp_msg_gps_leap_second_send(sbp_state_t *s, u16 sender_id, * b A value greater than 0 will be returned if \p b is considered to be greater * than \p b * - * @param a sbp_msg_gps_leap_second_t instance - * @param b sbp_msg_gps_leap_second_t instance + * @param a sbp_msg_utc_leap_second_t instance + * @param b sbp_msg_utc_leap_second_t instance * @return 0, <0, >0 */ -SBP_EXPORT int sbp_msg_gps_leap_second_cmp(const sbp_msg_gps_leap_second_t *a, - const sbp_msg_gps_leap_second_t *b); +SBP_EXPORT int sbp_msg_utc_leap_second_cmp(const sbp_msg_utc_leap_second_t *a, + const sbp_msg_utc_leap_second_t *b); #ifdef __cplusplus } -static inline bool operator==(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) == 0; +static inline bool operator==(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) == 0; } -static inline bool operator!=(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) != 0; +static inline bool operator!=(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) != 0; } -static inline bool operator<(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) < 0; +static inline bool operator<(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) < 0; } -static inline bool operator<=(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) <= 0; +static inline bool operator<=(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) <= 0; } -static inline bool operator>(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) > 0; +static inline bool operator>(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) > 0; } -static inline bool operator>=(const sbp_msg_gps_leap_second_t &lhs, - const sbp_msg_gps_leap_second_t &rhs) { - return sbp_msg_gps_leap_second_cmp(&lhs, &rhs) >= 0; +static inline bool operator>=(const sbp_msg_utc_leap_second_t &lhs, + const sbp_msg_utc_leap_second_t &rhs) { + return sbp_msg_utc_leap_second_cmp(&lhs, &rhs) >= 0; } #endif // ifdef __cplusplus -#endif /* LIBSBP_V4_NAVIGATION_MSG_GPS_LEAP_SECOND_H */ +#endif /* LIBSBP_V4_NAVIGATION_MSG_UTC_LEAP_SECOND_H */ diff --git a/c/include/libsbp/v4/sbp_msg.h b/c/include/libsbp/v4/sbp_msg.h index f8428fbbc1..340c230437 100644 --- a/c/include/libsbp/v4/sbp_msg.h +++ b/c/include/libsbp/v4/sbp_msg.h @@ -133,7 +133,6 @@ typedef union { sbp_msg_glo_biases_t glo_biases; sbp_msg_gnss_capb_t gnss_capb; sbp_msg_gnss_time_offset_t gnss_time_offset; - sbp_msg_gps_leap_second_t gps_leap_second; sbp_msg_gps_time_dep_a_t gps_time_dep_a; sbp_msg_gps_time_gnss_t gps_time_gnss; sbp_msg_gps_time_t gps_time; @@ -149,7 +148,6 @@ typedef union { sbp_msg_ins_status_t ins_status; sbp_msg_ins_updates_t ins_updates; sbp_msg_iono_t iono; - sbp_msg_itrf_t itrf; sbp_msg_linux_cpu_state_dep_a_t linux_cpu_state_dep_a; sbp_msg_linux_cpu_state_t linux_cpu_state; sbp_msg_linux_mem_state_dep_a_t linux_mem_state_dep_a; @@ -196,6 +194,7 @@ typedef union { sbp_msg_print_dep_t print_dep; sbp_msg_protection_level_dep_a_t protection_level_dep_a; sbp_msg_protection_level_t protection_level; + sbp_msg_reference_frame_param_t reference_frame_param; sbp_msg_reset_dep_t reset_dep; sbp_msg_reset_filters_t reset_filters; sbp_msg_reset_t reset; @@ -263,6 +262,7 @@ typedef union { sbp_msg_uart_state_depa_t uart_state_depa; sbp_msg_uart_state_t uart_state; sbp_msg_user_data_t user_data; + sbp_msg_utc_leap_second_t utc_leap_second; sbp_msg_utc_time_gnss_t utc_time_gnss; sbp_msg_utc_time_t utc_time; sbp_msg_vel_body_t vel_body; @@ -509,9 +509,6 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, case SbpMsgGnssTimeOffset: return sbp_msg_gnss_time_offset_encode(buf, len, n_written, &msg->gnss_time_offset); - case SbpMsgGpsLeapSecond: - return sbp_msg_gps_leap_second_encode(buf, len, n_written, - &msg->gps_leap_second); case SbpMsgGpsTimeDepA: return sbp_msg_gps_time_dep_a_encode(buf, len, n_written, &msg->gps_time_dep_a); @@ -547,8 +544,6 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, return sbp_msg_ins_updates_encode(buf, len, n_written, &msg->ins_updates); case SbpMsgIono: return sbp_msg_iono_encode(buf, len, n_written, &msg->iono); - case SbpMsgItrf: - return sbp_msg_itrf_encode(buf, len, n_written, &msg->itrf); case SbpMsgLinuxCpuStateDepA: return sbp_msg_linux_cpu_state_dep_a_encode(buf, len, n_written, &msg->linux_cpu_state_dep_a); @@ -671,6 +666,9 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, case SbpMsgProtectionLevel: return sbp_msg_protection_level_encode(buf, len, n_written, &msg->protection_level); + case SbpMsgReferenceFrameParam: + return sbp_msg_reference_frame_param_encode(buf, len, n_written, + &msg->reference_frame_param); case SbpMsgResetDep: return sbp_msg_reset_dep_encode(buf, len, n_written, &msg->reset_dep); case SbpMsgResetFilters: @@ -854,6 +852,9 @@ static inline s8 sbp_message_encode(uint8_t *buf, uint8_t len, return sbp_msg_uart_state_encode(buf, len, n_written, &msg->uart_state); case SbpMsgUserData: return sbp_msg_user_data_encode(buf, len, n_written, &msg->user_data); + case SbpMsgUtcLeapSecond: + return sbp_msg_utc_leap_second_encode(buf, len, n_written, + &msg->utc_leap_second); case SbpMsgUtcTimeGnss: return sbp_msg_utc_time_gnss_encode(buf, len, n_written, &msg->utc_time_gnss); @@ -1123,9 +1124,6 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, case SbpMsgGnssTimeOffset: return sbp_msg_gnss_time_offset_decode(buf, len, n_read, &msg->gnss_time_offset); - case SbpMsgGpsLeapSecond: - return sbp_msg_gps_leap_second_decode(buf, len, n_read, - &msg->gps_leap_second); case SbpMsgGpsTimeDepA: return sbp_msg_gps_time_dep_a_decode(buf, len, n_read, &msg->gps_time_dep_a); @@ -1161,8 +1159,6 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, return sbp_msg_ins_updates_decode(buf, len, n_read, &msg->ins_updates); case SbpMsgIono: return sbp_msg_iono_decode(buf, len, n_read, &msg->iono); - case SbpMsgItrf: - return sbp_msg_itrf_decode(buf, len, n_read, &msg->itrf); case SbpMsgLinuxCpuStateDepA: return sbp_msg_linux_cpu_state_dep_a_decode(buf, len, n_read, &msg->linux_cpu_state_dep_a); @@ -1282,6 +1278,9 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, case SbpMsgProtectionLevel: return sbp_msg_protection_level_decode(buf, len, n_read, &msg->protection_level); + case SbpMsgReferenceFrameParam: + return sbp_msg_reference_frame_param_decode(buf, len, n_read, + &msg->reference_frame_param); case SbpMsgResetDep: return sbp_msg_reset_dep_decode(buf, len, n_read, &msg->reset_dep); case SbpMsgResetFilters: @@ -1464,6 +1463,9 @@ static inline s8 sbp_message_decode(const uint8_t *buf, uint8_t len, return sbp_msg_uart_state_decode(buf, len, n_read, &msg->uart_state); case SbpMsgUserData: return sbp_msg_user_data_decode(buf, len, n_read, &msg->user_data); + case SbpMsgUtcLeapSecond: + return sbp_msg_utc_leap_second_decode(buf, len, n_read, + &msg->utc_leap_second); case SbpMsgUtcTimeGnss: return sbp_msg_utc_time_gnss_decode(buf, len, n_read, &msg->utc_time_gnss); @@ -1679,8 +1681,6 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_gnss_capb_encoded_len(&msg->gnss_capb); case SbpMsgGnssTimeOffset: return sbp_msg_gnss_time_offset_encoded_len(&msg->gnss_time_offset); - case SbpMsgGpsLeapSecond: - return sbp_msg_gps_leap_second_encoded_len(&msg->gps_leap_second); case SbpMsgGpsTimeDepA: return sbp_msg_gps_time_dep_a_encoded_len(&msg->gps_time_dep_a); case SbpMsgGpsTimeGnss: @@ -1711,8 +1711,6 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_ins_updates_encoded_len(&msg->ins_updates); case SbpMsgIono: return sbp_msg_iono_encoded_len(&msg->iono); - case SbpMsgItrf: - return sbp_msg_itrf_encoded_len(&msg->itrf); case SbpMsgLinuxCpuStateDepA: return sbp_msg_linux_cpu_state_dep_a_encoded_len( &msg->linux_cpu_state_dep_a); @@ -1815,6 +1813,9 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, &msg->protection_level_dep_a); case SbpMsgProtectionLevel: return sbp_msg_protection_level_encoded_len(&msg->protection_level); + case SbpMsgReferenceFrameParam: + return sbp_msg_reference_frame_param_encoded_len( + &msg->reference_frame_param); case SbpMsgResetDep: return sbp_msg_reset_dep_encoded_len(&msg->reset_dep); case SbpMsgResetFilters: @@ -1972,6 +1973,8 @@ static inline size_t sbp_message_encoded_len(sbp_msg_type_t msg_type, return sbp_msg_uart_state_encoded_len(&msg->uart_state); case SbpMsgUserData: return sbp_msg_user_data_encoded_len(&msg->user_data); + case SbpMsgUtcLeapSecond: + return sbp_msg_utc_leap_second_encoded_len(&msg->utc_leap_second); case SbpMsgUtcTimeGnss: return sbp_msg_utc_time_gnss_encoded_len(&msg->utc_time_gnss); case SbpMsgUtcTime: @@ -2214,9 +2217,6 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, case SbpMsgGnssTimeOffset: return sbp_msg_gnss_time_offset_cmp(&a->gnss_time_offset, &b->gnss_time_offset); - case SbpMsgGpsLeapSecond: - return sbp_msg_gps_leap_second_cmp(&a->gps_leap_second, - &b->gps_leap_second); case SbpMsgGpsTimeDepA: return sbp_msg_gps_time_dep_a_cmp(&a->gps_time_dep_a, &b->gps_time_dep_a); case SbpMsgGpsTimeGnss: @@ -2249,8 +2249,6 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, return sbp_msg_ins_updates_cmp(&a->ins_updates, &b->ins_updates); case SbpMsgIono: return sbp_msg_iono_cmp(&a->iono, &b->iono); - case SbpMsgItrf: - return sbp_msg_itrf_cmp(&a->itrf, &b->itrf); case SbpMsgLinuxCpuStateDepA: return sbp_msg_linux_cpu_state_dep_a_cmp(&a->linux_cpu_state_dep_a, &b->linux_cpu_state_dep_a); @@ -2366,6 +2364,9 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, case SbpMsgProtectionLevel: return sbp_msg_protection_level_cmp(&a->protection_level, &b->protection_level); + case SbpMsgReferenceFrameParam: + return sbp_msg_reference_frame_param_cmp(&a->reference_frame_param, + &b->reference_frame_param); case SbpMsgResetDep: return sbp_msg_reset_dep_cmp(&a->reset_dep, &b->reset_dep); case SbpMsgResetFilters: @@ -2545,6 +2546,9 @@ static inline int sbp_message_cmp(sbp_msg_type_t msg_type, const sbp_msg_t *a, return sbp_msg_uart_state_cmp(&a->uart_state, &b->uart_state); case SbpMsgUserData: return sbp_msg_user_data_cmp(&a->user_data, &b->user_data); + case SbpMsgUtcLeapSecond: + return sbp_msg_utc_leap_second_cmp(&a->utc_leap_second, + &b->utc_leap_second); case SbpMsgUtcTimeGnss: return sbp_msg_utc_time_gnss_cmp(&a->utc_time_gnss, &b->utc_time_gnss); case SbpMsgUtcTime: diff --git a/c/include/libsbp/v4/ssr/MSG_SSR_GRIDDED_CORRECTION_BOUNDS.h b/c/include/libsbp/v4/ssr/MSG_SSR_GRIDDED_CORRECTION_BOUNDS.h index 9eba72745d..22f09c53bd 100644 --- a/c/include/libsbp/v4/ssr/MSG_SSR_GRIDDED_CORRECTION_BOUNDS.h +++ b/c/include/libsbp/v4/ssr/MSG_SSR_GRIDDED_CORRECTION_BOUNDS.h @@ -53,12 +53,12 @@ typedef struct { sbp_bounds_header_t header; /** - * IOD of the SSR atmospheric correction. + * IOD of the correction. */ u8 ssr_iod_atmo; /** - * Unique identifier of the set this tile belongs to. + * Set this tile belongs to. */ u16 tile_set_id; @@ -83,14 +83,24 @@ typedef struct { sbp_tropospheric_delay_correction_t tropo_delay_correction; /** - * Troposphere Error Bound Mean. Range: 0-1.275 m [0.005 m] + * Vertical Hydrostatic Error Bound Mean. [0.005 m] */ - u8 tropo_bound_mu; + u8 tropo_v_hydro_bound_mu; /** - * Troposphere Error Bound StDev. Range: 0-1.275 m [0.005 m] + * Vertical Hydrostatic Error Bound StDev. [0.005 m] */ - u8 tropo_bound_sig; + u8 tropo_v_hydro_bound_sig; + + /** + * Vertical Wet Error Bound Mean. [0.005 m] + */ + u8 tropo_v_wet_bound_mu; + + /** + * Vertical Wet Error Bound StDev. [0.005 m] + */ + u8 tropo_v_wet_bound_sig; /** * Number of satellites. diff --git a/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS.h b/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS.h index 833ec07c85..a2b6efcacc 100644 --- a/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS.h +++ b/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS.h @@ -42,8 +42,9 @@ extern "C" { *****************************************************************************/ /** Combined Orbit and Clock Bound * - * Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + * Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). + * */ typedef struct { /** diff --git a/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION.h b/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION.h index 15a705fe7a..1d75fb33ee 100644 --- a/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION.h +++ b/c/include/libsbp/v4/ssr/MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION.h @@ -58,7 +58,8 @@ typedef struct { /** * Satellite Bit Mask. Put 1 for each satellite where the following - * degradation parameters are applicable, 0 otherwise. + * degradation parameters are applicable, 0 otherwise. Encoded following RTCM + * DF394 specification. */ u64 sat_bitmask; diff --git a/c/include/libsbp/v4/ssr/OrbitClockBound.h b/c/include/libsbp/v4/ssr/OrbitClockBound.h index 782264889c..b11222da54 100644 --- a/c/include/libsbp/v4/ssr/OrbitClockBound.h +++ b/c/include/libsbp/v4/ssr/OrbitClockBound.h @@ -65,17 +65,17 @@ typedef struct { u8 orb_cross_bound_mu; /** - * Standard Deviation Radial. See Note 1. [m] + * Standard Deviation Radial. See Note 2. [m] */ u8 orb_radial_bound_sig; /** - * Standard Deviation Along-Track. See Note 1. [m] + * Standard Deviation Along-Track. See Note 2. [m] */ u8 orb_along_bound_sig; /** - * Standard Deviation Cross-Track. See Note 1. [m] + * Standard Deviation Cross-Track. See Note 2. [m] */ u8 orb_cross_bound_sig; @@ -85,7 +85,7 @@ typedef struct { u8 clock_bound_mu; /** - * Clock Bound Standard Deviation. See Note 1. [m] + * Clock Bound Standard Deviation. See Note 2. [m] */ u8 clock_bound_sig; } sbp_orbit_clock_bound_t; diff --git a/c/include/libsbp/v4/ssr/STECSatElementIntegrity.h b/c/include/libsbp/v4/ssr/STECSatElementIntegrity.h index ccfaad2f3c..d157c571eb 100644 --- a/c/include/libsbp/v4/ssr/STECSatElementIntegrity.h +++ b/c/include/libsbp/v4/ssr/STECSatElementIntegrity.h @@ -60,12 +60,12 @@ typedef struct { u8 stec_bound_sig; /** - * Error Bound Mean First derivative. Range: 0-0.01275 m/s [0.00005 m/s] + * Error Bound Mean First derivative. [0.00005 m/s] */ u8 stec_bound_mu_dot; /** - * Error Bound StDev First derivative. Range: 0-0.01275 m/s [0.00005 m/s] + * Error Bound StDev First derivative. [0.00005 m/s] */ u8 stec_bound_sig_dot; } sbp_stec_sat_element_integrity_t; diff --git a/c/include/libsbp/vehicle.h b/c/include/libsbp/vehicle.h index fff159d2e6..7b022b2d34 100644 --- a/c/include/libsbp/vehicle.h +++ b/c/include/libsbp/vehicle.h @@ -27,4 +27,4 @@ SBP_MESSAGE( #include -#endif /* LIBSBP_VEHICLE_MESSAGES_H */ \ No newline at end of file +#endif /* LIBSBP_VEHICLE_MESSAGES_H */ diff --git a/c/include/libsbp/version.h b/c/include/libsbp/version.h index e0de1dcfb4..6518511708 100644 --- a/c/include/libsbp/version.h +++ b/c/include/libsbp/version.h @@ -35,4 +35,4 @@ /** \} */ -#endif /* LIBSBP_VERSION_H */ \ No newline at end of file +#endif /* LIBSBP_VERSION_H */ diff --git a/c/src/include/libsbp/internal/v4/navigation.h b/c/src/include/libsbp/internal/v4/navigation.h index 213d878b87..00f63a0271 100644 --- a/c/src/include/libsbp/internal/v4/navigation.h +++ b/c/src/include/libsbp/internal/v4/navigation.h @@ -813,8 +813,8 @@ bool sbp_msg_protection_level_decode_internal(sbp_decode_ctx_t *ctx, * @param msg SBP type instance * @return true on success, false otherwise */ -bool sbp_msg_gps_leap_second_encode_internal( - sbp_encode_ctx_t *ctx, const sbp_msg_gps_leap_second_t *msg); +bool sbp_msg_utc_leap_second_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_utc_leap_second_t *msg); /** * Internal function to decode an SBP type from a buffer @@ -823,8 +823,8 @@ bool sbp_msg_gps_leap_second_encode_internal( * @param msg SBP type instance * @return true on success, false otherwise */ -bool sbp_msg_gps_leap_second_decode_internal(sbp_decode_ctx_t *ctx, - sbp_msg_gps_leap_second_t *msg); +bool sbp_msg_utc_leap_second_decode_internal(sbp_decode_ctx_t *ctx, + sbp_msg_utc_leap_second_t *msg); /** * Internal function to encode an SBP type to a buffer @@ -833,8 +833,8 @@ bool sbp_msg_gps_leap_second_decode_internal(sbp_decode_ctx_t *ctx, * @param msg SBP type instance * @return true on success, false otherwise */ -bool sbp_msg_itrf_encode_internal(sbp_encode_ctx_t *ctx, - const sbp_msg_itrf_t *msg); +bool sbp_msg_reference_frame_param_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_reference_frame_param_t *msg); /** * Internal function to decode an SBP type from a buffer @@ -843,7 +843,8 @@ bool sbp_msg_itrf_encode_internal(sbp_encode_ctx_t *ctx, * @param msg SBP type instance * @return true on success, false otherwise */ -bool sbp_msg_itrf_decode_internal(sbp_decode_ctx_t *ctx, sbp_msg_itrf_t *msg); +bool sbp_msg_reference_frame_param_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_reference_frame_param_t *msg); #ifdef __cplusplus } diff --git a/c/src/v4/navigation.c b/c/src/v4/navigation.c index 7872747b90..b20903fb78 100644 --- a/c/src/v4/navigation.c +++ b/c/src/v4/navigation.c @@ -5972,8 +5972,8 @@ int sbp_msg_protection_level_cmp(const sbp_msg_protection_level_t *a, return ret; } -bool sbp_msg_gps_leap_second_encode_internal( - sbp_encode_ctx_t *ctx, const sbp_msg_gps_leap_second_t *msg) { +bool sbp_msg_utc_leap_second_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_utc_leap_second_t *msg) { if (!sbp_s16_encode(ctx, &msg->bias_coeff)) { return false; } @@ -6004,13 +6004,13 @@ bool sbp_msg_gps_leap_second_encode_internal( return true; } -s8 sbp_msg_gps_leap_second_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_gps_leap_second_t *msg) { +s8 sbp_msg_utc_leap_second_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_utc_leap_second_t *msg) { sbp_encode_ctx_t ctx; ctx.buf = buf; ctx.buf_len = len; ctx.offset = 0; - if (!sbp_msg_gps_leap_second_encode_internal(&ctx, msg)) { + if (!sbp_msg_utc_leap_second_encode_internal(&ctx, msg)) { return SBP_ENCODE_ERROR; } if (n_written != NULL) { @@ -6019,8 +6019,8 @@ s8 sbp_msg_gps_leap_second_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, return SBP_OK; } -bool sbp_msg_gps_leap_second_decode_internal(sbp_decode_ctx_t *ctx, - sbp_msg_gps_leap_second_t *msg) { +bool sbp_msg_utc_leap_second_decode_internal(sbp_decode_ctx_t *ctx, + sbp_msg_utc_leap_second_t *msg) { if (!sbp_s16_decode(ctx, &msg->bias_coeff)) { return false; } @@ -6051,14 +6051,14 @@ bool sbp_msg_gps_leap_second_decode_internal(sbp_decode_ctx_t *ctx, return true; } -s8 sbp_msg_gps_leap_second_decode(const uint8_t *buf, uint8_t len, +s8 sbp_msg_utc_leap_second_decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, - sbp_msg_gps_leap_second_t *msg) { + sbp_msg_utc_leap_second_t *msg) { sbp_decode_ctx_t ctx; ctx.buf = buf; ctx.buf_len = len; ctx.offset = 0; - if (!sbp_msg_gps_leap_second_decode_internal(&ctx, msg)) { + if (!sbp_msg_utc_leap_second_decode_internal(&ctx, msg)) { return SBP_DECODE_ERROR; } if (n_read != NULL) { @@ -6067,22 +6067,22 @@ s8 sbp_msg_gps_leap_second_decode(const uint8_t *buf, uint8_t len, return SBP_OK; } -s8 sbp_msg_gps_leap_second_send(sbp_state_t *s, u16 sender_id, - const sbp_msg_gps_leap_second_t *msg, +s8 sbp_msg_utc_leap_second_send(sbp_state_t *s, u16 sender_id, + const sbp_msg_utc_leap_second_t *msg, sbp_write_fn_t write) { uint8_t payload[SBP_MAX_PAYLOAD_LEN]; uint8_t payload_len; - s8 ret = sbp_msg_gps_leap_second_encode(payload, sizeof(payload), + s8 ret = sbp_msg_utc_leap_second_encode(payload, sizeof(payload), &payload_len, msg); if (ret != SBP_OK) { return ret; } - return sbp_payload_send(s, SBP_MSG_GPS_LEAP_SECOND, sender_id, payload_len, + return sbp_payload_send(s, SBP_MSG_UTC_LEAP_SECOND, sender_id, payload_len, payload, write); } -int sbp_msg_gps_leap_second_cmp(const sbp_msg_gps_leap_second_t *a, - const sbp_msg_gps_leap_second_t *b) { +int sbp_msg_utc_leap_second_cmp(const sbp_msg_utc_leap_second_t *a, + const sbp_msg_utc_leap_second_t *b) { int ret = 0; ret = sbp_s16_cmp(&a->bias_coeff, &b->bias_coeff); @@ -6132,23 +6132,17 @@ int sbp_msg_gps_leap_second_cmp(const sbp_msg_gps_leap_second_t *a, return ret; } -bool sbp_msg_itrf_encode_internal(sbp_encode_ctx_t *ctx, - const sbp_msg_itrf_t *msg) { +bool sbp_msg_reference_frame_param_encode_internal( + sbp_encode_ctx_t *ctx, const sbp_msg_reference_frame_param_t *msg) { if (!sbp_u8_encode(ctx, &msg->ssr_iod)) { return false; } - if (!sbp_u8_encode(ctx, &msg->sn_counter_n)) { - return false; - } - for (size_t i = 0; i < SBP_MSG_ITRF_SN_MAX; i++) { + for (size_t i = 0; i < SBP_MSG_REFERENCE_FRAME_PARAM_SN_MAX; i++) { if (!sbp_char_encode(ctx, &msg->sn[i])) { return false; } } - if (!sbp_u8_encode(ctx, &msg->tn_counter_m)) { - return false; - } - for (size_t i = 0; i < SBP_MSG_ITRF_TN_MAX; i++) { + for (size_t i = 0; i < SBP_MSG_REFERENCE_FRAME_PARAM_TN_MAX; i++) { if (!sbp_char_encode(ctx, &msg->tn[i])) { return false; } @@ -6207,13 +6201,14 @@ bool sbp_msg_itrf_encode_internal(sbp_encode_ctx_t *ctx, return true; } -s8 sbp_msg_itrf_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, - const sbp_msg_itrf_t *msg) { +s8 sbp_msg_reference_frame_param_encode( + uint8_t *buf, uint8_t len, uint8_t *n_written, + const sbp_msg_reference_frame_param_t *msg) { sbp_encode_ctx_t ctx; ctx.buf = buf; ctx.buf_len = len; ctx.offset = 0; - if (!sbp_msg_itrf_encode_internal(&ctx, msg)) { + if (!sbp_msg_reference_frame_param_encode_internal(&ctx, msg)) { return SBP_ENCODE_ERROR; } if (n_written != NULL) { @@ -6222,22 +6217,17 @@ s8 sbp_msg_itrf_encode(uint8_t *buf, uint8_t len, uint8_t *n_written, return SBP_OK; } -bool sbp_msg_itrf_decode_internal(sbp_decode_ctx_t *ctx, sbp_msg_itrf_t *msg) { +bool sbp_msg_reference_frame_param_decode_internal( + sbp_decode_ctx_t *ctx, sbp_msg_reference_frame_param_t *msg) { if (!sbp_u8_decode(ctx, &msg->ssr_iod)) { return false; } - if (!sbp_u8_decode(ctx, &msg->sn_counter_n)) { - return false; - } - for (uint8_t i = 0; i < SBP_MSG_ITRF_SN_MAX; i++) { + for (uint8_t i = 0; i < SBP_MSG_REFERENCE_FRAME_PARAM_SN_MAX; i++) { if (!sbp_char_decode(ctx, &msg->sn[i])) { return false; } } - if (!sbp_u8_decode(ctx, &msg->tn_counter_m)) { - return false; - } - for (uint8_t i = 0; i < SBP_MSG_ITRF_TN_MAX; i++) { + for (uint8_t i = 0; i < SBP_MSG_REFERENCE_FRAME_PARAM_TN_MAX; i++) { if (!sbp_char_decode(ctx, &msg->tn[i])) { return false; } @@ -6296,13 +6286,14 @@ bool sbp_msg_itrf_decode_internal(sbp_decode_ctx_t *ctx, sbp_msg_itrf_t *msg) { return true; } -s8 sbp_msg_itrf_decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, - sbp_msg_itrf_t *msg) { +s8 sbp_msg_reference_frame_param_decode(const uint8_t *buf, uint8_t len, + uint8_t *n_read, + sbp_msg_reference_frame_param_t *msg) { sbp_decode_ctx_t ctx; ctx.buf = buf; ctx.buf_len = len; ctx.offset = 0; - if (!sbp_msg_itrf_decode_internal(&ctx, msg)) { + if (!sbp_msg_reference_frame_param_decode_internal(&ctx, msg)) { return SBP_DECODE_ERROR; } if (n_read != NULL) { @@ -6311,19 +6302,23 @@ s8 sbp_msg_itrf_decode(const uint8_t *buf, uint8_t len, uint8_t *n_read, return SBP_OK; } -s8 sbp_msg_itrf_send(sbp_state_t *s, u16 sender_id, const sbp_msg_itrf_t *msg, - sbp_write_fn_t write) { +s8 sbp_msg_reference_frame_param_send( + sbp_state_t *s, u16 sender_id, const sbp_msg_reference_frame_param_t *msg, + sbp_write_fn_t write) { uint8_t payload[SBP_MAX_PAYLOAD_LEN]; uint8_t payload_len; - s8 ret = sbp_msg_itrf_encode(payload, sizeof(payload), &payload_len, msg); + s8 ret = sbp_msg_reference_frame_param_encode(payload, sizeof(payload), + &payload_len, msg); if (ret != SBP_OK) { return ret; } - return sbp_payload_send(s, SBP_MSG_ITRF, sender_id, payload_len, payload, - write); + return sbp_payload_send(s, SBP_MSG_REFERENCE_FRAME_PARAM, sender_id, + payload_len, payload, write); } -int sbp_msg_itrf_cmp(const sbp_msg_itrf_t *a, const sbp_msg_itrf_t *b) { +int sbp_msg_reference_frame_param_cmp( + const sbp_msg_reference_frame_param_t *a, + const sbp_msg_reference_frame_param_t *b) { int ret = 0; ret = sbp_u8_cmp(&a->ssr_iod, &b->ssr_iod); @@ -6331,24 +6326,16 @@ int sbp_msg_itrf_cmp(const sbp_msg_itrf_t *a, const sbp_msg_itrf_t *b) { return ret; } - ret = sbp_u8_cmp(&a->sn_counter_n, &b->sn_counter_n); - if (ret != 0) { - return ret; - } - - for (uint8_t i = 0; ret == 0 && i < SBP_MSG_ITRF_SN_MAX; i++) { + for (uint8_t i = 0; ret == 0 && i < SBP_MSG_REFERENCE_FRAME_PARAM_SN_MAX; + i++) { ret = sbp_char_cmp(&a->sn[i], &b->sn[i]); } if (ret != 0) { return ret; } - ret = sbp_u8_cmp(&a->tn_counter_m, &b->tn_counter_m); - if (ret != 0) { - return ret; - } - - for (uint8_t i = 0; ret == 0 && i < SBP_MSG_ITRF_TN_MAX; i++) { + for (uint8_t i = 0; ret == 0 && i < SBP_MSG_REFERENCE_FRAME_PARAM_TN_MAX; + i++) { ret = sbp_char_cmp(&a->tn[i], &b->tn[i]); } if (ret != 0) { diff --git a/c/src/v4/ssr.c b/c/src/v4/ssr.c index e3a033f172..839b21a87e 100644 --- a/c/src/v4/ssr.c +++ b/c/src/v4/ssr.c @@ -1927,10 +1927,16 @@ bool sbp_msg_ssr_gridded_correction_bounds_encode_internal( ctx, &msg->tropo_delay_correction)) { return false; } - if (!sbp_u8_encode(ctx, &msg->tropo_bound_mu)) { + if (!sbp_u8_encode(ctx, &msg->tropo_v_hydro_bound_mu)) { return false; } - if (!sbp_u8_encode(ctx, &msg->tropo_bound_sig)) { + if (!sbp_u8_encode(ctx, &msg->tropo_v_hydro_bound_sig)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->tropo_v_wet_bound_mu)) { + return false; + } + if (!sbp_u8_encode(ctx, &msg->tropo_v_wet_bound_sig)) { return false; } if (!sbp_u8_encode(ctx, &msg->n_sats)) { @@ -1985,10 +1991,16 @@ bool sbp_msg_ssr_gridded_correction_bounds_decode_internal( ctx, &msg->tropo_delay_correction)) { return false; } - if (!sbp_u8_decode(ctx, &msg->tropo_bound_mu)) { + if (!sbp_u8_decode(ctx, &msg->tropo_v_hydro_bound_mu)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->tropo_v_hydro_bound_sig)) { + return false; + } + if (!sbp_u8_decode(ctx, &msg->tropo_v_wet_bound_mu)) { return false; } - if (!sbp_u8_decode(ctx, &msg->tropo_bound_sig)) { + if (!sbp_u8_decode(ctx, &msg->tropo_v_wet_bound_sig)) { return false; } if (!sbp_u8_decode(ctx, &msg->n_sats)) { @@ -2076,12 +2088,22 @@ int sbp_msg_ssr_gridded_correction_bounds_cmp( return ret; } - ret = sbp_u8_cmp(&a->tropo_bound_mu, &b->tropo_bound_mu); + ret = sbp_u8_cmp(&a->tropo_v_hydro_bound_mu, &b->tropo_v_hydro_bound_mu); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->tropo_v_hydro_bound_sig, &b->tropo_v_hydro_bound_sig); + if (ret != 0) { + return ret; + } + + ret = sbp_u8_cmp(&a->tropo_v_wet_bound_mu, &b->tropo_v_wet_bound_mu); if (ret != 0) { return ret; } - ret = sbp_u8_cmp(&a->tropo_bound_sig, &b->tropo_bound_sig); + ret = sbp_u8_cmp(&a->tropo_v_wet_bound_sig, &b->tropo_v_wet_bound_sig); if (ret != 0) { return ret; } diff --git a/c/test/auto_check_sbp_navigation_MsgItrf.c b/c/test/auto_check_sbp_navigation_MsgItrf.c deleted file mode 100644 index 2d5528311b..0000000000 --- a/c/test/auto_check_sbp_navigation_MsgItrf.c +++ /dev/null @@ -1,333 +0,0 @@ -/* - * Copyright (C) 2015-2021 Swift Navigation Inc. - * Contact: https://support.swiftnav.com - * - * This source is subject to the license found in the file 'LICENSE' which must - * be be distributed together with this source. All other rights reserved. - * - * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - */ - -// This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml by generate.py. Do -// not modify by hand! - -#include -#include -#include -#include // for debugging -#include // for malloc - -static struct { - u32 n_callbacks_logged; - u16 sender_id; - sbp_msg_type_t msg_type; - sbp_msg_t msg; - void *context; -} last_msg; - -static u32 dummy_wr = 0; -static u32 dummy_rd = 0; -static u8 dummy_buff[1024]; -static void *last_io_context; - -static void *DUMMY_MEMORY_FOR_CALLBACKS = (void *)0xdeadbeef; -static void *DUMMY_MEMORY_FOR_IO = (void *)0xdead0000; - -static void dummy_reset() { - dummy_rd = dummy_wr = 0; - memset(dummy_buff, 0, sizeof(dummy_buff)); -} - -static s32 dummy_write(u8 *buff, u32 n, void *context) { - last_io_context = context; - u32 real_n = n; //(dummy_n > n) ? n : dummy_n; - memcpy(dummy_buff + dummy_wr, buff, real_n); - dummy_wr += real_n; - return (s32)real_n; -} - -static s32 dummy_read(u8 *buff, u32 n, void *context) { - last_io_context = context; - u32 real_n = n; //(dummy_n > n) ? n : dummy_n; - memcpy(buff, dummy_buff + dummy_rd, real_n); - dummy_rd += real_n; - return (s32)real_n; -} - -static void logging_reset() { memset(&last_msg, 0, sizeof(last_msg)); } - -static void msg_callback(u16 sender_id, sbp_msg_type_t msg_type, - const sbp_msg_t *msg, void *context) { - last_msg.n_callbacks_logged++; - last_msg.sender_id = sender_id; - last_msg.msg_type = msg_type; - last_msg.msg = *msg; - last_msg.context = context; -} - -START_TEST(test_auto_check_sbp_navigation_MsgItrf) { - static sbp_msg_callbacks_node_t n; - - // State of the SBP message parser. - // Must be statically allocated. - sbp_state_t sbp_state; - - // - // Run tests: - // - // Test successful parsing of a message - { - // SBP parser state must be initialized before sbp_process is called. - // We re-initialize before every test so that callbacks for the same message - // types can be - // allocated multiple times across different tests. - sbp_state_init(&sbp_state); - - sbp_state_set_io_context(&sbp_state, &DUMMY_MEMORY_FOR_IO); - - logging_reset(); - - sbp_callback_register(&sbp_state, 580, &msg_callback, - &DUMMY_MEMORY_FOR_CALLBACKS, &n); - - u8 encoded_frame[] = { - 85, 68, 2, 66, 0, 124, 1, 2, 102, 111, 111, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, - 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, - 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 66, 126, - }; - - dummy_reset(); - - sbp_msg_t test_msg; - memset(&test_msg, 0, sizeof(test_msg)); - - test_msg.itrf.delta_X0 = 7; - - test_msg.itrf.delta_Y0 = 8; - - test_msg.itrf.delta_Z0 = 9; - - test_msg.itrf.dot_delta_X0 = 14; - - test_msg.itrf.dot_delta_Y0 = 15; - - test_msg.itrf.dot_delta_Z0 = 16; - - test_msg.itrf.dot_scale = 20; - - test_msg.itrf.dot_theta_01 = 17; - - test_msg.itrf.dot_theta_02 = 18; - - test_msg.itrf.dot_theta_03 = 19; - - test_msg.itrf.re_t0 = 6; - - test_msg.itrf.scale = 13; - - test_msg.itrf.sin = 4; - - { - const char assign_string[] = { - (char)102, (char)111, (char)111, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; - memcpy(test_msg.itrf.sn, assign_string, sizeof(assign_string)); - } - - test_msg.itrf.sn_counter_n = 2; - - test_msg.itrf.ssr_iod = 1; - - test_msg.itrf.theta_01 = 10; - - test_msg.itrf.theta_02 = 11; - - test_msg.itrf.theta_03 = 12; - - { - const char assign_string[] = { - (char)98, (char)97, (char)114, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; - memcpy(test_msg.itrf.tn, assign_string, sizeof(assign_string)); - } - - test_msg.itrf.tn_counter_m = 3; - - test_msg.itrf.utn = 5; - - sbp_message_send(&sbp_state, SbpMsgItrf, 66, &test_msg, &dummy_write); - - ck_assert_msg(dummy_wr == sizeof(encoded_frame), - "not enough data was written to dummy_buff (expected: %zu, " - "actual: %zu)", - sizeof(encoded_frame), dummy_wr); - ck_assert_msg(memcmp(dummy_buff, encoded_frame, sizeof(encoded_frame)) == 0, - "frame was not encoded properly"); - - while (dummy_rd < dummy_wr) { - ck_assert_msg(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, - "sbp_process threw an error!"); - } - - ck_assert_msg(last_msg.n_callbacks_logged == 1, - "msg_callback: one callback should have been logged"); - ck_assert_msg(last_msg.sender_id == 66, - "msg_callback: sender_id decoded incorrectly"); - - ck_assert_msg(sbp_message_cmp(SbpMsgItrf, &last_msg.msg, &test_msg) == 0, - "Sent and received messages did not compare equal"); - - ck_assert_msg( - last_msg.msg.itrf.delta_X0 == 7, - "incorrect value for last_msg.msg.itrf.delta_X0, expected 7, is %d", - last_msg.msg.itrf.delta_X0); - - ck_assert_msg( - last_msg.msg.itrf.delta_Y0 == 8, - "incorrect value for last_msg.msg.itrf.delta_Y0, expected 8, is %d", - last_msg.msg.itrf.delta_Y0); - - ck_assert_msg( - last_msg.msg.itrf.delta_Z0 == 9, - "incorrect value for last_msg.msg.itrf.delta_Z0, expected 9, is %d", - last_msg.msg.itrf.delta_Z0); - - ck_assert_msg(last_msg.msg.itrf.dot_delta_X0 == 14, - "incorrect value for last_msg.msg.itrf.dot_delta_X0, " - "expected 14, is %d", - last_msg.msg.itrf.dot_delta_X0); - - ck_assert_msg(last_msg.msg.itrf.dot_delta_Y0 == 15, - "incorrect value for last_msg.msg.itrf.dot_delta_Y0, " - "expected 15, is %d", - last_msg.msg.itrf.dot_delta_Y0); - - ck_assert_msg(last_msg.msg.itrf.dot_delta_Z0 == 16, - "incorrect value for last_msg.msg.itrf.dot_delta_Z0, " - "expected 16, is %d", - last_msg.msg.itrf.dot_delta_Z0); - - ck_assert_msg( - last_msg.msg.itrf.dot_scale == 20, - "incorrect value for last_msg.msg.itrf.dot_scale, expected 20, is %d", - last_msg.msg.itrf.dot_scale); - - ck_assert_msg(last_msg.msg.itrf.dot_theta_01 == 17, - "incorrect value for last_msg.msg.itrf.dot_theta_01, " - "expected 17, is %d", - last_msg.msg.itrf.dot_theta_01); - - ck_assert_msg(last_msg.msg.itrf.dot_theta_02 == 18, - "incorrect value for last_msg.msg.itrf.dot_theta_02, " - "expected 18, is %d", - last_msg.msg.itrf.dot_theta_02); - - ck_assert_msg(last_msg.msg.itrf.dot_theta_03 == 19, - "incorrect value for last_msg.msg.itrf.dot_theta_03, " - "expected 19, is %d", - last_msg.msg.itrf.dot_theta_03); - - ck_assert_msg( - last_msg.msg.itrf.re_t0 == 6, - "incorrect value for last_msg.msg.itrf.re_t0, expected 6, is %d", - last_msg.msg.itrf.re_t0); - - ck_assert_msg( - last_msg.msg.itrf.scale == 13, - "incorrect value for last_msg.msg.itrf.scale, expected 13, is %d", - last_msg.msg.itrf.scale); - - ck_assert_msg( - last_msg.msg.itrf.sin == 4, - "incorrect value for last_msg.msg.itrf.sin, expected 4, is %d", - last_msg.msg.itrf.sin); - - { - const char check_string[] = { - (char)102, (char)111, (char)111, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; - ck_assert_msg(memcmp(&last_msg.msg.itrf.sn, check_string, - sizeof(check_string)) == 0, - "incorrect value for last_msg.msg.itrf.sn, expected string " - "'%s', is '%s'", - check_string, last_msg.msg.itrf.sn); - } - - ck_assert_msg( - last_msg.msg.itrf.sn_counter_n == 2, - "incorrect value for last_msg.msg.itrf.sn_counter_n, expected 2, is %d", - last_msg.msg.itrf.sn_counter_n); - - ck_assert_msg( - last_msg.msg.itrf.ssr_iod == 1, - "incorrect value for last_msg.msg.itrf.ssr_iod, expected 1, is %d", - last_msg.msg.itrf.ssr_iod); - - ck_assert_msg( - last_msg.msg.itrf.theta_01 == 10, - "incorrect value for last_msg.msg.itrf.theta_01, expected 10, is %d", - last_msg.msg.itrf.theta_01); - - ck_assert_msg( - last_msg.msg.itrf.theta_02 == 11, - "incorrect value for last_msg.msg.itrf.theta_02, expected 11, is %d", - last_msg.msg.itrf.theta_02); - - ck_assert_msg( - last_msg.msg.itrf.theta_03 == 12, - "incorrect value for last_msg.msg.itrf.theta_03, expected 12, is %d", - last_msg.msg.itrf.theta_03); - - { - const char check_string[] = { - (char)98, (char)97, (char)114, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; - ck_assert_msg(memcmp(&last_msg.msg.itrf.tn, check_string, - sizeof(check_string)) == 0, - "incorrect value for last_msg.msg.itrf.tn, expected string " - "'%s', is '%s'", - check_string, last_msg.msg.itrf.tn); - } - - ck_assert_msg( - last_msg.msg.itrf.tn_counter_m == 3, - "incorrect value for last_msg.msg.itrf.tn_counter_m, expected 3, is %d", - last_msg.msg.itrf.tn_counter_m); - - ck_assert_msg( - last_msg.msg.itrf.utn == 5, - "incorrect value for last_msg.msg.itrf.utn, expected 5, is %d", - last_msg.msg.itrf.utn); - } -} -END_TEST - -Suite *auto_check_sbp_navigation_MsgItrf_suite(void) { - Suite *s = suite_create( - "SBP generated test suite: auto_check_sbp_navigation_MsgItrf"); - TCase *tc_acq = - tcase_create("Automated_Suite_auto_check_sbp_navigation_MsgItrf"); - tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgItrf); - suite_add_tcase(s, tc_acq); - return s; -} \ No newline at end of file diff --git a/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c b/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c new file mode 100644 index 0000000000..d7bd9057b5 --- /dev/null +++ b/c/test/auto_check_sbp_navigation_MsgReferenceFrameParam.c @@ -0,0 +1,341 @@ +/* + * Copyright (C) 2015-2021 Swift Navigation Inc. + * Contact: https://support.swiftnav.com + * + * This source is subject to the license found in the file 'LICENSE' which must + * be be distributed together with this source. All other rights reserved. + * + * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, + * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + */ + +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml by +// generate.py. Do not modify by hand! + +#include +#include +#include +#include // for debugging +#include // for malloc + +static struct { + u32 n_callbacks_logged; + u16 sender_id; + sbp_msg_type_t msg_type; + sbp_msg_t msg; + void *context; +} last_msg; + +static u32 dummy_wr = 0; +static u32 dummy_rd = 0; +static u8 dummy_buff[1024]; +static void *last_io_context; + +static void *DUMMY_MEMORY_FOR_CALLBACKS = (void *)0xdeadbeef; +static void *DUMMY_MEMORY_FOR_IO = (void *)0xdead0000; + +static void dummy_reset() { + dummy_rd = dummy_wr = 0; + memset(dummy_buff, 0, sizeof(dummy_buff)); +} + +static s32 dummy_write(u8 *buff, u32 n, void *context) { + last_io_context = context; + u32 real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(dummy_buff + dummy_wr, buff, real_n); + dummy_wr += real_n; + return (s32)real_n; +} + +static s32 dummy_read(u8 *buff, u32 n, void *context) { + last_io_context = context; + u32 real_n = n; //(dummy_n > n) ? n : dummy_n; + memcpy(buff, dummy_buff + dummy_rd, real_n); + dummy_rd += real_n; + return (s32)real_n; +} + +static void logging_reset() { memset(&last_msg, 0, sizeof(last_msg)); } + +static void msg_callback(u16 sender_id, sbp_msg_type_t msg_type, + const sbp_msg_t *msg, void *context) { + last_msg.n_callbacks_logged++; + last_msg.sender_id = sender_id; + last_msg.msg_type = msg_type; + last_msg.msg = *msg; + last_msg.context = context; +} + +START_TEST(test_auto_check_sbp_navigation_MsgReferenceFrameParam) { + static sbp_msg_callbacks_node_t n; + + // State of the SBP message parser. + // Must be statically allocated. + sbp_state_t sbp_state; + + // + // Run tests: + // + // Test successful parsing of a message + { + // SBP parser state must be initialized before sbp_process is called. + // We re-initialize before every test so that callbacks for the same message + // types can be + // allocated multiple times across different tests. + sbp_state_init(&sbp_state); + + sbp_state_set_io_context(&sbp_state, &DUMMY_MEMORY_FOR_IO); + + logging_reset(); + + sbp_callback_register(&sbp_state, 580, &msg_callback, + &DUMMY_MEMORY_FOR_CALLBACKS, &n); + + u8 encoded_frame[] = { + 85, 68, 2, 66, 0, 124, 1, 102, 111, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, + 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, + 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 6, 161, + }; + + dummy_reset(); + + sbp_msg_t test_msg; + memset(&test_msg, 0, sizeof(test_msg)); + + test_msg.reference_frame_param.delta_X0 = 7; + + test_msg.reference_frame_param.delta_Y0 = 8; + + test_msg.reference_frame_param.delta_Z0 = 9; + + test_msg.reference_frame_param.dot_delta_X0 = 14; + + test_msg.reference_frame_param.dot_delta_Y0 = 15; + + test_msg.reference_frame_param.dot_delta_Z0 = 16; + + test_msg.reference_frame_param.dot_scale = 20; + + test_msg.reference_frame_param.dot_theta_01 = 17; + + test_msg.reference_frame_param.dot_theta_02 = 18; + + test_msg.reference_frame_param.dot_theta_03 = 19; + + test_msg.reference_frame_param.re_t0 = 6; + + test_msg.reference_frame_param.scale = 13; + + test_msg.reference_frame_param.sin = 4; + + { + const char assign_string[] = { + (char)102, (char)111, (char)111, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0}; + memcpy(test_msg.reference_frame_param.sn, assign_string, + sizeof(assign_string)); + } + + test_msg.reference_frame_param.ssr_iod = 1; + + test_msg.reference_frame_param.theta_01 = 10; + + test_msg.reference_frame_param.theta_02 = 11; + + test_msg.reference_frame_param.theta_03 = 12; + + { + const char assign_string[] = { + (char)98, (char)97, (char)114, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0}; + memcpy(test_msg.reference_frame_param.tn, assign_string, + sizeof(assign_string)); + } + + test_msg.reference_frame_param.utn = 5; + + sbp_message_send(&sbp_state, SbpMsgReferenceFrameParam, 66, &test_msg, + &dummy_write); + + ck_assert_msg(dummy_wr == sizeof(encoded_frame), + "not enough data was written to dummy_buff (expected: %zu, " + "actual: %zu)", + sizeof(encoded_frame), dummy_wr); + ck_assert_msg(memcmp(dummy_buff, encoded_frame, sizeof(encoded_frame)) == 0, + "frame was not encoded properly"); + + while (dummy_rd < dummy_wr) { + ck_assert_msg(sbp_process(&sbp_state, &dummy_read) >= SBP_OK, + "sbp_process threw an error!"); + } + + ck_assert_msg(last_msg.n_callbacks_logged == 1, + "msg_callback: one callback should have been logged"); + ck_assert_msg(last_msg.sender_id == 66, + "msg_callback: sender_id decoded incorrectly"); + + ck_assert_msg(sbp_message_cmp(SbpMsgReferenceFrameParam, &last_msg.msg, + &test_msg) == 0, + "Sent and received messages did not compare equal"); + + ck_assert_msg( + last_msg.msg.reference_frame_param.delta_X0 == 7, + "incorrect value for last_msg.msg.reference_frame_param.delta_X0, " + "expected 7, is %d", + last_msg.msg.reference_frame_param.delta_X0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.delta_Y0 == 8, + "incorrect value for last_msg.msg.reference_frame_param.delta_Y0, " + "expected 8, is %d", + last_msg.msg.reference_frame_param.delta_Y0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.delta_Z0 == 9, + "incorrect value for last_msg.msg.reference_frame_param.delta_Z0, " + "expected 9, is %d", + last_msg.msg.reference_frame_param.delta_Z0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_delta_X0 == 14, + "incorrect value for last_msg.msg.reference_frame_param.dot_delta_X0, " + "expected 14, is %d", + last_msg.msg.reference_frame_param.dot_delta_X0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_delta_Y0 == 15, + "incorrect value for last_msg.msg.reference_frame_param.dot_delta_Y0, " + "expected 15, is %d", + last_msg.msg.reference_frame_param.dot_delta_Y0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_delta_Z0 == 16, + "incorrect value for last_msg.msg.reference_frame_param.dot_delta_Z0, " + "expected 16, is %d", + last_msg.msg.reference_frame_param.dot_delta_Z0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_scale == 20, + "incorrect value for last_msg.msg.reference_frame_param.dot_scale, " + "expected 20, is %d", + last_msg.msg.reference_frame_param.dot_scale); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_theta_01 == 17, + "incorrect value for last_msg.msg.reference_frame_param.dot_theta_01, " + "expected 17, is %d", + last_msg.msg.reference_frame_param.dot_theta_01); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_theta_02 == 18, + "incorrect value for last_msg.msg.reference_frame_param.dot_theta_02, " + "expected 18, is %d", + last_msg.msg.reference_frame_param.dot_theta_02); + + ck_assert_msg( + last_msg.msg.reference_frame_param.dot_theta_03 == 19, + "incorrect value for last_msg.msg.reference_frame_param.dot_theta_03, " + "expected 19, is %d", + last_msg.msg.reference_frame_param.dot_theta_03); + + ck_assert_msg(last_msg.msg.reference_frame_param.re_t0 == 6, + "incorrect value for " + "last_msg.msg.reference_frame_param.re_t0, expected 6, is %d", + last_msg.msg.reference_frame_param.re_t0); + + ck_assert_msg( + last_msg.msg.reference_frame_param.scale == 13, + "incorrect value for last_msg.msg.reference_frame_param.scale, " + "expected 13, is %d", + last_msg.msg.reference_frame_param.scale); + + ck_assert_msg(last_msg.msg.reference_frame_param.sin == 4, + "incorrect value for last_msg.msg.reference_frame_param.sin, " + "expected 4, is %d", + last_msg.msg.reference_frame_param.sin); + + { + const char check_string[] = { + (char)102, (char)111, (char)111, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0}; + ck_assert_msg( + memcmp(&last_msg.msg.reference_frame_param.sn, check_string, + sizeof(check_string)) == 0, + "incorrect value for last_msg.msg.reference_frame_param.sn, expected " + "string '%s', is '%s'", + check_string, last_msg.msg.reference_frame_param.sn); + } + + ck_assert_msg( + last_msg.msg.reference_frame_param.ssr_iod == 1, + "incorrect value for last_msg.msg.reference_frame_param.ssr_iod, " + "expected 1, is %d", + last_msg.msg.reference_frame_param.ssr_iod); + + ck_assert_msg( + last_msg.msg.reference_frame_param.theta_01 == 10, + "incorrect value for last_msg.msg.reference_frame_param.theta_01, " + "expected 10, is %d", + last_msg.msg.reference_frame_param.theta_01); + + ck_assert_msg( + last_msg.msg.reference_frame_param.theta_02 == 11, + "incorrect value for last_msg.msg.reference_frame_param.theta_02, " + "expected 11, is %d", + last_msg.msg.reference_frame_param.theta_02); + + ck_assert_msg( + last_msg.msg.reference_frame_param.theta_03 == 12, + "incorrect value for last_msg.msg.reference_frame_param.theta_03, " + "expected 12, is %d", + last_msg.msg.reference_frame_param.theta_03); + + { + const char check_string[] = { + (char)98, (char)97, (char)114, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, + (char)0, (char)0, (char)0, (char)0}; + ck_assert_msg( + memcmp(&last_msg.msg.reference_frame_param.tn, check_string, + sizeof(check_string)) == 0, + "incorrect value for last_msg.msg.reference_frame_param.tn, expected " + "string '%s', is '%s'", + check_string, last_msg.msg.reference_frame_param.tn); + } + + ck_assert_msg(last_msg.msg.reference_frame_param.utn == 5, + "incorrect value for last_msg.msg.reference_frame_param.utn, " + "expected 5, is %d", + last_msg.msg.reference_frame_param.utn); + } +} +END_TEST + +Suite *auto_check_sbp_navigation_MsgReferenceFrameParam_suite(void) { + Suite *s = suite_create( + "SBP generated test suite: " + "auto_check_sbp_navigation_MsgReferenceFrameParam"); + TCase *tc_acq = tcase_create( + "Automated_Suite_auto_check_sbp_navigation_MsgReferenceFrameParam"); + tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgReferenceFrameParam); + suite_add_tcase(s, tc_acq); + return s; +} \ No newline at end of file diff --git a/c/test/auto_check_sbp_navigation_MsgGPSLeapSecond.c b/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c similarity index 63% rename from c/test/auto_check_sbp_navigation_MsgGPSLeapSecond.c rename to c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c index 2d6903d252..843523a886 100644 --- a/c/test/auto_check_sbp_navigation_MsgGPSLeapSecond.c +++ b/c/test/auto_check_sbp_navigation_MsgUTCLeapSecond.c @@ -11,7 +11,7 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by // generate.py. Do not modify by hand! #include @@ -68,7 +68,7 @@ static void msg_callback(u16 sender_id, sbp_msg_type_t msg_type, last_msg.context = context; } -START_TEST(test_auto_check_sbp_navigation_MsgGPSLeapSecond) { +START_TEST(test_auto_check_sbp_navigation_MsgUTCLeapSecond) { static sbp_msg_callbacks_node_t n; // State of the SBP message parser. @@ -102,25 +102,25 @@ START_TEST(test_auto_check_sbp_navigation_MsgGPSLeapSecond) { sbp_msg_t test_msg; memset(&test_msg, 0, sizeof(test_msg)); - test_msg.gps_leap_second.bias_coeff = 1; + test_msg.utc_leap_second.bias_coeff = 1; - test_msg.gps_leap_second.count_after = 9; + test_msg.utc_leap_second.count_after = 9; - test_msg.gps_leap_second.count_before = 4; + test_msg.utc_leap_second.count_before = 4; - test_msg.gps_leap_second.drift_coeff = 2; + test_msg.utc_leap_second.drift_coeff = 2; - test_msg.gps_leap_second.drift_rate_coeff = 3; + test_msg.utc_leap_second.drift_rate_coeff = 3; - test_msg.gps_leap_second.ref_dn = 8; + test_msg.utc_leap_second.ref_dn = 8; - test_msg.gps_leap_second.ref_wn = 7; + test_msg.utc_leap_second.ref_wn = 7; - test_msg.gps_leap_second.tow_s = 5; + test_msg.utc_leap_second.tow_s = 5; - test_msg.gps_leap_second.wn = 6; + test_msg.utc_leap_second.wn = 6; - sbp_message_send(&sbp_state, SbpMsgGpsLeapSecond, 66, &test_msg, + sbp_message_send(&sbp_state, SbpMsgUtcLeapSecond, 66, &test_msg, &dummy_write); ck_assert_msg(dummy_wr == sizeof(encoded_frame), @@ -141,65 +141,65 @@ START_TEST(test_auto_check_sbp_navigation_MsgGPSLeapSecond) { "msg_callback: sender_id decoded incorrectly"); ck_assert_msg( - sbp_message_cmp(SbpMsgGpsLeapSecond, &last_msg.msg, &test_msg) == 0, + sbp_message_cmp(SbpMsgUtcLeapSecond, &last_msg.msg, &test_msg) == 0, "Sent and received messages did not compare equal"); - ck_assert_msg(last_msg.msg.gps_leap_second.bias_coeff == 1, + ck_assert_msg(last_msg.msg.utc_leap_second.bias_coeff == 1, "incorrect value for " - "last_msg.msg.gps_leap_second.bias_coeff, expected 1, is %d", - last_msg.msg.gps_leap_second.bias_coeff); + "last_msg.msg.utc_leap_second.bias_coeff, expected 1, is %d", + last_msg.msg.utc_leap_second.bias_coeff); - ck_assert_msg(last_msg.msg.gps_leap_second.count_after == 9, + ck_assert_msg(last_msg.msg.utc_leap_second.count_after == 9, "incorrect value for " - "last_msg.msg.gps_leap_second.count_after, expected 9, is %d", - last_msg.msg.gps_leap_second.count_after); + "last_msg.msg.utc_leap_second.count_after, expected 9, is %d", + last_msg.msg.utc_leap_second.count_after); ck_assert_msg( - last_msg.msg.gps_leap_second.count_before == 4, - "incorrect value for last_msg.msg.gps_leap_second.count_before, " + last_msg.msg.utc_leap_second.count_before == 4, + "incorrect value for last_msg.msg.utc_leap_second.count_before, " "expected 4, is %d", - last_msg.msg.gps_leap_second.count_before); + last_msg.msg.utc_leap_second.count_before); - ck_assert_msg(last_msg.msg.gps_leap_second.drift_coeff == 2, + ck_assert_msg(last_msg.msg.utc_leap_second.drift_coeff == 2, "incorrect value for " - "last_msg.msg.gps_leap_second.drift_coeff, expected 2, is %d", - last_msg.msg.gps_leap_second.drift_coeff); + "last_msg.msg.utc_leap_second.drift_coeff, expected 2, is %d", + last_msg.msg.utc_leap_second.drift_coeff); ck_assert_msg( - last_msg.msg.gps_leap_second.drift_rate_coeff == 3, - "incorrect value for last_msg.msg.gps_leap_second.drift_rate_coeff, " + last_msg.msg.utc_leap_second.drift_rate_coeff == 3, + "incorrect value for last_msg.msg.utc_leap_second.drift_rate_coeff, " "expected 3, is %d", - last_msg.msg.gps_leap_second.drift_rate_coeff); + last_msg.msg.utc_leap_second.drift_rate_coeff); - ck_assert_msg(last_msg.msg.gps_leap_second.ref_dn == 8, - "incorrect value for last_msg.msg.gps_leap_second.ref_dn, " + ck_assert_msg(last_msg.msg.utc_leap_second.ref_dn == 8, + "incorrect value for last_msg.msg.utc_leap_second.ref_dn, " "expected 8, is %d", - last_msg.msg.gps_leap_second.ref_dn); + last_msg.msg.utc_leap_second.ref_dn); - ck_assert_msg(last_msg.msg.gps_leap_second.ref_wn == 7, - "incorrect value for last_msg.msg.gps_leap_second.ref_wn, " + ck_assert_msg(last_msg.msg.utc_leap_second.ref_wn == 7, + "incorrect value for last_msg.msg.utc_leap_second.ref_wn, " "expected 7, is %d", - last_msg.msg.gps_leap_second.ref_wn); + last_msg.msg.utc_leap_second.ref_wn); - ck_assert_msg(last_msg.msg.gps_leap_second.tow_s == 5, - "incorrect value for last_msg.msg.gps_leap_second.tow_s, " + ck_assert_msg(last_msg.msg.utc_leap_second.tow_s == 5, + "incorrect value for last_msg.msg.utc_leap_second.tow_s, " "expected 5, is %d", - last_msg.msg.gps_leap_second.tow_s); + last_msg.msg.utc_leap_second.tow_s); - ck_assert_msg(last_msg.msg.gps_leap_second.wn == 6, - "incorrect value for last_msg.msg.gps_leap_second.wn, " + ck_assert_msg(last_msg.msg.utc_leap_second.wn == 6, + "incorrect value for last_msg.msg.utc_leap_second.wn, " "expected 6, is %d", - last_msg.msg.gps_leap_second.wn); + last_msg.msg.utc_leap_second.wn); } } END_TEST -Suite *auto_check_sbp_navigation_MsgGPSLeapSecond_suite(void) { +Suite *auto_check_sbp_navigation_MsgUTCLeapSecond_suite(void) { Suite *s = suite_create( - "SBP generated test suite: auto_check_sbp_navigation_MsgGPSLeapSecond"); + "SBP generated test suite: auto_check_sbp_navigation_MsgUTCLeapSecond"); TCase *tc_acq = tcase_create( - "Automated_Suite_auto_check_sbp_navigation_MsgGPSLeapSecond"); - tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgGPSLeapSecond); + "Automated_Suite_auto_check_sbp_navigation_MsgUTCLeapSecond"); + tcase_add_test(tc_acq, test_auto_check_sbp_navigation_MsgUTCLeapSecond); suite_add_tcase(s, tc_acq); return s; } \ No newline at end of file diff --git a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c index be074e3df7..9121a53e25 100644 --- a/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c +++ b/c/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c @@ -94,10 +94,10 @@ START_TEST(test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { &DUMMY_MEMORY_FOR_CALLBACKS, &n); u8 encoded_frame[] = { - 85, 254, 5, 66, 0, 43, 180, 0, 0, 0, 3, 0, 1, - 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, - 100, 200, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, - 21, 6, 10, 22, 0, 23, 24, 25, 26, 27, 112, 145, + 85, 254, 5, 66, 0, 45, 180, 0, 0, 0, 3, 0, 1, 1, + 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, 100, 200, + 150, 100, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, + 6, 10, 22, 0, 23, 24, 25, 26, 27, 119, 82, }; dummy_reset(); @@ -171,10 +171,6 @@ START_TEST(test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { test_msg.ssr_gridded_correction_bounds.tile_set_id = 1; - test_msg.ssr_gridded_correction_bounds.tropo_bound_mu = 150; - - test_msg.ssr_gridded_correction_bounds.tropo_bound_sig = 100; - test_msg.ssr_gridded_correction_bounds.tropo_delay_correction.hydro = 500; test_msg.ssr_gridded_correction_bounds.tropo_delay_correction.stddev = 200; @@ -183,6 +179,14 @@ START_TEST(test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { test_msg.ssr_gridded_correction_bounds.tropo_qi = 39; + test_msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_mu = 150; + + test_msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_sig = 100; + + test_msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_mu = 150; + + test_msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_sig = 100; + sbp_message_send(&sbp_state, SbpMsgSsrGriddedCorrectionBounds, 66, &test_msg, &dummy_write); @@ -407,20 +411,6 @@ START_TEST(test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { "expected 1, is %d", last_msg.msg.ssr_gridded_correction_bounds.tile_set_id); - ck_assert_msg( - last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_mu == 150, - "incorrect value for " - "last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_mu, expected " - "150, is %d", - last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_mu); - - ck_assert_msg( - last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_sig == 100, - "incorrect value for " - "last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_sig, expected " - "100, is %d", - last_msg.msg.ssr_gridded_correction_bounds.tropo_bound_sig); - ck_assert_msg(last_msg.msg.ssr_gridded_correction_bounds .tropo_delay_correction.hydro == 500, "incorrect value for " @@ -450,6 +440,36 @@ START_TEST(test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { "last_msg.msg.ssr_gridded_correction_bounds.tropo_qi, " "expected 39, is %d", last_msg.msg.ssr_gridded_correction_bounds.tropo_qi); + + ck_assert_msg( + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_mu == + 150, + "incorrect value for " + "last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_mu, " + "expected 150, is %d", + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_mu); + + ck_assert_msg( + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_sig == + 100, + "incorrect value for " + "last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_sig, " + "expected 100, is %d", + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_hydro_bound_sig); + + ck_assert_msg( + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_mu == 150, + "incorrect value for " + "last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_mu, " + "expected 150, is %d", + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_mu); + + ck_assert_msg( + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_sig == 100, + "incorrect value for " + "last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_sig, " + "expected 100, is %d", + last_msg.msg.ssr_gridded_correction_bounds.tropo_v_wet_bound_sig); } } END_TEST diff --git a/c/test/check_main.c b/c/test/check_main.c index 79ee60c34e..cd20bc9f4e 100644 --- a/c/test/check_main.c +++ b/c/test/check_main.c @@ -54,11 +54,9 @@ int main(void) { srunner_add_suite(sr, auto_check_sbp_navigation_MsgBaselineNEDDepA_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgDops_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgDopsDepA_suite()); - srunner_add_suite(sr, auto_check_sbp_navigation_MsgGPSLeapSecond_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgGPSTime_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgGPSTimeDepA_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgGPSTimeGNSS_suite()); - srunner_add_suite(sr, auto_check_sbp_navigation_MsgItrf_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgPosECEF_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgPosECEFCov_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgPosECEFCovGNSS_suite()); @@ -70,6 +68,9 @@ int main(void) { srunner_add_suite(sr, auto_check_sbp_navigation_MsgPosLlhCovGnss_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgPosLlhGnss_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgProtectionLevel_suite()); + srunner_add_suite(sr, + auto_check_sbp_navigation_MsgReferenceFrameParam_suite()); + srunner_add_suite(sr, auto_check_sbp_navigation_MsgUTCLeapSecond_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgUTCTime_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgUTCTimeGNSS_suite()); srunner_add_suite(sr, auto_check_sbp_navigation_MsgVelBody_suite()); diff --git a/c/test/check_main_legacy.c b/c/test/check_main_legacy.c index a76b0e6fee..1e78555d25 100644 --- a/c/test/check_main_legacy.c +++ b/c/test/check_main_legacy.c @@ -66,14 +66,11 @@ int main(void) { sr, legacy_auto_check_sbp_navigation_MsgBaselineNEDDepA_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgDops_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgDopsDepA_suite()); - srunner_add_suite(sr, - legacy_auto_check_sbp_navigation_MsgGPSLeapSecond_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgGPSTime_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgGPSTimeDepA_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgGPSTimeGNSS_suite()); - srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgItrf_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgPosECEF_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgPosECEFCov_suite()); srunner_add_suite(sr, @@ -90,6 +87,10 @@ int main(void) { srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgPosLlhGnss_suite()); srunner_add_suite( sr, legacy_auto_check_sbp_navigation_MsgProtectionLevel_suite()); + srunner_add_suite( + sr, legacy_auto_check_sbp_navigation_MsgReferenceFrameParam_suite()); + srunner_add_suite(sr, + legacy_auto_check_sbp_navigation_MsgUTCLeapSecond_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgUTCTime_suite()); srunner_add_suite(sr, legacy_auto_check_sbp_navigation_MsgUTCTimeGNSS_suite()); diff --git a/c/test/check_suites.h b/c/test/check_suites.h index 1122423621..d2ce5933ce 100644 --- a/c/test/check_suites.h +++ b/c/test/check_suites.h @@ -42,11 +42,9 @@ Suite* auto_check_sbp_navigation_MsgBaselineNED_suite(void); Suite* auto_check_sbp_navigation_MsgBaselineNEDDepA_suite(void); Suite* auto_check_sbp_navigation_MsgDops_suite(void); Suite* auto_check_sbp_navigation_MsgDopsDepA_suite(void); -Suite* auto_check_sbp_navigation_MsgGPSLeapSecond_suite(void); Suite* auto_check_sbp_navigation_MsgGPSTime_suite(void); Suite* auto_check_sbp_navigation_MsgGPSTimeDepA_suite(void); Suite* auto_check_sbp_navigation_MsgGPSTimeGNSS_suite(void); -Suite* auto_check_sbp_navigation_MsgItrf_suite(void); Suite* auto_check_sbp_navigation_MsgPosECEF_suite(void); Suite* auto_check_sbp_navigation_MsgPosECEFCov_suite(void); Suite* auto_check_sbp_navigation_MsgPosECEFCovGNSS_suite(void); @@ -58,6 +56,8 @@ Suite* auto_check_sbp_navigation_MsgPosLLHDepA_suite(void); Suite* auto_check_sbp_navigation_MsgPosLlhCovGnss_suite(void); Suite* auto_check_sbp_navigation_MsgPosLlhGnss_suite(void); Suite* auto_check_sbp_navigation_MsgProtectionLevel_suite(void); +Suite* auto_check_sbp_navigation_MsgReferenceFrameParam_suite(void); +Suite* auto_check_sbp_navigation_MsgUTCLeapSecond_suite(void); Suite* auto_check_sbp_navigation_MsgUTCTime_suite(void); Suite* auto_check_sbp_navigation_MsgUTCTimeGNSS_suite(void); Suite* auto_check_sbp_navigation_MsgVelBody_suite(void); diff --git a/c/test/check_suites_legacy.h b/c/test/check_suites_legacy.h index f18f0e3281..17e667e4c2 100644 --- a/c/test/check_suites_legacy.h +++ b/c/test/check_suites_legacy.h @@ -43,11 +43,9 @@ Suite* legacy_auto_check_sbp_navigation_MsgBaselineNED_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgBaselineNEDDepA_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgDops_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgDopsDepA_suite(void); -Suite* legacy_auto_check_sbp_navigation_MsgGPSLeapSecond_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgGPSTime_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgGPSTimeDepA_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgGPSTimeGNSS_suite(void); -Suite* legacy_auto_check_sbp_navigation_MsgItrf_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgPosECEF_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgPosECEFCov_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgPosECEFCovGNSS_suite(void); @@ -59,6 +57,8 @@ Suite* legacy_auto_check_sbp_navigation_MsgPosLLHDepA_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgPosLlhCovGnss_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgPosLlhGnss_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgProtectionLevel_suite(void); +Suite* legacy_auto_check_sbp_navigation_MsgReferenceFrameParam_suite(void); +Suite* legacy_auto_check_sbp_navigation_MsgUTCLeapSecond_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgUTCTime_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgUTCTimeGNSS_suite(void); Suite* legacy_auto_check_sbp_navigation_MsgVelBody_suite(void); diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgItrf.cc b/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc similarity index 82% rename from c/test/cpp/auto_check_sbp_navigation_MsgItrf.cc rename to c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc index 93feadcdcd..5b11ca773a 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgItrf.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc @@ -11,27 +11,27 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml by generate.py. Do -// not modify by hand! +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml by +// generate.py. Do not modify by hand! #include #include #include #include #include -class Test_auto_check_sbp_navigation_MsgItrf0 +class Test_auto_check_sbp_navigation_MsgReferenceFrameParam0 : public ::testing::Test, public sbp::State, public sbp::IReader, public sbp::IWriter, - sbp::MessageHandler { + sbp::MessageHandler { public: - Test_auto_check_sbp_navigation_MsgItrf0() + Test_auto_check_sbp_navigation_MsgReferenceFrameParam0() : ::testing::Test(), sbp::State(), sbp::IReader(), sbp::IWriter(), - sbp::MessageHandler(this), + sbp::MessageHandler(this), last_msg_(), last_msg_len_(), last_sender_id_(), @@ -58,13 +58,14 @@ class Test_auto_check_sbp_navigation_MsgItrf0 } protected: - void handle_sbp_msg(uint16_t sender_id, const sbp_msg_itrf_t &msg) override { + void handle_sbp_msg(uint16_t sender_id, + const sbp_msg_reference_frame_param_t &msg) override { last_msg_ = msg; last_sender_id_ = sender_id; n_callbacks_logged_++; } - sbp_msg_itrf_t last_msg_; + sbp_msg_reference_frame_param_t last_msg_; uint8_t last_msg_len_; uint16_t last_sender_id_; size_t n_callbacks_logged_; @@ -73,19 +74,19 @@ class Test_auto_check_sbp_navigation_MsgItrf0 uint8_t dummy_buff_[1024]; }; -TEST_F(Test_auto_check_sbp_navigation_MsgItrf0, Test) { +TEST_F(Test_auto_check_sbp_navigation_MsgReferenceFrameParam0, Test) { uint8_t encoded_frame[] = { - 85, 68, 2, 66, 0, 124, 1, 2, 102, 111, 111, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, - 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, - 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 66, 126, + 85, 68, 2, 66, 0, 124, 1, 102, 111, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, + 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, + 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 6, 161, }; - sbp_msg_itrf_t test_msg{}; + sbp_msg_reference_frame_param_t test_msg{}; test_msg.delta_X0 = 7; test_msg.delta_Y0 = 8; test_msg.delta_Z0 = 9; @@ -105,10 +106,9 @@ TEST_F(Test_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg.sn, assign_string, sizeof(assign_string)); } - test_msg.sn_counter_n = 2; test_msg.ssr_iod = 1; test_msg.theta_01 = 10; test_msg.theta_02 = 11; @@ -119,10 +119,9 @@ TEST_F(Test_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg.tn, assign_string, sizeof(assign_string)); } - test_msg.tn_counter_m = 3; test_msg.utn = 5; EXPECT_EQ(send_message(66, test_msg), SBP_OK); @@ -181,14 +180,11 @@ TEST_F(Test_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; EXPECT_EQ(memcmp(last_msg_.sn, check_string, sizeof(check_string)), 0) << "incorrect value for last_msg_.sn, expected string '" << check_string << "', is '" << last_msg_.sn << "'"; } - EXPECT_EQ(last_msg_.sn_counter_n, 2) - << "incorrect value for last_msg_.sn_counter_n, expected 2, is " - << last_msg_.sn_counter_n; EXPECT_EQ(last_msg_.ssr_iod, 1) << "incorrect value for last_msg_.ssr_iod, expected 1, is " << last_msg_.ssr_iod; @@ -207,14 +203,11 @@ TEST_F(Test_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; EXPECT_EQ(memcmp(last_msg_.tn, check_string, sizeof(check_string)), 0) << "incorrect value for last_msg_.tn, expected string '" << check_string << "', is '" << last_msg_.tn << "'"; } - EXPECT_EQ(last_msg_.tn_counter_m, 3) - << "incorrect value for last_msg_.tn_counter_m, expected 3, is " - << last_msg_.tn_counter_m; EXPECT_EQ(last_msg_.utn, 5) << "incorrect value for last_msg_.utn, expected 5, is " << last_msg_.utn; } diff --git a/c/test/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc b/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc similarity index 88% rename from c/test/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc rename to c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc index 6a94c19a8c..b498fc569d 100644 --- a/c/test/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc +++ b/c/test/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc @@ -11,7 +11,7 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by // generate.py. Do not modify by hand! #include @@ -19,19 +19,19 @@ #include #include #include -class Test_auto_check_sbp_navigation_MsgGPSLeapSecond0 +class Test_auto_check_sbp_navigation_MsgUTCLeapSecond0 : public ::testing::Test, public sbp::State, public sbp::IReader, public sbp::IWriter, - sbp::MessageHandler { + sbp::MessageHandler { public: - Test_auto_check_sbp_navigation_MsgGPSLeapSecond0() + Test_auto_check_sbp_navigation_MsgUTCLeapSecond0() : ::testing::Test(), sbp::State(), sbp::IReader(), sbp::IWriter(), - sbp::MessageHandler(this), + sbp::MessageHandler(this), last_msg_(), last_msg_len_(), last_sender_id_(), @@ -59,13 +59,13 @@ class Test_auto_check_sbp_navigation_MsgGPSLeapSecond0 protected: void handle_sbp_msg(uint16_t sender_id, - const sbp_msg_gps_leap_second_t &msg) override { + const sbp_msg_utc_leap_second_t &msg) override { last_msg_ = msg; last_sender_id_ = sender_id; n_callbacks_logged_++; } - sbp_msg_gps_leap_second_t last_msg_; + sbp_msg_utc_leap_second_t last_msg_; uint8_t last_msg_len_; uint16_t last_sender_id_; size_t n_callbacks_logged_; @@ -74,12 +74,12 @@ class Test_auto_check_sbp_navigation_MsgGPSLeapSecond0 uint8_t dummy_buff_[1024]; }; -TEST_F(Test_auto_check_sbp_navigation_MsgGPSLeapSecond0, Test) { +TEST_F(Test_auto_check_sbp_navigation_MsgUTCLeapSecond0, Test) { uint8_t encoded_frame[] = { 85, 58, 2, 66, 0, 14, 1, 0, 2, 0, 3, 4, 5, 0, 6, 0, 7, 0, 8, 9, 50, 232, }; - sbp_msg_gps_leap_second_t test_msg{}; + sbp_msg_utc_leap_second_t test_msg{}; test_msg.bias_coeff = 1; test_msg.count_after = 9; test_msg.count_before = 4; diff --git a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc index 7a118cdc63..fd4ed69348 100644 --- a/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc +++ b/c/test/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc @@ -77,10 +77,10 @@ class Test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0 TEST_F(Test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { uint8_t encoded_frame[] = { - 85, 254, 5, 66, 0, 43, 180, 0, 0, 0, 3, 0, 1, - 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, - 100, 200, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, - 21, 6, 10, 22, 0, 23, 24, 25, 26, 27, 112, 145, + 85, 254, 5, 66, 0, 45, 180, 0, 0, 0, 3, 0, 1, 1, + 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, 100, 200, + 150, 100, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, + 6, 10, 22, 0, 23, 24, 25, 26, 27, 119, 82, }; sbp_msg_ssr_gridded_correction_bounds_t test_msg{}; @@ -113,12 +113,14 @@ TEST_F(Test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { test_msg.stec_sat_list[1].stec_residual.sv_id.satId = 6; test_msg.tile_id = 10; test_msg.tile_set_id = 1; - test_msg.tropo_bound_mu = 150; - test_msg.tropo_bound_sig = 100; test_msg.tropo_delay_correction.hydro = 500; test_msg.tropo_delay_correction.stddev = 200; test_msg.tropo_delay_correction.wet = 100; test_msg.tropo_qi = 39; + test_msg.tropo_v_hydro_bound_mu = 150; + test_msg.tropo_v_hydro_bound_sig = 100; + test_msg.tropo_v_wet_bound_mu = 150; + test_msg.tropo_v_wet_bound_sig = 100; EXPECT_EQ(send_message(66, test_msg), SBP_OK); @@ -232,12 +234,6 @@ TEST_F(Test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { EXPECT_EQ(last_msg_.tile_set_id, 1) << "incorrect value for last_msg_.tile_set_id, expected 1, is " << last_msg_.tile_set_id; - EXPECT_EQ(last_msg_.tropo_bound_mu, 150) - << "incorrect value for last_msg_.tropo_bound_mu, expected 150, is " - << last_msg_.tropo_bound_mu; - EXPECT_EQ(last_msg_.tropo_bound_sig, 100) - << "incorrect value for last_msg_.tropo_bound_sig, expected 100, is " - << last_msg_.tropo_bound_sig; EXPECT_EQ(last_msg_.tropo_delay_correction.hydro, 500) << "incorrect value for last_msg_.tropo_delay_correction.hydro, expected " "500, is " @@ -253,4 +249,19 @@ TEST_F(Test_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { EXPECT_EQ(last_msg_.tropo_qi, 39) << "incorrect value for last_msg_.tropo_qi, expected 39, is " << last_msg_.tropo_qi; + EXPECT_EQ(last_msg_.tropo_v_hydro_bound_mu, 150) + << "incorrect value for last_msg_.tropo_v_hydro_bound_mu, expected 150, " + "is " + << last_msg_.tropo_v_hydro_bound_mu; + EXPECT_EQ(last_msg_.tropo_v_hydro_bound_sig, 100) + << "incorrect value for last_msg_.tropo_v_hydro_bound_sig, expected 100, " + "is " + << last_msg_.tropo_v_hydro_bound_sig; + EXPECT_EQ(last_msg_.tropo_v_wet_bound_mu, 150) + << "incorrect value for last_msg_.tropo_v_wet_bound_mu, expected 150, is " + << last_msg_.tropo_v_wet_bound_mu; + EXPECT_EQ(last_msg_.tropo_v_wet_bound_sig, 100) + << "incorrect value for last_msg_.tropo_v_wet_bound_sig, expected 100, " + "is " + << last_msg_.tropo_v_wet_bound_sig; } diff --git a/c/test/legacy/auto_check_sbp_navigation_MsgItrf.c b/c/test/legacy/auto_check_sbp_navigation_MsgReferenceFrameParam.c similarity index 87% rename from c/test/legacy/auto_check_sbp_navigation_MsgItrf.c rename to c/test/legacy/auto_check_sbp_navigation_MsgReferenceFrameParam.c index e2e98064fd..dc4d02e759 100644 --- a/c/test/legacy/auto_check_sbp_navigation_MsgItrf.c +++ b/c/test/legacy/auto_check_sbp_navigation_MsgReferenceFrameParam.c @@ -11,8 +11,8 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml by generate.py. Do -// not modify by hand! +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml by +// generate.py. Do not modify by hand! #include #include @@ -93,7 +93,7 @@ static void frame_callback(u16 sender_id, u16 msg_type, u8 msg_len, u8 msg[], last_frame.context = context; } -START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { +START_TEST(test_legacy_auto_check_sbp_navigation_MsgReferenceFrameParam) { static sbp_msg_callbacks_node_t n; static sbp_msg_callbacks_node_t n2; @@ -122,14 +122,14 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { &DUMMY_MEMORY_FOR_CALLBACKS, &n2); u8 encoded_frame[] = { - 85, 68, 2, 66, 0, 124, 1, 2, 102, 111, 111, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, - 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, - 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 66, 126, + 85, 68, 2, 66, 0, 124, 1, 102, 111, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, + 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, + 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 6, 161, }; dummy_reset(); @@ -137,7 +137,8 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { u8 test_msg_storage[SBP_MAX_PAYLOAD_LEN]; memset(test_msg_storage, 0, sizeof(test_msg_storage)); u8 test_msg_len = 0; - msg_itrf_t *test_msg = (msg_itrf_t *)test_msg_storage; + msg_reference_frame_param_t *test_msg = + (msg_reference_frame_param_t *)test_msg_storage; test_msg_len = sizeof(*test_msg); test_msg->delta_X0 = 7; test_msg->delta_Y0 = 8; @@ -158,13 +159,12 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg->sn, assign_string, sizeof(assign_string)); if (sizeof(test_msg->sn) == 0) { test_msg_len += sizeof(assign_string); } } - test_msg->sn_counter_n = 2; test_msg->ssr_iod = 1; test_msg->theta_01 = 10; test_msg->theta_02 = 11; @@ -175,13 +175,12 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg->tn, assign_string, sizeof(assign_string)); if (sizeof(test_msg->tn) == 0) { test_msg_len += sizeof(assign_string); } } - test_msg->tn_counter_m = 3; test_msg->utn = 5; sbp_payload_send(&sbp_state, 580, 66, test_msg_len, test_msg_storage, &dummy_write); @@ -234,7 +233,8 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { // Cast to expected message type - the +6 byte offset is where the payload // starts - msg_itrf_t *check_msg = (msg_itrf_t *)((void *)last_msg.msg); + msg_reference_frame_param_t *check_msg = + (msg_reference_frame_param_t *)((void *)last_msg.msg); // Run tests against fields ck_assert_msg(check_msg != 0, "stub to prevent warnings if msg isn't used"); ck_assert_msg(check_msg->delta_X0 == 7, @@ -281,15 +281,12 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; ck_assert_msg( memcmp(check_msg->sn, check_string, sizeof(check_string)) == 0, "incorrect value for check_msg->sn, expected string '%s', is '%s'", check_string, check_msg->sn); } - ck_assert_msg(check_msg->sn_counter_n == 2, - "incorrect value for sn_counter_n, expected 2, is %d", - check_msg->sn_counter_n); ck_assert_msg(check_msg->ssr_iod == 1, "incorrect value for ssr_iod, expected 1, is %d", check_msg->ssr_iod); @@ -308,27 +305,27 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgItrf) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; ck_assert_msg( memcmp(check_msg->tn, check_string, sizeof(check_string)) == 0, "incorrect value for check_msg->tn, expected string '%s', is '%s'", check_string, check_msg->tn); } - ck_assert_msg(check_msg->tn_counter_m == 3, - "incorrect value for tn_counter_m, expected 3, is %d", - check_msg->tn_counter_m); ck_assert_msg(check_msg->utn == 5, "incorrect value for utn, expected 5, is %d", check_msg->utn); } } END_TEST -Suite *legacy_auto_check_sbp_navigation_MsgItrf_suite(void) { +Suite *legacy_auto_check_sbp_navigation_MsgReferenceFrameParam_suite(void) { Suite *s = suite_create( - "SBP generated test suite: legacy_auto_check_sbp_navigation_MsgItrf"); - TCase *tc_acq = - tcase_create("Automated_Suite_legacy_auto_check_sbp_navigation_MsgItrf"); - tcase_add_test(tc_acq, test_legacy_auto_check_sbp_navigation_MsgItrf); + "SBP generated test suite: " + "legacy_auto_check_sbp_navigation_MsgReferenceFrameParam"); + TCase *tc_acq = tcase_create( + "Automated_Suite_legacy_auto_check_sbp_navigation_" + "MsgReferenceFrameParam"); + tcase_add_test(tc_acq, + test_legacy_auto_check_sbp_navigation_MsgReferenceFrameParam); suite_add_tcase(s, tc_acq); return s; } \ No newline at end of file diff --git a/c/test/legacy/auto_check_sbp_navigation_MsgGPSLeapSecond.c b/c/test/legacy/auto_check_sbp_navigation_MsgUTCLeapSecond.c similarity index 93% rename from c/test/legacy/auto_check_sbp_navigation_MsgGPSLeapSecond.c rename to c/test/legacy/auto_check_sbp_navigation_MsgUTCLeapSecond.c index d1c481b19e..5fa3afd554 100644 --- a/c/test/legacy/auto_check_sbp_navigation_MsgGPSLeapSecond.c +++ b/c/test/legacy/auto_check_sbp_navigation_MsgUTCLeapSecond.c @@ -11,7 +11,7 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by // generate.py. Do not modify by hand! #include @@ -93,7 +93,7 @@ static void frame_callback(u16 sender_id, u16 msg_type, u8 msg_len, u8 msg[], last_frame.context = context; } -START_TEST(test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond) { +START_TEST(test_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond) { static sbp_msg_callbacks_node_t n; static sbp_msg_callbacks_node_t n2; @@ -130,7 +130,7 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond) { u8 test_msg_storage[SBP_MAX_PAYLOAD_LEN]; memset(test_msg_storage, 0, sizeof(test_msg_storage)); u8 test_msg_len = 0; - msg_gps_leap_second_t *test_msg = (msg_gps_leap_second_t *)test_msg_storage; + msg_utc_leap_second_t *test_msg = (msg_utc_leap_second_t *)test_msg_storage; test_msg_len = sizeof(*test_msg); test_msg->bias_coeff = 1; test_msg->count_after = 9; @@ -192,8 +192,8 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond) { // Cast to expected message type - the +6 byte offset is where the payload // starts - msg_gps_leap_second_t *check_msg = - (msg_gps_leap_second_t *)((void *)last_msg.msg); + msg_utc_leap_second_t *check_msg = + (msg_utc_leap_second_t *)((void *)last_msg.msg); // Run tests against fields ck_assert_msg(check_msg != 0, "stub to prevent warnings if msg isn't used"); ck_assert_msg(check_msg->bias_coeff == 1, @@ -226,14 +226,14 @@ START_TEST(test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond) { } END_TEST -Suite *legacy_auto_check_sbp_navigation_MsgGPSLeapSecond_suite(void) { +Suite *legacy_auto_check_sbp_navigation_MsgUTCLeapSecond_suite(void) { Suite *s = suite_create( "SBP generated test suite: " - "legacy_auto_check_sbp_navigation_MsgGPSLeapSecond"); + "legacy_auto_check_sbp_navigation_MsgUTCLeapSecond"); TCase *tc_acq = tcase_create( - "Automated_Suite_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond"); + "Automated_Suite_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond"); tcase_add_test(tc_acq, - test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond); + test_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond); suite_add_tcase(s, tc_acq); return s; } \ No newline at end of file diff --git a/c/test/legacy/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c b/c/test/legacy/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c index 0205b85b5c..9229a3e45a 100644 --- a/c/test/legacy/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c +++ b/c/test/legacy/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.c @@ -122,10 +122,10 @@ START_TEST(test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { &DUMMY_MEMORY_FOR_CALLBACKS, &n2); u8 encoded_frame[] = { - 85, 254, 5, 66, 0, 43, 180, 0, 0, 0, 3, 0, 1, - 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, - 100, 200, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, - 21, 6, 10, 22, 0, 23, 24, 25, 26, 27, 112, 145, + 85, 254, 5, 66, 0, 45, 180, 0, 0, 0, 3, 0, 1, 1, + 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, 100, 200, + 150, 100, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, + 6, 10, 22, 0, 23, 24, 25, 26, 27, 119, 82, }; dummy_reset(); @@ -171,12 +171,14 @@ START_TEST(test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { test_msg->stec_sat_list[1].stec_residual.sv_id.satId = 6; test_msg->tile_id = 10; test_msg->tile_set_id = 1; - test_msg->tropo_bound_mu = 150; - test_msg->tropo_bound_sig = 100; test_msg->tropo_delay_correction.hydro = 500; test_msg->tropo_delay_correction.stddev = 200; test_msg->tropo_delay_correction.wet = 100; test_msg->tropo_qi = 39; + test_msg->tropo_v_hydro_bound_mu = 150; + test_msg->tropo_v_hydro_bound_sig = 100; + test_msg->tropo_v_wet_bound_mu = 150; + test_msg->tropo_v_wet_bound_sig = 100; sbp_payload_send(&sbp_state, 1534, 66, test_msg_len, test_msg_storage, &dummy_write); @@ -336,12 +338,6 @@ START_TEST(test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { ck_assert_msg(check_msg->tile_set_id == 1, "incorrect value for tile_set_id, expected 1, is %d", check_msg->tile_set_id); - ck_assert_msg(check_msg->tropo_bound_mu == 150, - "incorrect value for tropo_bound_mu, expected 150, is %d", - check_msg->tropo_bound_mu); - ck_assert_msg(check_msg->tropo_bound_sig == 100, - "incorrect value for tropo_bound_sig, expected 100, is %d", - check_msg->tropo_bound_sig); ck_assert_msg( check_msg->tropo_delay_correction.hydro == 500, "incorrect value for tropo_delay_correction.hydro, expected 500, is %d", @@ -357,6 +353,22 @@ START_TEST(test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds) { ck_assert_msg(check_msg->tropo_qi == 39, "incorrect value for tropo_qi, expected 39, is %d", check_msg->tropo_qi); + ck_assert_msg( + check_msg->tropo_v_hydro_bound_mu == 150, + "incorrect value for tropo_v_hydro_bound_mu, expected 150, is %d", + check_msg->tropo_v_hydro_bound_mu); + ck_assert_msg( + check_msg->tropo_v_hydro_bound_sig == 100, + "incorrect value for tropo_v_hydro_bound_sig, expected 100, is %d", + check_msg->tropo_v_hydro_bound_sig); + ck_assert_msg( + check_msg->tropo_v_wet_bound_mu == 150, + "incorrect value for tropo_v_wet_bound_mu, expected 150, is %d", + check_msg->tropo_v_wet_bound_mu); + ck_assert_msg( + check_msg->tropo_v_wet_bound_sig == 100, + "incorrect value for tropo_v_wet_bound_sig, expected 100, is %d", + check_msg->tropo_v_wet_bound_sig); } } END_TEST diff --git a/c/test/legacy/cpp/auto_check_sbp_navigation_MsgItrf.cc b/c/test/legacy/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc similarity index 82% rename from c/test/legacy/cpp/auto_check_sbp_navigation_MsgItrf.cc rename to c/test/legacy/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc index 584d12a706..83582b4e87 100644 --- a/c/test/legacy/cpp/auto_check_sbp_navigation_MsgItrf.cc +++ b/c/test/legacy/cpp/auto_check_sbp_navigation_MsgReferenceFrameParam.cc @@ -11,28 +11,29 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml by generate.py. Do -// not modify by hand! +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml by +// generate.py. Do not modify by hand! #include #include #include #include -class Test_legacy_auto_check_sbp_navigation_MsgItrf0 +class Test_legacy_auto_check_sbp_navigation_MsgReferenceFrameParam0 : public ::testing::Test, public sbp::State, public sbp::IReader, public sbp::IWriter, - sbp::PayloadHandler { + sbp::PayloadHandler { public: - Test_legacy_auto_check_sbp_navigation_MsgItrf0() + Test_legacy_auto_check_sbp_navigation_MsgReferenceFrameParam0() : ::testing::Test(), sbp::State(), sbp::IReader(), sbp::IWriter(), - sbp::PayloadHandler(this), + sbp::PayloadHandler(this), last_msg_storage_(), - last_msg_(reinterpret_cast(last_msg_storage_)), + last_msg_( + reinterpret_cast(last_msg_storage_)), last_msg_len_(), last_sender_id_(), n_callbacks_logged_(), @@ -59,7 +60,7 @@ class Test_legacy_auto_check_sbp_navigation_MsgItrf0 protected: void handle_sbp_msg(uint16_t sender_id, uint8_t message_length, - const msg_itrf_t &msg) override { + const msg_reference_frame_param_t &msg) override { memcpy(last_msg_storage_, &msg, message_length); last_msg_len_ = message_length; last_sender_id_ = sender_id; @@ -67,7 +68,7 @@ class Test_legacy_auto_check_sbp_navigation_MsgItrf0 } uint8_t last_msg_storage_[SBP_MAX_PAYLOAD_LEN]; - msg_itrf_t *last_msg_; + msg_reference_frame_param_t *last_msg_; uint8_t last_msg_len_; uint16_t last_sender_id_; size_t n_callbacks_logged_; @@ -76,21 +77,22 @@ class Test_legacy_auto_check_sbp_navigation_MsgItrf0 uint8_t dummy_buff_[1024]; }; -TEST_F(Test_legacy_auto_check_sbp_navigation_MsgItrf0, Test) { +TEST_F(Test_legacy_auto_check_sbp_navigation_MsgReferenceFrameParam0, Test) { uint8_t encoded_frame[] = { - 85, 68, 2, 66, 0, 124, 1, 2, 102, 111, 111, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, - 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, - 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, - 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 66, 126, + 85, 68, 2, 66, 0, 124, 1, 102, 111, 111, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 97, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 0, 6, 0, 7, 0, 0, 0, 8, 0, 0, 0, 9, + 0, 0, 0, 10, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 14, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 17, 0, 0, + 0, 18, 0, 0, 0, 19, 0, 0, 0, 20, 0, 6, 161, }; uint8_t test_msg_storage[SBP_MAX_PAYLOAD_LEN]{}; uint8_t test_msg_len = 0; - msg_itrf_t *test_msg = (msg_itrf_t *)test_msg_storage; + msg_reference_frame_param_t *test_msg = + (msg_reference_frame_param_t *)test_msg_storage; test_msg_len = (uint8_t)sizeof(*test_msg); test_msg->delta_X0 = 7; test_msg->delta_Y0 = 8; @@ -111,13 +113,12 @@ TEST_F(Test_legacy_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg->sn, assign_string, sizeof(assign_string)); if (sizeof(test_msg->sn) == 0) { test_msg_len = (uint8_t)(test_msg_len + sizeof(assign_string)); } } - test_msg->sn_counter_n = 2; test_msg->ssr_iod = 1; test_msg->theta_01 = 10; test_msg->theta_02 = 11; @@ -128,13 +129,12 @@ TEST_F(Test_legacy_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; memcpy(test_msg->tn, assign_string, sizeof(assign_string)); if (sizeof(test_msg->tn) == 0) { test_msg_len = (uint8_t)(test_msg_len + sizeof(assign_string)); } } - test_msg->tn_counter_m = 3; test_msg->utn = 5; EXPECT_EQ(send_message(580, 66, test_msg_len, test_msg_storage), SBP_OK); @@ -188,14 +188,11 @@ TEST_F(Test_legacy_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; EXPECT_EQ(memcmp(last_msg_->sn, check_string, sizeof(check_string)), 0) << "incorrect value for last_msg_->sn, expected string '" << check_string << "', is '" << last_msg_->sn << "'"; } - EXPECT_EQ(last_msg_->sn_counter_n, 2) - << "incorrect value for sn_counter_n, expected 2, is " - << last_msg_->sn_counter_n; EXPECT_EQ(last_msg_->ssr_iod, 1) << "incorrect value for ssr_iod, expected 1, is " << last_msg_->ssr_iod; EXPECT_EQ(last_msg_->theta_01, 10) @@ -213,14 +210,11 @@ TEST_F(Test_legacy_auto_check_sbp_navigation_MsgItrf0, Test) { (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, (char)0, - (char)0, (char)0, (char)0}; + (char)0, (char)0, (char)0, (char)0}; EXPECT_EQ(memcmp(last_msg_->tn, check_string, sizeof(check_string)), 0) << "incorrect value for last_msg_->tn, expected string '" << check_string << "', is '" << last_msg_->tn << "'"; } - EXPECT_EQ(last_msg_->tn_counter_m, 3) - << "incorrect value for tn_counter_m, expected 3, is " - << last_msg_->tn_counter_m; EXPECT_EQ(last_msg_->utn, 5) << "incorrect value for utn, expected 5, is " << last_msg_->utn; } diff --git a/c/test/legacy/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc b/c/test/legacy/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc similarity index 87% rename from c/test/legacy/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc rename to c/test/legacy/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc index b11d6f0a23..73a846d9d1 100644 --- a/c/test/legacy/cpp/auto_check_sbp_navigation_MsgGPSLeapSecond.cc +++ b/c/test/legacy/cpp/auto_check_sbp_navigation_MsgUTCLeapSecond.cc @@ -11,28 +11,28 @@ */ // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by // generate.py. Do not modify by hand! #include #include #include #include -class Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0 +class Test_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond0 : public ::testing::Test, public sbp::State, public sbp::IReader, public sbp::IWriter, - sbp::PayloadHandler { + sbp::PayloadHandler { public: - Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0() + Test_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond0() : ::testing::Test(), sbp::State(), sbp::IReader(), sbp::IWriter(), - sbp::PayloadHandler(this), + sbp::PayloadHandler(this), last_msg_storage_(), - last_msg_(reinterpret_cast(last_msg_storage_)), + last_msg_(reinterpret_cast(last_msg_storage_)), last_msg_len_(), last_sender_id_(), n_callbacks_logged_(), @@ -59,7 +59,7 @@ class Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0 protected: void handle_sbp_msg(uint16_t sender_id, uint8_t message_length, - const msg_gps_leap_second_t &msg) override { + const msg_utc_leap_second_t &msg) override { memcpy(last_msg_storage_, &msg, message_length); last_msg_len_ = message_length; last_sender_id_ = sender_id; @@ -67,7 +67,7 @@ class Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0 } uint8_t last_msg_storage_[SBP_MAX_PAYLOAD_LEN]; - msg_gps_leap_second_t *last_msg_; + msg_utc_leap_second_t *last_msg_; uint8_t last_msg_len_; uint16_t last_sender_id_; size_t n_callbacks_logged_; @@ -76,14 +76,14 @@ class Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0 uint8_t dummy_buff_[1024]; }; -TEST_F(Test_legacy_auto_check_sbp_navigation_MsgGPSLeapSecond0, Test) { +TEST_F(Test_legacy_auto_check_sbp_navigation_MsgUTCLeapSecond0, Test) { uint8_t encoded_frame[] = { 85, 58, 2, 66, 0, 14, 1, 0, 2, 0, 3, 4, 5, 0, 6, 0, 7, 0, 8, 9, 50, 232, }; uint8_t test_msg_storage[SBP_MAX_PAYLOAD_LEN]{}; uint8_t test_msg_len = 0; - msg_gps_leap_second_t *test_msg = (msg_gps_leap_second_t *)test_msg_storage; + msg_utc_leap_second_t *test_msg = (msg_utc_leap_second_t *)test_msg_storage; test_msg_len = (uint8_t)sizeof(*test_msg); test_msg->bias_coeff = 1; test_msg->count_after = 9; diff --git a/c/test/legacy/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc b/c/test/legacy/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc index 1bae53374d..3fdd449783 100644 --- a/c/test/legacy/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc +++ b/c/test/legacy/cpp/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds.cc @@ -79,10 +79,10 @@ class Test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0 TEST_F(Test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { uint8_t encoded_frame[] = { - 85, 254, 5, 66, 0, 43, 180, 0, 0, 0, 3, 0, 1, - 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, - 100, 200, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, - 21, 6, 10, 22, 0, 23, 24, 25, 26, 27, 112, 145, + 85, 254, 5, 66, 0, 45, 180, 0, 0, 0, 3, 0, 1, 1, + 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, 244, 1, 100, 200, + 150, 100, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, + 6, 10, 22, 0, 23, 24, 25, 26, 27, 119, 82, }; uint8_t test_msg_storage[SBP_MAX_PAYLOAD_LEN]{}; @@ -125,12 +125,14 @@ TEST_F(Test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { test_msg->stec_sat_list[1].stec_residual.sv_id.satId = 6; test_msg->tile_id = 10; test_msg->tile_set_id = 1; - test_msg->tropo_bound_mu = 150; - test_msg->tropo_bound_sig = 100; test_msg->tropo_delay_correction.hydro = 500; test_msg->tropo_delay_correction.stddev = 200; test_msg->tropo_delay_correction.wet = 100; test_msg->tropo_qi = 39; + test_msg->tropo_v_hydro_bound_mu = 150; + test_msg->tropo_v_hydro_bound_sig = 100; + test_msg->tropo_v_wet_bound_mu = 150; + test_msg->tropo_v_wet_bound_sig = 100; EXPECT_EQ(send_message(1534, 66, test_msg_len, test_msg_storage), SBP_OK); @@ -235,12 +237,6 @@ TEST_F(Test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { EXPECT_EQ(last_msg_->tile_set_id, 1) << "incorrect value for tile_set_id, expected 1, is " << last_msg_->tile_set_id; - EXPECT_EQ(last_msg_->tropo_bound_mu, 150) - << "incorrect value for tropo_bound_mu, expected 150, is " - << last_msg_->tropo_bound_mu; - EXPECT_EQ(last_msg_->tropo_bound_sig, 100) - << "incorrect value for tropo_bound_sig, expected 100, is " - << last_msg_->tropo_bound_sig; EXPECT_EQ(last_msg_->tropo_delay_correction.hydro, 500) << "incorrect value for tropo_delay_correction.hydro, expected 500, is " << last_msg_->tropo_delay_correction.hydro; @@ -253,4 +249,16 @@ TEST_F(Test_legacy_auto_check_sbp_ssr_MsgSsrGriddedCorrectionBounds0, Test) { EXPECT_EQ(last_msg_->tropo_qi, 39) << "incorrect value for tropo_qi, expected 39, is " << last_msg_->tropo_qi; + EXPECT_EQ(last_msg_->tropo_v_hydro_bound_mu, 150) + << "incorrect value for tropo_v_hydro_bound_mu, expected 150, is " + << last_msg_->tropo_v_hydro_bound_mu; + EXPECT_EQ(last_msg_->tropo_v_hydro_bound_sig, 100) + << "incorrect value for tropo_v_hydro_bound_sig, expected 100, is " + << last_msg_->tropo_v_hydro_bound_sig; + EXPECT_EQ(last_msg_->tropo_v_wet_bound_mu, 150) + << "incorrect value for tropo_v_wet_bound_mu, expected 150, is " + << last_msg_->tropo_v_wet_bound_mu; + EXPECT_EQ(last_msg_->tropo_v_wet_bound_sig, 100) + << "incorrect value for tropo_v_wet_bound_sig, expected 100, is " + << last_msg_->tropo_v_wet_bound_sig; } diff --git a/docs/sbp.pdf b/docs/sbp.pdf index 6f5656b2a0..45aaf5ea84 100644 Binary files a/docs/sbp.pdf and b/docs/sbp.pdf differ diff --git a/generator/sbpg/targets/resources/c/sbp_messages_template.h b/generator/sbpg/targets/resources/c/sbp_messages_template.h index 08005a012b..ccbf82004f 100644 --- a/generator/sbpg/targets/resources/c/sbp_messages_template.h +++ b/generator/sbpg/targets/resources/c/sbp_messages_template.h @@ -25,3 +25,4 @@ SBP_MESSAGE("Legacy SBP definitions have moved. To continue using legacy message #include #endif /* LIBSBP_(((pkg_name|upper)))_MESSAGES_H */ + diff --git a/generator/sbpg/targets/resources/c/sbp_version_template.h b/generator/sbpg/targets/resources/c/sbp_version_template.h index f5a23cd0c0..759fdf8fdc 100644 --- a/generator/sbpg/targets/resources/c/sbp_version_template.h +++ b/generator/sbpg/targets/resources/c/sbp_version_template.h @@ -37,3 +37,4 @@ #endif /* LIBSBP_VERSION_H */ + diff --git a/generator/sbpg/targets/resources/sbp_js.js.j2 b/generator/sbpg/targets/resources/sbp_js.js.j2 index 7b41725d20..e125725050 100644 --- a/generator/sbpg/targets/resources/sbp_js.js.j2 +++ b/generator/sbpg/targets/resources/sbp_js.js.j2 @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/(((filepath))) with generate.py. + * Automatically generated from spec/yaml/(((filepath))) with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * (((description | comment_links | starWordWrap))) ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; ((*- for (file, ident) in include *)) ((*- if ident is list *)) ((*- for ident2 in ident *)) -var (((ident2))) = require("./(((file)))").(((ident2))); +let (((ident2))) = require("./(((file)))").(((ident2))); ((*- endfor *)) ((*- else *)) -var (((ident))) = require("./(((file)))").(((ident))); +let (((ident))) = require("./(((file)))").(((ident))); ((*- endif *)) ((*- endfor *)) @@ -46,7 +46,7 @@ var (((ident))) = require("./(((file)))").(((ident))); *((*- endif *)) * @param sbp An SBP object with a payload to be decoded. */ -var ((( m.identifier | js_classnameify ))) = function (sbp, fields) { +let ((( m.identifier | js_classnameify ))) = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "(((m.identifier)))"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/haskell/src/SwiftNav/SBP/Msg.hs b/haskell/src/SwiftNav/SBP/Msg.hs index 07a9bb3dd1..487619c93b 100644 --- a/haskell/src/SwiftNav/SBP/Msg.hs +++ b/haskell/src/SwiftNav/SBP/Msg.hs @@ -132,7 +132,6 @@ data SBPMsg = | SBPMsgGloBiases MsgGloBiases Msg | SBPMsgGnssCapb MsgGnssCapb Msg | SBPMsgGnssTimeOffset MsgGnssTimeOffset Msg - | SBPMsgGpsLeapSecond MsgGpsLeapSecond Msg | SBPMsgGpsTime MsgGpsTime Msg | SBPMsgGpsTimeDepA MsgGpsTimeDepA Msg | SBPMsgGpsTimeGnss MsgGpsTimeGnss Msg @@ -148,7 +147,6 @@ data SBPMsg = | SBPMsgInsStatus MsgInsStatus Msg | SBPMsgInsUpdates MsgInsUpdates Msg | SBPMsgIono MsgIono Msg - | SBPMsgItrf MsgItrf Msg | SBPMsgLinuxCpuState MsgLinuxCpuState Msg | SBPMsgLinuxCpuStateDepA MsgLinuxCpuStateDepA Msg | SBPMsgLinuxMemState MsgLinuxMemState Msg @@ -195,6 +193,7 @@ data SBPMsg = | SBPMsgPrintDep MsgPrintDep Msg | SBPMsgProtectionLevel MsgProtectionLevel Msg | SBPMsgProtectionLevelDepA MsgProtectionLevelDepA Msg + | SBPMsgReferenceFrameParam MsgReferenceFrameParam Msg | SBPMsgReset MsgReset Msg | SBPMsgResetDep MsgResetDep Msg | SBPMsgResetFilters MsgResetFilters Msg @@ -260,6 +259,7 @@ data SBPMsg = | SBPMsgUartState MsgUartState Msg | SBPMsgUartStateDepa MsgUartStateDepa Msg | SBPMsgUserData MsgUserData Msg + | SBPMsgUtcLeapSecond MsgUtcLeapSecond Msg | SBPMsgUtcTime MsgUtcTime Msg | SBPMsgUtcTimeGnss MsgUtcTimeGnss Msg | SBPMsgVelBody MsgVelBody Msg @@ -364,7 +364,6 @@ instance Binary SBPMsg where | _msgSBPType == msgGloBiases = SBPMsgGloBiases (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgGnssCapb = SBPMsgGnssCapb (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgGnssTimeOffset = SBPMsgGnssTimeOffset (decode (fromStrict (unBytes _msgSBPPayload))) m - | _msgSBPType == msgGpsLeapSecond = SBPMsgGpsLeapSecond (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgGpsTime = SBPMsgGpsTime (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgGpsTimeDepA = SBPMsgGpsTimeDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgGpsTimeGnss = SBPMsgGpsTimeGnss (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -380,7 +379,6 @@ instance Binary SBPMsg where | _msgSBPType == msgInsStatus = SBPMsgInsStatus (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgInsUpdates = SBPMsgInsUpdates (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgIono = SBPMsgIono (decode (fromStrict (unBytes _msgSBPPayload))) m - | _msgSBPType == msgItrf = SBPMsgItrf (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgLinuxCpuState = SBPMsgLinuxCpuState (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgLinuxCpuStateDepA = SBPMsgLinuxCpuStateDepA (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgLinuxMemState = SBPMsgLinuxMemState (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -427,6 +425,7 @@ instance Binary SBPMsg where | _msgSBPType == msgPrintDep = SBPMsgPrintDep (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgProtectionLevel = SBPMsgProtectionLevel (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgProtectionLevelDepA = SBPMsgProtectionLevelDepA (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgReferenceFrameParam = SBPMsgReferenceFrameParam (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgReset = SBPMsgReset (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgResetDep = SBPMsgResetDep (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgResetFilters = SBPMsgResetFilters (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -492,6 +491,7 @@ instance Binary SBPMsg where | _msgSBPType == msgUartState = SBPMsgUartState (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgUartStateDepa = SBPMsgUartStateDepa (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgUserData = SBPMsgUserData (decode (fromStrict (unBytes _msgSBPPayload))) m + | _msgSBPType == msgUtcLeapSecond = SBPMsgUtcLeapSecond (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgUtcTime = SBPMsgUtcTime (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgUtcTimeGnss = SBPMsgUtcTimeGnss (decode (fromStrict (unBytes _msgSBPPayload))) m | _msgSBPType == msgVelBody = SBPMsgVelBody (decode (fromStrict (unBytes _msgSBPPayload))) m @@ -588,7 +588,6 @@ instance Binary SBPMsg where encoder (SBPMsgGloBiases _ m) = put m encoder (SBPMsgGnssCapb _ m) = put m encoder (SBPMsgGnssTimeOffset _ m) = put m - encoder (SBPMsgGpsLeapSecond _ m) = put m encoder (SBPMsgGpsTime _ m) = put m encoder (SBPMsgGpsTimeDepA _ m) = put m encoder (SBPMsgGpsTimeGnss _ m) = put m @@ -604,7 +603,6 @@ instance Binary SBPMsg where encoder (SBPMsgInsStatus _ m) = put m encoder (SBPMsgInsUpdates _ m) = put m encoder (SBPMsgIono _ m) = put m - encoder (SBPMsgItrf _ m) = put m encoder (SBPMsgLinuxCpuState _ m) = put m encoder (SBPMsgLinuxCpuStateDepA _ m) = put m encoder (SBPMsgLinuxMemState _ m) = put m @@ -651,6 +649,7 @@ instance Binary SBPMsg where encoder (SBPMsgPrintDep _ m) = put m encoder (SBPMsgProtectionLevel _ m) = put m encoder (SBPMsgProtectionLevelDepA _ m) = put m + encoder (SBPMsgReferenceFrameParam _ m) = put m encoder (SBPMsgReset _ m) = put m encoder (SBPMsgResetDep _ m) = put m encoder (SBPMsgResetFilters _ m) = put m @@ -716,6 +715,7 @@ instance Binary SBPMsg where encoder (SBPMsgUartState _ m) = put m encoder (SBPMsgUartStateDepa _ m) = put m encoder (SBPMsgUserData _ m) = put m + encoder (SBPMsgUtcLeapSecond _ m) = put m encoder (SBPMsgUtcTime _ m) = put m encoder (SBPMsgUtcTimeGnss _ m) = put m encoder (SBPMsgVelBody _ m) = put m @@ -816,7 +816,6 @@ instance FromJSON SBPMsg where | msgType == msgGloBiases = SBPMsgGloBiases <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgGnssCapb = SBPMsgGnssCapb <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgGnssTimeOffset = SBPMsgGnssTimeOffset <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj - | msgType == msgGpsLeapSecond = SBPMsgGpsLeapSecond <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgGpsTime = SBPMsgGpsTime <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgGpsTimeDepA = SBPMsgGpsTimeDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgGpsTimeGnss = SBPMsgGpsTimeGnss <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -832,7 +831,6 @@ instance FromJSON SBPMsg where | msgType == msgInsStatus = SBPMsgInsStatus <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgInsUpdates = SBPMsgInsUpdates <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgIono = SBPMsgIono <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj - | msgType == msgItrf = SBPMsgItrf <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgLinuxCpuState = SBPMsgLinuxCpuState <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgLinuxCpuStateDepA = SBPMsgLinuxCpuStateDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgLinuxMemState = SBPMsgLinuxMemState <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -879,6 +877,7 @@ instance FromJSON SBPMsg where | msgType == msgPrintDep = SBPMsgPrintDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgProtectionLevel = SBPMsgProtectionLevel <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgProtectionLevelDepA = SBPMsgProtectionLevelDepA <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgReferenceFrameParam = SBPMsgReferenceFrameParam <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgReset = SBPMsgReset <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgResetDep = SBPMsgResetDep <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgResetFilters = SBPMsgResetFilters <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -944,6 +943,7 @@ instance FromJSON SBPMsg where | msgType == msgUartState = SBPMsgUartState <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgUartStateDepa = SBPMsgUartStateDepa <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgUserData = SBPMsgUserData <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj + | msgType == msgUtcLeapSecond = SBPMsgUtcLeapSecond <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgUtcTime = SBPMsgUtcTime <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgUtcTimeGnss = SBPMsgUtcTimeGnss <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj | msgType == msgVelBody = SBPMsgVelBody <$> pure (decode (fromStrict (unBytes payload))) <*> parseJSON obj @@ -1045,7 +1045,6 @@ instance ToJSON SBPMsg where toJSON (SBPMsgGloBiases n m) = toJSON n <<>> toJSON m toJSON (SBPMsgGnssCapb n m) = toJSON n <<>> toJSON m toJSON (SBPMsgGnssTimeOffset n m) = toJSON n <<>> toJSON m - toJSON (SBPMsgGpsLeapSecond n m) = toJSON n <<>> toJSON m toJSON (SBPMsgGpsTime n m) = toJSON n <<>> toJSON m toJSON (SBPMsgGpsTimeDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgGpsTimeGnss n m) = toJSON n <<>> toJSON m @@ -1061,7 +1060,6 @@ instance ToJSON SBPMsg where toJSON (SBPMsgInsStatus n m) = toJSON n <<>> toJSON m toJSON (SBPMsgInsUpdates n m) = toJSON n <<>> toJSON m toJSON (SBPMsgIono n m) = toJSON n <<>> toJSON m - toJSON (SBPMsgItrf n m) = toJSON n <<>> toJSON m toJSON (SBPMsgLinuxCpuState n m) = toJSON n <<>> toJSON m toJSON (SBPMsgLinuxCpuStateDepA n m) = toJSON n <<>> toJSON m toJSON (SBPMsgLinuxMemState n m) = toJSON n <<>> toJSON m @@ -1108,6 +1106,7 @@ instance ToJSON SBPMsg where toJSON (SBPMsgPrintDep n m) = toJSON n <<>> toJSON m toJSON (SBPMsgProtectionLevel n m) = toJSON n <<>> toJSON m toJSON (SBPMsgProtectionLevelDepA n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgReferenceFrameParam n m) = toJSON n <<>> toJSON m toJSON (SBPMsgReset n m) = toJSON n <<>> toJSON m toJSON (SBPMsgResetDep _ m) = toJSON m toJSON (SBPMsgResetFilters n m) = toJSON n <<>> toJSON m @@ -1173,6 +1172,7 @@ instance ToJSON SBPMsg where toJSON (SBPMsgUartState n m) = toJSON n <<>> toJSON m toJSON (SBPMsgUartStateDepa n m) = toJSON n <<>> toJSON m toJSON (SBPMsgUserData n m) = toJSON n <<>> toJSON m + toJSON (SBPMsgUtcLeapSecond n m) = toJSON n <<>> toJSON m toJSON (SBPMsgUtcTime n m) = toJSON n <<>> toJSON m toJSON (SBPMsgUtcTimeGnss n m) = toJSON n <<>> toJSON m toJSON (SBPMsgVelBody n m) = toJSON n <<>> toJSON m @@ -1268,7 +1268,6 @@ instance HasMsg SBPMsg where msg f (SBPMsgGloBiases n m) = SBPMsgGloBiases n <$> f m msg f (SBPMsgGnssCapb n m) = SBPMsgGnssCapb n <$> f m msg f (SBPMsgGnssTimeOffset n m) = SBPMsgGnssTimeOffset n <$> f m - msg f (SBPMsgGpsLeapSecond n m) = SBPMsgGpsLeapSecond n <$> f m msg f (SBPMsgGpsTime n m) = SBPMsgGpsTime n <$> f m msg f (SBPMsgGpsTimeDepA n m) = SBPMsgGpsTimeDepA n <$> f m msg f (SBPMsgGpsTimeGnss n m) = SBPMsgGpsTimeGnss n <$> f m @@ -1284,7 +1283,6 @@ instance HasMsg SBPMsg where msg f (SBPMsgInsStatus n m) = SBPMsgInsStatus n <$> f m msg f (SBPMsgInsUpdates n m) = SBPMsgInsUpdates n <$> f m msg f (SBPMsgIono n m) = SBPMsgIono n <$> f m - msg f (SBPMsgItrf n m) = SBPMsgItrf n <$> f m msg f (SBPMsgLinuxCpuState n m) = SBPMsgLinuxCpuState n <$> f m msg f (SBPMsgLinuxCpuStateDepA n m) = SBPMsgLinuxCpuStateDepA n <$> f m msg f (SBPMsgLinuxMemState n m) = SBPMsgLinuxMemState n <$> f m @@ -1331,6 +1329,7 @@ instance HasMsg SBPMsg where msg f (SBPMsgPrintDep n m) = SBPMsgPrintDep n <$> f m msg f (SBPMsgProtectionLevel n m) = SBPMsgProtectionLevel n <$> f m msg f (SBPMsgProtectionLevelDepA n m) = SBPMsgProtectionLevelDepA n <$> f m + msg f (SBPMsgReferenceFrameParam n m) = SBPMsgReferenceFrameParam n <$> f m msg f (SBPMsgReset n m) = SBPMsgReset n <$> f m msg f (SBPMsgResetDep n m) = SBPMsgResetDep n <$> f m msg f (SBPMsgResetFilters n m) = SBPMsgResetFilters n <$> f m @@ -1396,6 +1395,7 @@ instance HasMsg SBPMsg where msg f (SBPMsgUartState n m) = SBPMsgUartState n <$> f m msg f (SBPMsgUartStateDepa n m) = SBPMsgUartStateDepa n <$> f m msg f (SBPMsgUserData n m) = SBPMsgUserData n <$> f m + msg f (SBPMsgUtcLeapSecond n m) = SBPMsgUtcLeapSecond n <$> f m msg f (SBPMsgUtcTime n m) = SBPMsgUtcTime n <$> f m msg f (SBPMsgUtcTimeGnss n m) = SBPMsgUtcTimeGnss n <$> f m msg f (SBPMsgVelBody n m) = SBPMsgVelBody n <$> f m diff --git a/haskell/src/SwiftNav/SBP/Navigation.hs b/haskell/src/SwiftNav/SBP/Navigation.hs index a8e9aadbd3..4e9f2a4313 100644 --- a/haskell/src/SwiftNav/SBP/Navigation.hs +++ b/haskell/src/SwiftNav/SBP/Navigation.hs @@ -2304,166 +2304,158 @@ $(makeSBP 'msgProtectionLevel ''MsgProtectionLevel) $(makeJSON "_msgProtectionLevel_" ''MsgProtectionLevel) $(makeLenses ''MsgProtectionLevel) -msgGpsLeapSecond :: Word16 -msgGpsLeapSecond = 0x023A +msgUtcLeapSecond :: Word16 +msgUtcLeapSecond = 0x023A --- | SBP class for message MSG_GPS_LEAP_SECOND (0x023A). +-- | SBP class for message MSG_UTC_LEAP_SECOND (0x023A). -- -- Emulates the GPS CNAV message, reserving bytes for future broadcast of the -- drift model parameters. -data MsgGpsLeapSecond = MsgGpsLeapSecond - { _msgGpsLeapSecond_bias_coeff :: !Int16 +data MsgUtcLeapSecond = MsgUtcLeapSecond + { _msgUtcLeapSecond_bias_coeff :: !Int16 -- ^ Reserved. Bias coefficient of GPS time scale with respect to UTC drift -- model. - , _msgGpsLeapSecond_drift_coeff :: !Int16 + , _msgUtcLeapSecond_drift_coeff :: !Int16 -- ^ Reserved. Drift coefficient of GPS time scale with respect to UTC drift -- model. - , _msgGpsLeapSecond_drift_rate_coeff :: !Int8 + , _msgUtcLeapSecond_drift_rate_coeff :: !Int8 -- ^ Reserved. Drift rate correction coefficient of GPS time scale with -- respect to UTC drift model. - , _msgGpsLeapSecond_count_before :: !Int8 + , _msgUtcLeapSecond_count_before :: !Int8 -- ^ Leap second count before insertion. - , _msgGpsLeapSecond_tow_s :: !Word16 + , _msgUtcLeapSecond_tow_s :: !Word16 -- ^ Reserved. Drift model reference week second. - , _msgGpsLeapSecond_wn :: !Word16 + , _msgUtcLeapSecond_wn :: !Word16 -- ^ Reserved. Drift model reference week number. - , _msgGpsLeapSecond_ref_wn :: !Word16 + , _msgUtcLeapSecond_ref_wn :: !Word16 -- ^ Leap second reference week number. - , _msgGpsLeapSecond_ref_dn :: !Word8 + , _msgUtcLeapSecond_ref_dn :: !Word8 -- ^ Leap second reference day number. - , _msgGpsLeapSecond_count_after :: !Int8 + , _msgUtcLeapSecond_count_after :: !Int8 -- ^ Leap second count after insertion. } deriving ( Show, Read, Eq ) -instance Binary MsgGpsLeapSecond where +instance Binary MsgUtcLeapSecond where get = do - _msgGpsLeapSecond_bias_coeff <- (fromIntegral <$> getWord16le) - _msgGpsLeapSecond_drift_coeff <- (fromIntegral <$> getWord16le) - _msgGpsLeapSecond_drift_rate_coeff <- (fromIntegral <$> getWord8) - _msgGpsLeapSecond_count_before <- (fromIntegral <$> getWord8) - _msgGpsLeapSecond_tow_s <- getWord16le - _msgGpsLeapSecond_wn <- getWord16le - _msgGpsLeapSecond_ref_wn <- getWord16le - _msgGpsLeapSecond_ref_dn <- getWord8 - _msgGpsLeapSecond_count_after <- (fromIntegral <$> getWord8) - pure MsgGpsLeapSecond {..} - - put MsgGpsLeapSecond {..} = do - (putWord16le . fromIntegral) _msgGpsLeapSecond_bias_coeff - (putWord16le . fromIntegral) _msgGpsLeapSecond_drift_coeff - (putWord8 . fromIntegral) _msgGpsLeapSecond_drift_rate_coeff - (putWord8 . fromIntegral) _msgGpsLeapSecond_count_before - putWord16le _msgGpsLeapSecond_tow_s - putWord16le _msgGpsLeapSecond_wn - putWord16le _msgGpsLeapSecond_ref_wn - putWord8 _msgGpsLeapSecond_ref_dn - (putWord8 . fromIntegral) _msgGpsLeapSecond_count_after - -$(makeSBP 'msgGpsLeapSecond ''MsgGpsLeapSecond) -$(makeJSON "_msgGpsLeapSecond_" ''MsgGpsLeapSecond) -$(makeLenses ''MsgGpsLeapSecond) - -msgItrf :: Word16 -msgItrf = 0x0244 - -data MsgItrf = MsgItrf - { _msgItrf_ssr_iod :: !Word8 + _msgUtcLeapSecond_bias_coeff <- (fromIntegral <$> getWord16le) + _msgUtcLeapSecond_drift_coeff <- (fromIntegral <$> getWord16le) + _msgUtcLeapSecond_drift_rate_coeff <- (fromIntegral <$> getWord8) + _msgUtcLeapSecond_count_before <- (fromIntegral <$> getWord8) + _msgUtcLeapSecond_tow_s <- getWord16le + _msgUtcLeapSecond_wn <- getWord16le + _msgUtcLeapSecond_ref_wn <- getWord16le + _msgUtcLeapSecond_ref_dn <- getWord8 + _msgUtcLeapSecond_count_after <- (fromIntegral <$> getWord8) + pure MsgUtcLeapSecond {..} + + put MsgUtcLeapSecond {..} = do + (putWord16le . fromIntegral) _msgUtcLeapSecond_bias_coeff + (putWord16le . fromIntegral) _msgUtcLeapSecond_drift_coeff + (putWord8 . fromIntegral) _msgUtcLeapSecond_drift_rate_coeff + (putWord8 . fromIntegral) _msgUtcLeapSecond_count_before + putWord16le _msgUtcLeapSecond_tow_s + putWord16le _msgUtcLeapSecond_wn + putWord16le _msgUtcLeapSecond_ref_wn + putWord8 _msgUtcLeapSecond_ref_dn + (putWord8 . fromIntegral) _msgUtcLeapSecond_count_after + +$(makeSBP 'msgUtcLeapSecond ''MsgUtcLeapSecond) +$(makeJSON "_msgUtcLeapSecond_" ''MsgUtcLeapSecond) +$(makeLenses ''MsgUtcLeapSecond) + +msgReferenceFrameParam :: Word16 +msgReferenceFrameParam = 0x0244 + +data MsgReferenceFrameParam = MsgReferenceFrameParam + { _msgReferenceFrameParam_ssr_iod :: !Word8 -- ^ SSR IOD parameter. - , _msgItrf_sn_counter_n :: !Word8 - -- ^ Source-Name Counter N. - , _msgItrf_sn :: !Text - -- ^ Source-Name - , _msgItrf_tn_counter_m :: !Word8 - -- ^ Target-Name Counter M. - , _msgItrf_tn :: !Text - -- ^ Target-Name - , _msgItrf_sin :: !Word8 + , _msgReferenceFrameParam_sn :: !Text + -- ^ Name of source coordinate-system using the EPSG identification code. + , _msgReferenceFrameParam_tn :: !Text + -- ^ Name of target coordinate-system using the EPSG identification code. + , _msgReferenceFrameParam_sin :: !Word8 -- ^ System Identification Number. - , _msgItrf_utn :: !Word16 + , _msgReferenceFrameParam_utn :: !Word16 -- ^ Utilized Transformation Message. - , _msgItrf_re_t0 :: !Word16 + , _msgReferenceFrameParam_re_t0 :: !Word16 -- ^ Reference Epoch t0 for transformation parameter set given as Modified -- Julian Day (MDJ) Number minus 44244 days. - , _msgItrf_delta_X0 :: !Int32 + , _msgReferenceFrameParam_delta_X0 :: !Int32 -- ^ Translation in X for Reference Epoch t0. - , _msgItrf_delta_Y0 :: !Int32 + , _msgReferenceFrameParam_delta_Y0 :: !Int32 -- ^ Translation in Y for Reference Epoch t0. - , _msgItrf_delta_Z0 :: !Int32 + , _msgReferenceFrameParam_delta_Z0 :: !Int32 -- ^ Translation in Z for Reference Epoch t0. - , _msgItrf_theta_01 :: !Int32 + , _msgReferenceFrameParam_theta_01 :: !Int32 -- ^ Rotation around the X-axis for Reference Epoch t0. - , _msgItrf_theta_02 :: !Int32 + , _msgReferenceFrameParam_theta_02 :: !Int32 -- ^ Rotation around the Y-axis for Reference Epoch t0. - , _msgItrf_theta_03 :: !Int32 + , _msgReferenceFrameParam_theta_03 :: !Int32 -- ^ Rotation around the Z-axis for Reference Epoch t0. - , _msgItrf_scale :: !Int32 + , _msgReferenceFrameParam_scale :: !Int32 -- ^ Scale correction for Reference Epoch t0. - , _msgItrf_dot_delta_X0 :: !Int32 + , _msgReferenceFrameParam_dot_delta_X0 :: !Int32 -- ^ Rate of change of translation in X. - , _msgItrf_dot_delta_Y0 :: !Int32 + , _msgReferenceFrameParam_dot_delta_Y0 :: !Int32 -- ^ Rate of change of translation in Y. - , _msgItrf_dot_delta_Z0 :: !Int32 + , _msgReferenceFrameParam_dot_delta_Z0 :: !Int32 -- ^ Rate of change of translation in Z. - , _msgItrf_dot_theta_01 :: !Int32 + , _msgReferenceFrameParam_dot_theta_01 :: !Int32 -- ^ Rate of change of rotation around the X-axis. - , _msgItrf_dot_theta_02 :: !Int32 + , _msgReferenceFrameParam_dot_theta_02 :: !Int32 -- ^ Rate of change of rotation around the Y-axis. - , _msgItrf_dot_theta_03 :: !Int32 + , _msgReferenceFrameParam_dot_theta_03 :: !Int32 -- ^ Rate of change of rotation around the Z-axis. - , _msgItrf_dot_scale :: !Int16 + , _msgReferenceFrameParam_dot_scale :: !Int16 -- ^ Rate of change of scale correction. } deriving ( Show, Read, Eq ) -instance Binary MsgItrf where +instance Binary MsgReferenceFrameParam where get = do - _msgItrf_ssr_iod <- getWord8 - _msgItrf_sn_counter_n <- getWord8 - _msgItrf_sn <- decodeUtf8 <$> getByteString 31 - _msgItrf_tn_counter_m <- getWord8 - _msgItrf_tn <- decodeUtf8 <$> getByteString 31 - _msgItrf_sin <- getWord8 - _msgItrf_utn <- getWord16le - _msgItrf_re_t0 <- getWord16le - _msgItrf_delta_X0 <- (fromIntegral <$> getWord32le) - _msgItrf_delta_Y0 <- (fromIntegral <$> getWord32le) - _msgItrf_delta_Z0 <- (fromIntegral <$> getWord32le) - _msgItrf_theta_01 <- (fromIntegral <$> getWord32le) - _msgItrf_theta_02 <- (fromIntegral <$> getWord32le) - _msgItrf_theta_03 <- (fromIntegral <$> getWord32le) - _msgItrf_scale <- (fromIntegral <$> getWord32le) - _msgItrf_dot_delta_X0 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_delta_Y0 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_delta_Z0 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_theta_01 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_theta_02 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_theta_03 <- (fromIntegral <$> getWord32le) - _msgItrf_dot_scale <- (fromIntegral <$> getWord16le) - pure MsgItrf {..} - - put MsgItrf {..} = do - putWord8 _msgItrf_ssr_iod - putWord8 _msgItrf_sn_counter_n - putByteString $ encodeUtf8 _msgItrf_sn - putWord8 _msgItrf_tn_counter_m - putByteString $ encodeUtf8 _msgItrf_tn - putWord8 _msgItrf_sin - putWord16le _msgItrf_utn - putWord16le _msgItrf_re_t0 - (putWord32le . fromIntegral) _msgItrf_delta_X0 - (putWord32le . fromIntegral) _msgItrf_delta_Y0 - (putWord32le . fromIntegral) _msgItrf_delta_Z0 - (putWord32le . fromIntegral) _msgItrf_theta_01 - (putWord32le . fromIntegral) _msgItrf_theta_02 - (putWord32le . fromIntegral) _msgItrf_theta_03 - (putWord32le . fromIntegral) _msgItrf_scale - (putWord32le . fromIntegral) _msgItrf_dot_delta_X0 - (putWord32le . fromIntegral) _msgItrf_dot_delta_Y0 - (putWord32le . fromIntegral) _msgItrf_dot_delta_Z0 - (putWord32le . fromIntegral) _msgItrf_dot_theta_01 - (putWord32le . fromIntegral) _msgItrf_dot_theta_02 - (putWord32le . fromIntegral) _msgItrf_dot_theta_03 - (putWord16le . fromIntegral) _msgItrf_dot_scale - -$(makeSBP 'msgItrf ''MsgItrf) -$(makeJSON "_msgItrf_" ''MsgItrf) -$(makeLenses ''MsgItrf) + _msgReferenceFrameParam_ssr_iod <- getWord8 + _msgReferenceFrameParam_sn <- decodeUtf8 <$> getByteString 32 + _msgReferenceFrameParam_tn <- decodeUtf8 <$> getByteString 32 + _msgReferenceFrameParam_sin <- getWord8 + _msgReferenceFrameParam_utn <- getWord16le + _msgReferenceFrameParam_re_t0 <- getWord16le + _msgReferenceFrameParam_delta_X0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_delta_Y0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_delta_Z0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_theta_01 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_theta_02 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_theta_03 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_scale <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_delta_X0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_delta_Y0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_delta_Z0 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_theta_01 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_theta_02 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_theta_03 <- (fromIntegral <$> getWord32le) + _msgReferenceFrameParam_dot_scale <- (fromIntegral <$> getWord16le) + pure MsgReferenceFrameParam {..} + + put MsgReferenceFrameParam {..} = do + putWord8 _msgReferenceFrameParam_ssr_iod + putByteString $ encodeUtf8 _msgReferenceFrameParam_sn + putByteString $ encodeUtf8 _msgReferenceFrameParam_tn + putWord8 _msgReferenceFrameParam_sin + putWord16le _msgReferenceFrameParam_utn + putWord16le _msgReferenceFrameParam_re_t0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_X0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_Y0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_delta_Z0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_01 + (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_02 + (putWord32le . fromIntegral) _msgReferenceFrameParam_theta_03 + (putWord32le . fromIntegral) _msgReferenceFrameParam_scale + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_X0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_Y0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_delta_Z0 + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_01 + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_02 + (putWord32le . fromIntegral) _msgReferenceFrameParam_dot_theta_03 + (putWord16le . fromIntegral) _msgReferenceFrameParam_dot_scale + +$(makeSBP 'msgReferenceFrameParam ''MsgReferenceFrameParam) +$(makeJSON "_msgReferenceFrameParam_" ''MsgReferenceFrameParam) +$(makeLenses ''MsgReferenceFrameParam) diff --git a/haskell/src/SwiftNav/SBP/Ssr.hs b/haskell/src/SwiftNav/SBP/Ssr.hs index c03e4360f1..6592b75e1f 100644 --- a/haskell/src/SwiftNav/SBP/Ssr.hs +++ b/haskell/src/SwiftNav/SBP/Ssr.hs @@ -662,9 +662,9 @@ data STECSatElementIntegrity = STECSatElementIntegrity , _sTECSatElementIntegrity_stec_bound_sig :: !Word8 -- ^ Error Bound StDev. See Note 1. , _sTECSatElementIntegrity_stec_bound_mu_dot :: !Word8 - -- ^ Error Bound Mean First derivative. Range: 0-0.01275 m/s + -- ^ Error Bound Mean First derivative. , _sTECSatElementIntegrity_stec_bound_sig_dot :: !Word8 - -- ^ Error Bound StDev First derivative. Range: 0-0.01275 m/s + -- ^ Error Bound StDev First derivative. } deriving ( Show, Read, Eq ) instance Binary STECSatElementIntegrity where @@ -694,27 +694,31 @@ msgSsrGriddedCorrectionBounds = 0x05FE -- Note 1: Range: 0-17.5 m. i<= 200, mean = 0.01i; 200230, mean=5+0.5(i-230). data MsgSsrGriddedCorrectionBounds = MsgSsrGriddedCorrectionBounds - { _msgSsrGriddedCorrectionBounds_header :: !BoundsHeader + { _msgSsrGriddedCorrectionBounds_header :: !BoundsHeader -- ^ Header of a bounds message. - , _msgSsrGriddedCorrectionBounds_ssr_iod_atmo :: !Word8 - -- ^ IOD of the SSR atmospheric correction. - , _msgSsrGriddedCorrectionBounds_tile_set_id :: !Word16 - -- ^ Unique identifier of the set this tile belongs to. - , _msgSsrGriddedCorrectionBounds_tile_id :: !Word16 + , _msgSsrGriddedCorrectionBounds_ssr_iod_atmo :: !Word8 + -- ^ IOD of the correction. + , _msgSsrGriddedCorrectionBounds_tile_set_id :: !Word16 + -- ^ Set this tile belongs to. + , _msgSsrGriddedCorrectionBounds_tile_id :: !Word16 -- ^ Unique identifier of this tile in the tile set. - , _msgSsrGriddedCorrectionBounds_tropo_qi :: !Word8 + , _msgSsrGriddedCorrectionBounds_tropo_qi :: !Word8 -- ^ Tropo Quality Indicator. Similar to RTCM DF389. - , _msgSsrGriddedCorrectionBounds_grid_point_id :: !Word16 + , _msgSsrGriddedCorrectionBounds_grid_point_id :: !Word16 -- ^ Index of the Grid Point. , _msgSsrGriddedCorrectionBounds_tropo_delay_correction :: !TroposphericDelayCorrection -- ^ Tropospheric delay at grid point. - , _msgSsrGriddedCorrectionBounds_tropo_bound_mu :: !Word8 - -- ^ Troposphere Error Bound Mean. Range: 0-1.275 m - , _msgSsrGriddedCorrectionBounds_tropo_bound_sig :: !Word8 - -- ^ Troposphere Error Bound StDev. Range: 0-1.275 m - , _msgSsrGriddedCorrectionBounds_n_sats :: !Word8 + , _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu :: !Word8 + -- ^ Vertical Hydrostatic Error Bound Mean. + , _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig :: !Word8 + -- ^ Vertical Hydrostatic Error Bound StDev. + , _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu :: !Word8 + -- ^ Vertical Wet Error Bound Mean. + , _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig :: !Word8 + -- ^ Vertical Wet Error Bound StDev. + , _msgSsrGriddedCorrectionBounds_n_sats :: !Word8 -- ^ Number of satellites. - , _msgSsrGriddedCorrectionBounds_stec_sat_list :: ![STECSatElementIntegrity] + , _msgSsrGriddedCorrectionBounds_stec_sat_list :: ![STECSatElementIntegrity] -- ^ Array of STEC polynomial coefficients and its bounds for each space -- vehicle. } deriving ( Show, Read, Eq ) @@ -728,8 +732,10 @@ instance Binary MsgSsrGriddedCorrectionBounds where _msgSsrGriddedCorrectionBounds_tropo_qi <- getWord8 _msgSsrGriddedCorrectionBounds_grid_point_id <- getWord16le _msgSsrGriddedCorrectionBounds_tropo_delay_correction <- get - _msgSsrGriddedCorrectionBounds_tropo_bound_mu <- getWord8 - _msgSsrGriddedCorrectionBounds_tropo_bound_sig <- getWord8 + _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu <- getWord8 + _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig <- getWord8 + _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu <- getWord8 + _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig <- getWord8 _msgSsrGriddedCorrectionBounds_n_sats <- getWord8 _msgSsrGriddedCorrectionBounds_stec_sat_list <- whileM (not <$> isEmpty) get pure MsgSsrGriddedCorrectionBounds {..} @@ -742,8 +748,10 @@ instance Binary MsgSsrGriddedCorrectionBounds where putWord8 _msgSsrGriddedCorrectionBounds_tropo_qi putWord16le _msgSsrGriddedCorrectionBounds_grid_point_id put _msgSsrGriddedCorrectionBounds_tropo_delay_correction - putWord8 _msgSsrGriddedCorrectionBounds_tropo_bound_mu - putWord8 _msgSsrGriddedCorrectionBounds_tropo_bound_sig + putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_mu + putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_hydro_bound_sig + putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_mu + putWord8 _msgSsrGriddedCorrectionBounds_tropo_v_wet_bound_sig putWord8 _msgSsrGriddedCorrectionBounds_n_sats mapM_ put _msgSsrGriddedCorrectionBounds_stec_sat_list @@ -1335,15 +1343,15 @@ data OrbitClockBound = OrbitClockBound , _orbitClockBound_orb_cross_bound_mu :: !Word8 -- ^ Mean Cross-Track. See Note 1. , _orbitClockBound_orb_radial_bound_sig :: !Word8 - -- ^ Standard Deviation Radial. See Note 1. + -- ^ Standard Deviation Radial. See Note 2. , _orbitClockBound_orb_along_bound_sig :: !Word8 - -- ^ Standard Deviation Along-Track. See Note 1. + -- ^ Standard Deviation Along-Track. See Note 2. , _orbitClockBound_orb_cross_bound_sig :: !Word8 - -- ^ Standard Deviation Cross-Track. See Note 1. + -- ^ Standard Deviation Cross-Track. See Note 2. , _orbitClockBound_clock_bound_mu :: !Word8 -- ^ Clock Bound Mean. See Note 1. , _orbitClockBound_clock_bound_sig :: !Word8 - -- ^ Clock Bound Standard Deviation. See Note 1. + -- ^ Clock Bound Standard Deviation. See Note 2. } deriving ( Show, Read, Eq ) instance Binary OrbitClockBound where @@ -1378,8 +1386,11 @@ msgSsrOrbitClockBounds = 0x05DE -- | SBP class for message MSG_SSR_ORBIT_CLOCK_BOUNDS (0x05DE). -- --- Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). +-- Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). +-- +-- Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230). data MsgSsrOrbitClockBounds = MsgSsrOrbitClockBounds { _msgSsrOrbitClockBounds_header :: !BoundsHeader -- ^ Header of a bounds message. @@ -1549,7 +1560,8 @@ data MsgSsrOrbitClockBoundsDegradation = MsgSsrOrbitClockBoundsDegradation -- ^ Constellation ID to which the SVs belong. , _msgSsrOrbitClockBoundsDegradation_sat_bitmask :: !Word64 -- ^ Satellite Bit Mask. Put 1 for each satellite where the following - -- degradation parameters are applicable, 0 otherwise. + -- degradation parameters are applicable, 0 otherwise. Encoded following + -- RTCM DF394 specification. , _msgSsrOrbitClockBoundsDegradation_orbit_clock_bounds_degradation :: !OrbitClockBoundDegradation -- ^ Orbit and Clock Bounds Degradation Parameters } deriving ( Show, Read, Eq ) diff --git a/java/src/com/swiftnav/sbp/client/MessageTable.java b/java/src/com/swiftnav/sbp/client/MessageTable.java index 336cd19b2f..e07f88149b 100644 --- a/java/src/com/swiftnav/sbp/client/MessageTable.java +++ b/java/src/com/swiftnav/sbp/client/MessageTable.java @@ -76,11 +76,9 @@ import com.swiftnav.sbp.navigation.MsgBaselineNEDDepA; import com.swiftnav.sbp.navigation.MsgDops; import com.swiftnav.sbp.navigation.MsgDopsDepA; -import com.swiftnav.sbp.navigation.MsgGPSLeapSecond; import com.swiftnav.sbp.navigation.MsgGPSTime; import com.swiftnav.sbp.navigation.MsgGPSTimeDepA; import com.swiftnav.sbp.navigation.MsgGPSTimeGnss; -import com.swiftnav.sbp.navigation.MsgItrf; import com.swiftnav.sbp.navigation.MsgPosECEF; import com.swiftnav.sbp.navigation.MsgPosECEFCov; import com.swiftnav.sbp.navigation.MsgPosECEFCovGnss; @@ -94,6 +92,8 @@ import com.swiftnav.sbp.navigation.MsgPosLLHGnss; import com.swiftnav.sbp.navigation.MsgProtectionLevel; import com.swiftnav.sbp.navigation.MsgProtectionLevelDepA; +import com.swiftnav.sbp.navigation.MsgReferenceFrameParam; +import com.swiftnav.sbp.navigation.MsgUtcLeapSecond; import com.swiftnav.sbp.navigation.MsgUtcTime; import com.swiftnav.sbp.navigation.MsgUtcTimeGnss; import com.swiftnav.sbp.navigation.MsgVelBody; @@ -422,10 +422,10 @@ static SBPMessage dispatch(SBPMessage msg) throws SBPBinaryException { return new MsgProtectionLevelDepA(msg); case MsgProtectionLevel.TYPE: return new MsgProtectionLevel(msg); - case MsgGPSLeapSecond.TYPE: - return new MsgGPSLeapSecond(msg); - case MsgItrf.TYPE: - return new MsgItrf(msg); + case MsgUtcLeapSecond.TYPE: + return new MsgUtcLeapSecond(msg); + case MsgReferenceFrameParam.TYPE: + return new MsgReferenceFrameParam(msg); case MsgNdbEvent.TYPE: return new MsgNdbEvent(msg); case MsgObs.TYPE: diff --git a/java/src/com/swiftnav/sbp/navigation/MsgItrf.java b/java/src/com/swiftnav/sbp/navigation/MsgReferenceFrameParam.java similarity index 86% rename from java/src/com/swiftnav/sbp/navigation/MsgItrf.java rename to java/src/com/swiftnav/sbp/navigation/MsgReferenceFrameParam.java index 967751a54f..52bf3143cb 100644 --- a/java/src/com/swiftnav/sbp/navigation/MsgItrf.java +++ b/java/src/com/swiftnav/sbp/navigation/MsgReferenceFrameParam.java @@ -18,22 +18,16 @@ import com.swiftnav.sbp.SBPMessage; import org.json.JSONObject; -public class MsgItrf extends SBPMessage { +public class MsgReferenceFrameParam extends SBPMessage { public static final int TYPE = 0x0244; /** SSR IOD parameter. */ public int ssr_iod; - /** Source-Name Counter N. */ - public int sn_counter_n; - - /** Source-Name */ + /** Name of source coordinate-system using the EPSG identification code. */ public String sn; - /** Target-Name Counter M. */ - public int tn_counter_m; - - /** Target-Name */ + /** Name of target coordinate-system using the EPSG identification code. */ public String tn; /** System Identification Number. */ @@ -90,15 +84,15 @@ public class MsgItrf extends SBPMessage { /** Rate of change of scale correction. */ public int dot_scale; - public MsgItrf(int sender) { + public MsgReferenceFrameParam(int sender) { super(sender, TYPE); } - public MsgItrf() { + public MsgReferenceFrameParam() { super(TYPE); } - public MsgItrf(SBPMessage msg) throws SBPBinaryException { + public MsgReferenceFrameParam(SBPMessage msg) throws SBPBinaryException { super(msg); assert msg.type == TYPE; } @@ -107,10 +101,8 @@ public MsgItrf(SBPMessage msg) throws SBPBinaryException { protected void parse(Parser parser) throws SBPBinaryException { /* Parse fields from binary */ ssr_iod = parser.getU8(); - sn_counter_n = parser.getU8(); - sn = parser.getString(31); - tn_counter_m = parser.getU8(); - tn = parser.getString(31); + sn = parser.getString(32); + tn = parser.getString(32); sin = parser.getU8(); utn = parser.getU16(); re_t0 = parser.getU16(); @@ -133,10 +125,8 @@ protected void parse(Parser parser) throws SBPBinaryException { @Override protected void build(Builder builder) { builder.putU8(ssr_iod); - builder.putU8(sn_counter_n); - builder.putString(sn, 31); - builder.putU8(tn_counter_m); - builder.putString(tn, 31); + builder.putString(sn, 32); + builder.putString(tn, 32); builder.putU8(sin); builder.putU16(utn); builder.putU16(re_t0); @@ -160,9 +150,7 @@ protected void build(Builder builder) { public JSONObject toJSON() { JSONObject obj = super.toJSON(); obj.put("ssr_iod", ssr_iod); - obj.put("sn_counter_n", sn_counter_n); obj.put("sn", sn); - obj.put("tn_counter_m", tn_counter_m); obj.put("tn", tn); obj.put("sin", sin); obj.put("utn", utn); diff --git a/java/src/com/swiftnav/sbp/navigation/MsgGPSLeapSecond.java b/java/src/com/swiftnav/sbp/navigation/MsgUtcLeapSecond.java similarity index 91% rename from java/src/com/swiftnav/sbp/navigation/MsgGPSLeapSecond.java rename to java/src/com/swiftnav/sbp/navigation/MsgUtcLeapSecond.java index fb942e107b..a108195af1 100644 --- a/java/src/com/swiftnav/sbp/navigation/MsgGPSLeapSecond.java +++ b/java/src/com/swiftnav/sbp/navigation/MsgUtcLeapSecond.java @@ -19,15 +19,15 @@ import org.json.JSONObject; /** - * SBP class for message MSG_GPS_LEAP_SECOND (0x023A). + * SBP class for message MSG_UTC_LEAP_SECOND (0x023A). * - *

You can have MSG_GPS_LEAP_SECOND inherent its fields directly from an inherited SBP object, or + *

You can have MSG_UTC_LEAP_SECOND inherent its fields directly from an inherited SBP object, or * construct it inline using a dict of its fields. * *

Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model * parameters. */ -public class MsgGPSLeapSecond extends SBPMessage { +public class MsgUtcLeapSecond extends SBPMessage { public static final int TYPE = 0x023A; /** Reserved. Bias coefficient of GPS time scale with respect to UTC drift model. */ @@ -60,15 +60,15 @@ public class MsgGPSLeapSecond extends SBPMessage { /** Leap second count after insertion. */ public int count_after; - public MsgGPSLeapSecond(int sender) { + public MsgUtcLeapSecond(int sender) { super(sender, TYPE); } - public MsgGPSLeapSecond() { + public MsgUtcLeapSecond() { super(TYPE); } - public MsgGPSLeapSecond(SBPMessage msg) throws SBPBinaryException { + public MsgUtcLeapSecond(SBPMessage msg) throws SBPBinaryException { super(msg); assert msg.type == TYPE; } diff --git a/java/src/com/swiftnav/sbp/ssr/MsgSsrGriddedCorrectionBounds.java b/java/src/com/swiftnav/sbp/ssr/MsgSsrGriddedCorrectionBounds.java index f091e2551e..904483c4bb 100644 --- a/java/src/com/swiftnav/sbp/ssr/MsgSsrGriddedCorrectionBounds.java +++ b/java/src/com/swiftnav/sbp/ssr/MsgSsrGriddedCorrectionBounds.java @@ -35,10 +35,10 @@ public class MsgSsrGriddedCorrectionBounds extends SBPMessage { /** Header of a bounds message. */ public BoundsHeader header; - /** IOD of the SSR atmospheric correction. */ + /** IOD of the correction. */ public int ssr_iod_atmo; - /** Unique identifier of the set this tile belongs to. */ + /** Set this tile belongs to. */ public int tile_set_id; /** Unique identifier of this tile in the tile set. */ @@ -53,11 +53,17 @@ public class MsgSsrGriddedCorrectionBounds extends SBPMessage { /** Tropospheric delay at grid point. */ public TroposphericDelayCorrection tropo_delay_correction; - /** Troposphere Error Bound Mean. Range: 0-1.275 m */ - public int tropo_bound_mu; + /** Vertical Hydrostatic Error Bound Mean. */ + public int tropo_v_hydro_bound_mu; - /** Troposphere Error Bound StDev. Range: 0-1.275 m */ - public int tropo_bound_sig; + /** Vertical Hydrostatic Error Bound StDev. */ + public int tropo_v_hydro_bound_sig; + + /** Vertical Wet Error Bound Mean. */ + public int tropo_v_wet_bound_mu; + + /** Vertical Wet Error Bound StDev. */ + public int tropo_v_wet_bound_sig; /** Number of satellites. */ public int n_sats; @@ -88,8 +94,10 @@ protected void parse(Parser parser) throws SBPBinaryException { tropo_qi = parser.getU8(); grid_point_id = parser.getU16(); tropo_delay_correction = new TroposphericDelayCorrection().parse(parser); - tropo_bound_mu = parser.getU8(); - tropo_bound_sig = parser.getU8(); + tropo_v_hydro_bound_mu = parser.getU8(); + tropo_v_hydro_bound_sig = parser.getU8(); + tropo_v_wet_bound_mu = parser.getU8(); + tropo_v_wet_bound_sig = parser.getU8(); n_sats = parser.getU8(); stec_sat_list = parser.getArray(STECSatElementIntegrity.class); } @@ -103,8 +111,10 @@ protected void build(Builder builder) { builder.putU8(tropo_qi); builder.putU16(grid_point_id); tropo_delay_correction.build(builder); - builder.putU8(tropo_bound_mu); - builder.putU8(tropo_bound_sig); + builder.putU8(tropo_v_hydro_bound_mu); + builder.putU8(tropo_v_hydro_bound_sig); + builder.putU8(tropo_v_wet_bound_mu); + builder.putU8(tropo_v_wet_bound_sig); builder.putU8(n_sats); builder.putArray(stec_sat_list); } @@ -119,8 +129,10 @@ public JSONObject toJSON() { obj.put("tropo_qi", tropo_qi); obj.put("grid_point_id", grid_point_id); obj.put("tropo_delay_correction", tropo_delay_correction.toJSON()); - obj.put("tropo_bound_mu", tropo_bound_mu); - obj.put("tropo_bound_sig", tropo_bound_sig); + obj.put("tropo_v_hydro_bound_mu", tropo_v_hydro_bound_mu); + obj.put("tropo_v_hydro_bound_sig", tropo_v_hydro_bound_sig); + obj.put("tropo_v_wet_bound_mu", tropo_v_wet_bound_mu); + obj.put("tropo_v_wet_bound_sig", tropo_v_wet_bound_sig); obj.put("n_sats", n_sats); obj.put("stec_sat_list", SBPStruct.toJSONArray(stec_sat_list)); return obj; diff --git a/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBounds.java b/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBounds.java index 06e1a3d9a3..e27a198dd1 100644 --- a/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBounds.java +++ b/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBounds.java @@ -26,8 +26,11 @@ *

You can have MSG_SSR_ORBIT_CLOCK_BOUNDS inherent its fields directly from an inherited SBP * object, or construct it inline using a dict of its fields. * - *

Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, - * mean=25+2(i-240). + *

Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, + * mean=5+0.5(i-230). + * + *

Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, + * std=5+0.5(i-230). */ public class MsgSsrOrbitClockBounds extends SBPMessage { public static final int TYPE = 0x05DE; diff --git a/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBoundsDegradation.java b/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBoundsDegradation.java index d6667016d2..68ec1a9a1c 100644 --- a/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBoundsDegradation.java +++ b/java/src/com/swiftnav/sbp/ssr/MsgSsrOrbitClockBoundsDegradation.java @@ -34,7 +34,7 @@ public class MsgSsrOrbitClockBoundsDegradation extends SBPMessage { /** * Satellite Bit Mask. Put 1 for each satellite where the following degradation parameters are - * applicable, 0 otherwise. + * applicable, 0 otherwise. Encoded following RTCM DF394 specification. */ public BigInteger sat_bitmask; diff --git a/java/src/com/swiftnav/sbp/ssr/OrbitClockBound.java b/java/src/com/swiftnav/sbp/ssr/OrbitClockBound.java index d9b8a8d195..09441878ca 100644 --- a/java/src/com/swiftnav/sbp/ssr/OrbitClockBound.java +++ b/java/src/com/swiftnav/sbp/ssr/OrbitClockBound.java @@ -37,19 +37,19 @@ public class OrbitClockBound extends SBPStruct { /** Mean Cross-Track. See Note 1. */ public int orb_cross_bound_mu; - /** Standard Deviation Radial. See Note 1. */ + /** Standard Deviation Radial. See Note 2. */ public int orb_radial_bound_sig; - /** Standard Deviation Along-Track. See Note 1. */ + /** Standard Deviation Along-Track. See Note 2. */ public int orb_along_bound_sig; - /** Standard Deviation Cross-Track. See Note 1. */ + /** Standard Deviation Cross-Track. See Note 2. */ public int orb_cross_bound_sig; /** Clock Bound Mean. See Note 1. */ public int clock_bound_mu; - /** Clock Bound Standard Deviation. See Note 1. */ + /** Clock Bound Standard Deviation. See Note 2. */ public int clock_bound_sig; public OrbitClockBound() {} diff --git a/java/src/com/swiftnav/sbp/ssr/STECSatElementIntegrity.java b/java/src/com/swiftnav/sbp/ssr/STECSatElementIntegrity.java index 1eb41b2eb6..d8ecbd928d 100644 --- a/java/src/com/swiftnav/sbp/ssr/STECSatElementIntegrity.java +++ b/java/src/com/swiftnav/sbp/ssr/STECSatElementIntegrity.java @@ -31,10 +31,10 @@ public class STECSatElementIntegrity extends SBPStruct { /** Error Bound StDev. See Note 1. */ public int stec_bound_sig; - /** Error Bound Mean First derivative. Range: 0-0.01275 m/s */ + /** Error Bound Mean First derivative. */ public int stec_bound_mu_dot; - /** Error Bound StDev First derivative. Range: 0-0.01275 m/s */ + /** Error Bound StDev First derivative. */ public int stec_bound_sig_dot; public STECSatElementIntegrity() {} diff --git a/java/test/auto_check_sbp_navigation_MsgItrfTest.java b/java/test/auto_check_sbp_navigation_MsgReferenceFrameParamTest.java similarity index 90% rename from java/test/auto_check_sbp_navigation_MsgItrfTest.java rename to java/test/auto_check_sbp_navigation_MsgReferenceFrameParamTest.java index 72810fc3b7..fa0f4ac4fb 100644 --- a/java/test/auto_check_sbp_navigation_MsgItrfTest.java +++ b/java/test/auto_check_sbp_navigation_MsgReferenceFrameParamTest.java @@ -10,28 +10,30 @@ */ package com.swiftnav.sbp.test; -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml by -// generate.py. Do not modify by hand! +// This file was auto-generated from +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml by generate.py. Do not +// modify by hand! import com.swiftnav.sbp.SBPMessage; -import com.swiftnav.sbp.navigation.MsgItrf; +import com.swiftnav.sbp.navigation.MsgReferenceFrameParam; import java.math.BigInteger; import org.json.JSONObject; import org.junit.Test; -public class auto_check_sbp_navigation_MsgItrfTest { +public class auto_check_sbp_navigation_MsgReferenceFrameParamTest { public static boolean debug = false; private static final double DELTA = 1e-15; @Test public void test1() throws Throwable { - if (debug) System.out.format("%n%s%n", "auto_check_sbp_navigation_MsgItrfTest.test1"); + if (debug) + System.out.format( + "%n%s%n", "auto_check_sbp_navigation_MsgReferenceFrameParamTest.test1"); byte[] payload = new byte[] { (byte) 1, - (byte) 2, (byte) 102, (byte) 111, (byte) 111, @@ -63,7 +65,7 @@ public void test1() throws Throwable { (byte) 0, (byte) 0, (byte) 0, - (byte) 3, + (byte) 0, (byte) 98, (byte) 97, (byte) 114, @@ -95,6 +97,7 @@ public void test1() throws Throwable { (byte) 0, (byte) 0, (byte) 0, + (byte) 0, (byte) 4, (byte) 5, (byte) 0, @@ -156,7 +159,7 @@ public void test1() throws Throwable { (byte) 0, }; SBPMessage sbp = new SBPMessage(0x0042, 0x0244, payload); - MsgItrf msg = new MsgItrf(sbp); + MsgReferenceFrameParam msg = new MsgReferenceFrameParam(sbp); JSONObject json = msg.toJSON(); Number value; Number expected; @@ -284,17 +287,7 @@ public void test1() throws Throwable { expected = 4L; org.junit.Assert.assertEquals(value, expected); } - org.junit.Assert.assertEquals(msg.sn, "foo"); - value = msg.sn_counter_n; - if (value instanceof BigInteger) { - org.junit.Assert.assertTrue( - "'" + msg.sn_counter_n + "' != '" + 2 + "'", - value.equals(BigInteger.valueOf(2L))); - } else { - value = value.longValue(); - expected = 2L; - org.junit.Assert.assertEquals(value, expected); - } + org.junit.Assert.assertEquals(msg.sn, "foo"); value = msg.ssr_iod; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( @@ -334,17 +327,7 @@ public void test1() throws Throwable { expected = 12L; org.junit.Assert.assertEquals(value, expected); } - org.junit.Assert.assertEquals(msg.tn, "bar"); - value = msg.tn_counter_m; - if (value instanceof BigInteger) { - org.junit.Assert.assertTrue( - "'" + msg.tn_counter_m + "' != '" + 3 + "'", - value.equals(BigInteger.valueOf(3L))); - } else { - value = value.longValue(); - expected = 3L; - org.junit.Assert.assertEquals(value, expected); - } + org.junit.Assert.assertEquals(msg.tn, "bar"); value = msg.utn; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( diff --git a/java/test/auto_check_sbp_navigation_MsgGPSLeapSecondTest.java b/java/test/auto_check_sbp_navigation_MsgUTCLeapSecondTest.java similarity index 94% rename from java/test/auto_check_sbp_navigation_MsgGPSLeapSecondTest.java rename to java/test/auto_check_sbp_navigation_MsgUTCLeapSecondTest.java index 89679f9942..766a904ffe 100644 --- a/java/test/auto_check_sbp_navigation_MsgGPSLeapSecondTest.java +++ b/java/test/auto_check_sbp_navigation_MsgUTCLeapSecondTest.java @@ -11,17 +11,17 @@ package com.swiftnav.sbp.test; // This file was auto-generated from -// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by generate.py. Do not modify +// spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by generate.py. Do not modify // by hand! import com.swiftnav.sbp.SBPMessage; -import com.swiftnav.sbp.navigation.MsgGPSLeapSecond; +import com.swiftnav.sbp.navigation.MsgUtcLeapSecond; import java.math.BigInteger; import org.json.JSONObject; import org.junit.Test; -public class auto_check_sbp_navigation_MsgGPSLeapSecondTest { +public class auto_check_sbp_navigation_MsgUTCLeapSecondTest { public static boolean debug = false; private static final double DELTA = 1e-15; @@ -29,14 +29,14 @@ public class auto_check_sbp_navigation_MsgGPSLeapSecondTest { @Test public void test1() throws Throwable { if (debug) - System.out.format("%n%s%n", "auto_check_sbp_navigation_MsgGPSLeapSecondTest.test1"); + System.out.format("%n%s%n", "auto_check_sbp_navigation_MsgUTCLeapSecondTest.test1"); byte[] payload = new byte[] { (byte) 1, (byte) 0, (byte) 2, (byte) 0, (byte) 3, (byte) 4, (byte) 5, (byte) 0, (byte) 6, (byte) 0, (byte) 7, (byte) 0, (byte) 8, (byte) 9, }; SBPMessage sbp = new SBPMessage(0x0042, 0x023A, payload); - MsgGPSLeapSecond msg = new MsgGPSLeapSecond(sbp); + MsgUtcLeapSecond msg = new MsgUtcLeapSecond(sbp); JSONObject json = msg.toJSON(); Number value; Number expected; diff --git a/java/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBoundsTest.java b/java/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBoundsTest.java index e24006418d..08ba36e5e5 100644 --- a/java/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBoundsTest.java +++ b/java/test/auto_check_sbp_ssr_MsgSsrGriddedCorrectionBoundsTest.java @@ -36,10 +36,10 @@ public void test1() throws Throwable { (byte) 180, (byte) 0, (byte) 0, (byte) 0, (byte) 3, (byte) 0, (byte) 1, (byte) 1, (byte) 10, (byte) 0, (byte) 15, (byte) 1, (byte) 0, (byte) 10, (byte) 0, (byte) 39, (byte) 232, (byte) 3, (byte) 244, (byte) 1, (byte) 100, - (byte) 200, (byte) 150, (byte) 100, (byte) 2, (byte) 5, (byte) 10, (byte) 16, - (byte) 0, (byte) 17, (byte) 18, (byte) 19, (byte) 20, (byte) 21, (byte) 6, - (byte) 10, (byte) 22, (byte) 0, (byte) 23, (byte) 24, (byte) 25, (byte) 26, - (byte) 27, + (byte) 200, (byte) 150, (byte) 100, (byte) 150, (byte) 100, (byte) 2, (byte) 5, + (byte) 10, (byte) 16, (byte) 0, (byte) 17, (byte) 18, (byte) 19, (byte) 20, + (byte) 21, (byte) 6, (byte) 10, (byte) 22, (byte) 0, (byte) 23, (byte) 24, + (byte) 25, (byte) 26, (byte) 27, }; SBPMessage sbp = new SBPMessage(0x0042, 0x05FE, payload); MsgSsrGriddedCorrectionBounds msg = new MsgSsrGriddedCorrectionBounds(sbp); @@ -322,26 +322,6 @@ public void test1() throws Throwable { expected = 1L; org.junit.Assert.assertEquals(value, expected); } - value = msg.tropo_bound_mu; - if (value instanceof BigInteger) { - org.junit.Assert.assertTrue( - "'" + msg.tropo_bound_mu + "' != '" + 150 + "'", - value.equals(BigInteger.valueOf(150L))); - } else { - value = value.longValue(); - expected = 150L; - org.junit.Assert.assertEquals(value, expected); - } - value = msg.tropo_bound_sig; - if (value instanceof BigInteger) { - org.junit.Assert.assertTrue( - "'" + msg.tropo_bound_sig + "' != '" + 100 + "'", - value.equals(BigInteger.valueOf(100L))); - } else { - value = value.longValue(); - expected = 100L; - org.junit.Assert.assertEquals(value, expected); - } value = msg.tropo_delay_correction.hydro; if (value instanceof BigInteger) { org.junit.Assert.assertTrue( @@ -382,5 +362,45 @@ public void test1() throws Throwable { expected = 39L; org.junit.Assert.assertEquals(value, expected); } + value = msg.tropo_v_hydro_bound_mu; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tropo_v_hydro_bound_mu + "' != '" + 150 + "'", + value.equals(BigInteger.valueOf(150L))); + } else { + value = value.longValue(); + expected = 150L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.tropo_v_hydro_bound_sig; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tropo_v_hydro_bound_sig + "' != '" + 100 + "'", + value.equals(BigInteger.valueOf(100L))); + } else { + value = value.longValue(); + expected = 100L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.tropo_v_wet_bound_mu; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tropo_v_wet_bound_mu + "' != '" + 150 + "'", + value.equals(BigInteger.valueOf(150L))); + } else { + value = value.longValue(); + expected = 150L; + org.junit.Assert.assertEquals(value, expected); + } + value = msg.tropo_v_wet_bound_sig; + if (value instanceof BigInteger) { + org.junit.Assert.assertTrue( + "'" + msg.tropo_v_wet_bound_sig + "' != '" + 100 + "'", + value.equals(BigInteger.valueOf(100L))); + } else { + value = value.longValue(); + expected = 100L; + org.junit.Assert.assertEquals(value, expected); + } } } diff --git a/javascript/sbp.bundle.js b/javascript/sbp.bundle.js index b9cf4f5cbc..c86f1c6b62 100644 --- a/javascript/sbp.bundle.js +++ b/javascript/sbp.bundle.js @@ -1,15 +1,15 @@ -!function(e){var t={};function p(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,p),o.l=!0,o.exports}p.m=e,p.c=t,p.d=function(e,t,r){p.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},p.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},p.t=function(e,t){if(1&t&&(e=p(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(p.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)p.d(r,o,function(t){return e[t]}.bind(null,o));return r},p.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return p.d(t,"a",t),t},p.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},p.p="",p(p.s=24)}([function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="GnssSignal",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="GnssSignal",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sat").uint8("code"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sat","writeUInt8",1]),i.prototype.fieldSpec.push(["code","writeUInt8",1]);var s=function(e,t){return r.call(this,e),this.messageType="SvId",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="SvId",s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("satId").uint8("constellation"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["satId","writeUInt8",1]),s.prototype.fieldSpec.push(["constellation","writeUInt8",1]);var n=function(e,t){return r.call(this,e),this.messageType="GnssSignalDep",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="GnssSignalDep",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("sat").uint8("code").uint8("reserved"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sat","writeUInt16LE",2]),n.prototype.fieldSpec.push(["code","writeUInt8",1]),n.prototype.fieldSpec.push(["reserved","writeUInt8",1]);var a=function(e,t){return r.call(this,e),this.messageType="GPSTimeDep",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GPSTimeDep",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);var l=function(e,t){return r.call(this,e),this.messageType="GPSTimeSec",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="GPSTimeSec",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("wn"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);var c=function(e,t){return r.call(this,e),this.messageType="GPSTime",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="GPSTime",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").int32("ns_residual").uint16("wn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),c.prototype.fieldSpec.push(["wn","writeUInt16LE",2]);var u=function(e,t){return r.call(this,e),this.messageType="CarrierPhase",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="CarrierPhase",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["i","writeInt32LE",4]),u.prototype.fieldSpec.push(["f","writeUInt8",1]),e.exports={GnssSignal:i,SvId:s,GnssSignalDep:n,GPSTimeDep:a,GPSTimeSec:l,GPSTime:c,CarrierPhase:u}},function(e,t,p){t.UINT32=p(44),t.UINT64=p(45)},function(e,t,p){(function(t){var r=p(43),o=(p(3),p(1).UINT64),i=function(e,p,r,o){var i=new t(e);return i[p](r,o||0),i};function s(e){return this.messageType="raw",this.sbp=e||{},this.fields={},this}o.prototype.toJSON=function(){return this.toString()},s.prototype.fieldSpec=[],s.prototype.payloadToBuffer=function(e,p){var i=[];for(var s in e=e||this.fieldSpec,p=p||this.fields,e){var n=e[s],a=n[0],l=n[1],c=function(e){return"function"==typeof e?e.apply(this):e}.bind(this);if("string"==typeof l&&0===l.indexOf("write")){var u=c(n[2]);if("writeUInt64LE"===l){r(p[a]instanceof o,"uint64 type must be represented by cuint.UINT64");var y=p[a].clone().shiftRight(32).and(new o(4294967295,0)).toNumber(),h=p[a].clone().and(new o(4294967295,0)).toNumber();let e=new t(8);e.writeUInt32LE(h),e.writeUInt32LE(y,4),i.push(e)}else{let e=new t(u);e[l](p[a],0),i.push(e)}}else if("string"===l){let e=new t(p[a].length);e.write(p[a],0,"utf8"),i.push(e)}else if("array"===l){var f=n[2];for(var d in p[a]){var _=p[a][d];if(Array.isArray(f))i=i.concat(this.payloadToBuffer(f,_));else{let e=new t(c(n[3]));e[f](_,0),i.push(e)}}}else i=i.concat(this.payloadToBuffer(l,p[a]))}return t.concat(i)},s.prototype.getLengthBuffer=function(){return i(1,"writeUInt8",this.length||this.sbp.length,0)},s.prototype.getSenderBuffer=function(){return i(2,"writeUInt16LE",this.sender||this.sbp.sender,0)},s.prototype.getPreambleBuffer=function(){return i(1,"writeUInt8",this.preamble||this.sbp.preamble,0)},s.prototype.getMsgTypeBuffer=function(){return i(2,"writeUInt16LE",this.msg_type||this.sbp.msg_type,0)},s.prototype.toBuffer=function(){var e=this.payloadToBuffer(),p=i(2,"writeUInt16LE",this.crc||this.sbp.crc,0),r=[this.getPreambleBuffer(),this.getMsgTypeBuffer(),this.getSenderBuffer(),this.getLengthBuffer()];return t.concat(r.concat(e).concat(p))},s.prototype.toJSON=function(){var e={};return Object.keys(this.sbp).forEach(function(p){this.sbp[p]instanceof t?e[p]=this.sbp[p].toString("base64"):e[p]=this.sbp[p]}.bind(this)),Object.keys(this.fields).forEach(function(t){e[t]=this.fields[t]}.bind(this)),e},s.prototype.toBase64=function(){return this.toBuffer().toString("base64")},e.exports=s}).call(this,p(8).Buffer)},function(e,t,p){(function(t){for(var p=4294967296,r=[],o=0;o<256;o++)r[o]=(o>15?"":"0")+o.toString(16);var i=e.exports=function(e,p){e instanceof t?(this.buffer=e,this.offset=p||0):"[object Uint8Array]"==Object.prototype.toString.call(e)?(this.buffer=new t(e),this.offset=p||0):(this.buffer=this.buffer||new t(8),this.offset=0,this.setValue.apply(this,arguments))};i.MAX_INT=Math.pow(2,53),i.MIN_INT=-Math.pow(2,53),i.prototype={constructor:i,_2scomp:function(){for(var e=this.buffer,t=this.offset,p=1,r=t+7;r>=t;r--){var o=(255^e[r])+p;e[r]=255&o,p=o>>8}},setValue:function(e,t){var r=!1;if(1==arguments.length)if("number"==typeof e){if(r=e<0,t=(e=Math.abs(e))%p,(e/=p)>p)throw new RangeError(e+" is outside Int64 range");e|=0}else{if("string"!=typeof e)throw new Error(e+" must be a Number or String");t=(e=(e+"").replace(/^0x/,"")).substr(-8),e=e.length>8?e.substr(0,e.length-8):"",e=parseInt(e,16),t=parseInt(t,16)}for(var o=this.buffer,i=this.offset,s=7;s>=0;s--)o[i+s]=255&t,t=4==s?e:t>>>8;r&&this._2scomp()},toNumber:function(e){for(var t=this.buffer,p=this.offset,r=128&t[p],o=0,s=1,n=7,a=1;n>=0;n--,a*=256){var l=t[p+n];r&&(s=(l=(255^l)+s)>>8,l&=255),o+=l*a}return!e&&o>=i.MAX_INT?r?-1/0:1/0:r?-o:o},valueOf:function(){return this.toNumber(!1)},toString:function(e){return this.valueOf().toString(e||10)},toOctetString:function(e){for(var t=new Array(8),p=this.buffer,o=this.offset,i=0;i<8;i++)t[i]=r[p[o+i]];return t.join(e||"")},toBuffer:function(e){if(e&&0===this.offset)return this.buffer;var p=new t(8);return this.buffer.copy(p,0,this.offset,this.offset+8),p},copy:function(e,t){this.buffer.copy(e,t||0,this.offset,this.offset+8)},compare:function(e){if((128&this.buffer[this.offset])!=(128&e.buffer[e.offset]))return e.buffer[e.offset]-this.buffer[this.offset];for(var t=0;t<8;t++)if(this.buffer[this.offset+t]!==e.buffer[e.offset+t])return this.buffer[this.offset+t]-e.buffer[e.offset+t];return 0},equals:function(e){return 0===this.compare(e)},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}}).call(this,p(8).Buffer)},function(e,t,p){(function(t){var r=p(17).Parser;r.prototype.uint64=function(e,t){return this.setNextParser("uint64",e,Object.assign({},t,{formatter:function(e){var t=p(1).UINT64,r=buffer.readUInt32LE(offset);offset+=4;var o=buffer.readUInt32LE(offset);return offset+=4,new t(r,o)}}))},r.prototype.compile=function(){var e=this.getCode();this.compiled=function(r,o,i){return"undefined"!=typeof window&&void 0===window.Buffer&&(window.Buffer=t),new Function("buffer","callback","constructorFn","require",e).call(this,r,o,i,(function(e){if("cuint"===e)return p(1);throw new Error("Unknown module required: "+e)}))}},e.exports=r}).call(this,p(8).Buffer)},function(e,t){var p;p=function(){return this}();try{p=p||new Function("return this")()}catch(e){"object"==typeof window&&(p=window)}e.exports=p},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}},function(e,t,p){"use strict";var r=p(11),o=Object.keys||function(e){var t=[];for(var p in e)t.push(p);return t};e.exports=u;var i=p(10);i.inherits=p(6);var s=p(19),n=p(15);i.inherits(u,s);for(var a=o(n.prototype),l=0;l15?"":"0")+o.toString(16);var i=e.exports=function(e,p){e instanceof t?(this.buffer=e,this.offset=p||0):"[object Uint8Array]"==Object.prototype.toString.call(e)?(this.buffer=new t(e),this.offset=p||0):(this.buffer=this.buffer||new t(8),this.offset=0,this.setValue.apply(this,arguments))};i.MAX_INT=Math.pow(2,53),i.MIN_INT=-Math.pow(2,53),i.prototype={constructor:i,_2scomp:function(){for(var e=this.buffer,t=this.offset,p=1,r=t+7;r>=t;r--){var o=(255^e[r])+p;e[r]=255&o,p=o>>8}},setValue:function(e,t){var r=!1;if(1==arguments.length)if("number"==typeof e){if(r=e<0,t=(e=Math.abs(e))%p,(e/=p)>p)throw new RangeError(e+" is outside Int64 range");e|=0}else{if("string"!=typeof e)throw new Error(e+" must be a Number or String");t=(e=(e+"").replace(/^0x/,"")).substr(-8),e=e.length>8?e.substr(0,e.length-8):"",e=parseInt(e,16),t=parseInt(t,16)}for(var o=this.buffer,i=this.offset,s=7;s>=0;s--)o[i+s]=255&t,t=4==s?e:t>>>8;r&&this._2scomp()},toNumber:function(e){for(var t=this.buffer,p=this.offset,r=128&t[p],o=0,s=1,n=7,a=1;n>=0;n--,a*=256){var l=t[p+n];r&&(s=(l=(255^l)+s)>>8,l&=255),o+=l*a}return!e&&o>=i.MAX_INT?r?-1/0:1/0:r?-o:o},valueOf:function(){return this.toNumber(!1)},toString:function(e){return this.valueOf().toString(e||10)},toOctetString:function(e){for(var t=new Array(8),p=this.buffer,o=this.offset,i=0;i<8;i++)t[i]=r[p[o+i]];return t.join(e||"")},toBuffer:function(e){if(e&&0===this.offset)return this.buffer;var p=new t(8);return this.buffer.copy(p,0,this.offset,this.offset+8),p},copy:function(e,t){this.buffer.copy(e,t||0,this.offset,this.offset+8)},compare:function(e){if((128&this.buffer[this.offset])!=(128&e.buffer[e.offset]))return e.buffer[e.offset]-this.buffer[this.offset];for(var t=0;t<8;t++)if(this.buffer[this.offset+t]!==e.buffer[e.offset+t])return this.buffer[this.offset+t]-e.buffer[e.offset+t];return 0},equals:function(e){return 0===this.compare(e)},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}}).call(this,p(8).Buffer)},function(e,t,p){(function(t){var r=p(17).Parser;r.prototype.uint64=function(e,t){return this.setNextParser("uint64",e,Object.assign({},t,{formatter:function(e){var t=p(1).UINT64,r=buffer.readUInt32LE(offset);offset+=4;var o=buffer.readUInt32LE(offset);return offset+=4,new t(r,o)}}))},r.prototype.compile=function(){var e=this.getCode();this.compiled=function(r,o,i){return"undefined"!=typeof window&&void 0===window.Buffer&&(window.Buffer=t),new Function("buffer","callback","constructorFn","require",e).call(this,r,o,i,(function(e){if("cuint"===e)return p(1);throw new Error("Unknown module required: "+e)}))}},e.exports=r}).call(this,p(8).Buffer)},function(e,t){var p;p=function(){return this}();try{p=p||new Function("return this")()}catch(e){"object"==typeof window&&(p=window)}e.exports=p},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var p=function(){};p.prototype=t.prototype,e.prototype=new p,e.prototype.constructor=e}},function(e,t,p){"use strict";var r=p(11),o=Object.keys||function(e){var t=[];for(var p in e)t.push(p);return t};e.exports=u;var i=p(10);i.inherits=p(6);var s=p(19),n=p(15);i.inherits(u,s);for(var a=o(n.prototype),l=0;l * @license MIT */ -var r=p(25),o=p(26),i=p(16);function s(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function n(e,t){if(s()=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function f(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var p=e.length;if(0===p)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return p;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*p;case"hex":return p>>>1;case"base64":return B(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function d(e,t,p){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===p||p>this.length)&&(p=this.length),p<=0)return"";if((p>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,p);case"utf8":case"utf-8":return T(this,t,p);case"ascii":return U(this,t,p);case"latin1":case"binary":return M(this,t,p);case"base64":return L(this,t,p);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,p);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,p){var r=e[t];e[t]=e[p],e[p]=r}function S(e,t,p,r,o){if(0===e.length)return-1;if("string"==typeof p?(r=p,p=0):p>2147483647?p=2147483647:p<-2147483648&&(p=-2147483648),p=+p,isNaN(p)&&(p=o?0:e.length-1),p<0&&(p=e.length+p),p>=e.length){if(o)return-1;p=e.length-1}else if(p<0){if(!o)return-1;p=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:g(e,t,p,r,o);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,p):Uint8Array.prototype.lastIndexOf.call(e,t,p):g(e,[t],p,r,o);throw new TypeError("val must be string, number or Buffer")}function g(e,t,p,r,o){var i,s=1,n=e.length,a=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,n/=2,a/=2,p/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var c=-1;for(i=p;in&&(p=n-a),i=p;i>=0;i--){for(var u=!0,y=0;yo&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var s=0;s>8,o=p%256,i.push(o),i.push(r);return i}(t,e.length-p),e,p,r)}function L(e,t,p){return 0===t&&p===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,p))}function T(e,t,p){p=Math.min(e.length,p);for(var r=[],o=t;o239?4:l>223?3:l>191?2:1;if(o+u<=p)switch(u){case 1:l<128&&(c=l);break;case 2:128==(192&(i=e[o+1]))&&(a=(31&l)<<6|63&i)>127&&(c=a);break;case 3:i=e[o+1],s=e[o+2],128==(192&i)&&128==(192&s)&&(a=(15&l)<<12|(63&i)<<6|63&s)>2047&&(a<55296||a>57343)&&(c=a);break;case 4:i=e[o+1],s=e[o+2],n=e[o+3],128==(192&i)&&128==(192&s)&&128==(192&n)&&(a=(15&l)<<18|(63&i)<<12|(63&s)<<6|63&n)>65535&&a<1114112&&(c=a)}null===c?(c=65533,u=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),o+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var p="",r=0;for(;r0&&(e=this.toString("hex",0,p).match(/.{2}/g).join(" "),this.length>p&&(e+=" ... ")),""},a.prototype.compare=function(e,t,p,r,o){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===p&&(p=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||p>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=p)return 0;if(r>=o)return-1;if(t>=p)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),s=(p>>>=0)-(t>>>=0),n=Math.min(i,s),l=this.slice(r,o),c=e.slice(t,p),u=0;uo)&&(p=o),e.length>0&&(p<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return w(this,e,t,p);case"utf8":case"utf-8":return E(this,e,t,p);case"ascii":return m(this,e,t,p);case"latin1":case"binary":return b(this,e,t,p);case"base64":return I(this,e,t,p);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v(this,e,t,p);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function U(e,t,p){var r="";p=Math.min(e.length,p);for(var o=t;or)&&(p=r);for(var o="",i=t;ip)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,p,r,o,i){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function C(e,t,p,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-p,2);o>>8*(r?o:1-o)}function R(e,t,p,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-p,4);o>>8*(r?o:3-o)&255}function P(e,t,p,r,o,i){if(p+r>e.length)throw new RangeError("Index out of range");if(p<0)throw new RangeError("Index out of range")}function N(e,t,p,r,i){return i||P(e,0,p,4),o.write(e,t,p,r,23,4),p+4}function j(e,t,p,r,i){return i||P(e,0,p,8),o.write(e,t,p,r,52,8),p+8}a.prototype.slice=function(e,t){var p,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},a.prototype.readUInt8=function(e,t){return t||G(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||G(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||G(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||G(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,p){e|=0,t|=0,p||G(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,p){e|=0,t|=0,p||G(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},a.prototype.readInt8=function(e,t){return t||G(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||G(e,2,this.length);var p=this[e]|this[e+1]<<8;return 32768&p?4294901760|p:p},a.prototype.readInt16BE=function(e,t){t||G(e,2,this.length);var p=this[e+1]|this[e]<<8;return 32768&p?4294901760|p:p},a.prototype.readInt32LE=function(e,t){return t||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||G(e,4,this.length),o.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||G(e,4,this.length),o.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||G(e,8,this.length),o.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||G(e,8,this.length),o.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,p,r){(e=+e,t|=0,p|=0,r)||A(this,e,t,p,Math.pow(2,8*p)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+p},a.prototype.writeUInt8=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,p,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*p-1);A(this,e,t,p,o-1,-o)}var i=0,s=1,n=0;for(this[t]=255&e;++i>0)-n&255;return t+p},a.prototype.writeIntBE=function(e,t,p,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*p-1);A(this,e,t,p,o-1,-o)}var i=p-1,s=1,n=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===n&&0!==this[t+i+1]&&(n=1),this[t+i]=(e/s>>0)-n&255;return t+p},a.prototype.writeInt8=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,p){return N(this,e,t,!0,p)},a.prototype.writeFloatBE=function(e,t,p){return N(this,e,t,!1,p)},a.prototype.writeDoubleLE=function(e,t,p){return j(this,e,t,!0,p)},a.prototype.writeDoubleBE=function(e,t,p){return j(this,e,t,!1,p)},a.prototype.copy=function(e,t,p,r){if(p||(p=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+p];else if(i<1e3||!a.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,p=void 0===p?this.length:p>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&p<57344){if(!o){if(p>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=p;continue}if(p<56320){(t-=3)>-1&&i.push(239,191,189),o=p;continue}p=65536+(o-55296<<10|p-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,p<128){if((t-=1)<0)break;i.push(p)}else if(p<2048){if((t-=2)<0)break;i.push(p>>6|192,63&p|128)}else if(p<65536){if((t-=3)<0)break;i.push(p>>12|224,p>>6&63|128,63&p|128)}else{if(!(p<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(p>>18|240,p>>12&63|128,p>>6&63|128,63&p|128)}}return i}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(x,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,p,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+p]=e[o];return o}}).call(this,p(5))},function(e,t){var p,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function n(e){if(p===setTimeout)return setTimeout(e,0);if((p===i||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}!function(){try{p="function"==typeof setTimeout?setTimeout:i}catch(e){p=i}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var a,l=[],c=!1,u=-1;function y(){c&&a&&(c=!1,a.length?l=a.concat(l):u=-1,l.length&&h())}function h(){if(!c){var e=n(y);c=!0;for(var t=l.length;t;){for(a=l,l=[];++u1)for(var p=1;p0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},p.prototype.on=p.prototype.addListener,p.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var p=!1;function o(){this.removeListener(e,o),p||(p=!0,t.apply(this,arguments))}return o.listener=t,this.on(e,o),this},p.prototype.removeListener=function(e,t){var p,i,s,n;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(p=this._events[e]).length,i=-1,p===t||r(p.listener)&&p.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(p)){for(n=s;n-- >0;)if(p[n]===t||p[n].listener&&p[n].listener===t){i=n;break}if(i<0)return this;1===p.length?(p.length=0,delete this._events[e]):p.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},p.prototype.removeAllListeners=function(e){var t,p;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(p=this._events[e]))this.removeListener(e,p);else if(p)for(;p.length;)this.removeListener(e,p[p.length-1]);return delete this._events[e],this},p.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},p.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},p.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,p){(t=e.exports=p(19)).Stream=t,t.Readable=t,t.Writable=p(15),t.Duplex=p(7),t.Transform=p(23),t.PassThrough=p(38)},function(e,t,p){"use strict";(function(t,r,o){var i=p(11);function s(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,p){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(p),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=g;var n,a=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;g.WritableState=S;var l=p(10);l.inherits=p(6);var c={deprecate:p(37)},u=p(20),y=p(12).Buffer,h=o.Uint8Array||function(){};var f,d=p(21);function _(){}function S(e,t){n=n||p(7),e=e||{};var r=t instanceof n;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,l=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(l||0===l)?l:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var u=!1===e.decodeStrings;this.decodeStrings=!u,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var p=e._writableState,r=p.sync,o=p.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(p),t)!function(e,t,p,r,o){--t.pendingcb,p?(i.nextTick(o,r),i.nextTick(v,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),v(e,t))}(e,p,r,t,o);else{var s=b(p);s||p.corked||p.bufferProcessing||!p.bufferedRequest||m(e,p),r?a(E,e,p,s,o):E(e,p,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function g(e){if(n=n||p(7),!(f.call(g,this)||this instanceof n))return new g(e);this._writableState=new S(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function w(e,t,p,r,o,i,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,p?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function E(e,t,p,r){p||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),v(e,t)}function m(e,t){t.bufferProcessing=!0;var p=t.bufferedRequest;if(e._writev&&p&&p.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=p;for(var n=0,a=!0;p;)o[n]=p,p.isBuf||(a=!1),p=p.next,n+=1;o.allBuffers=a,w(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new s(t),t.bufferedRequestCount=0}else{for(;p;){var l=p.chunk,c=p.encoding,u=p.callback;if(w(e,t,!1,t.objectMode?1:l.length,l,c,u),p=p.next,t.bufferedRequestCount--,t.writing)break}null===p&&(t.lastBufferedRequest=null)}t.bufferedRequest=p,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function I(e,t){e._final((function(p){t.pendingcb--,p&&e.emit("error",p),t.prefinished=!0,e.emit("prefinish"),v(e,t)}))}function v(e,t){var p=b(t);return p&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(I,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),p}l.inherits(g,u),S.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(S.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(g,Symbol.hasInstance,{value:function(e){return!!f.call(this,e)||this===g&&(e&&e._writableState instanceof S)}})):f=function(e){return e instanceof this},g.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},g.prototype.write=function(e,t,p){var r,o=this._writableState,s=!1,n=!o.objectMode&&(r=e,y.isBuffer(r)||r instanceof h);return n&&!y.isBuffer(e)&&(e=function(e){return y.from(e)}(e)),"function"==typeof t&&(p=t,t=null),n?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof p&&(p=_),o.ended?function(e,t){var p=new Error("write after end");e.emit("error",p),i.nextTick(t,p)}(this,p):(n||function(e,t,p,r){var o=!0,s=!1;return null===p?s=new TypeError("May not write null values to stream"):"string"==typeof p||void 0===p||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),o=!1),o}(this,o,e,p))&&(o.pendingcb++,s=function(e,t,p,r,o,i){if(!p){var s=function(e,t,p){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=y.from(t,p));return t}(t,r,o);r!==s&&(p=!0,o="buffer",r=s)}var n=t.objectMode?1:r.length;t.length+=n;var a=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(g.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),g.prototype._write=function(e,t,p){p(new Error("_write() is not implemented"))},g.prototype._writev=null,g.prototype.end=function(e,t,p){var r=this._writableState;"function"==typeof e?(p=e,e=null,t=null):"function"==typeof t&&(p=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,p){t.ending=!0,v(e,t),p&&(t.finished?i.nextTick(p):e.once("finish",p));t.ended=!0,e.writable=!1}(this,r,p)},Object.defineProperty(g.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),g.prototype.destroy=d.destroy,g.prototype._undestroy=d.undestroy,g.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,p(9),p(35).setImmediate,p(5))},function(e,t){var p={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==p.call(e)}},function(e,t,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var r=p(28),o={},i={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},s={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},n={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1},a=function(){function e(){this.varName="",this.type="",this.options={},this.next=null,this.head=null,this.compiled=null,this.endian="be",this.constructorFn=null,this.alias=null}return e.start=function(){return new e},e.prototype.primitiveGenerateN=function(e,t){var p=s[e],r=n[e];t.pushCode(t.generateVariable(this.varName)+" = dataView.get"+p+"(offset, "+r+");"),t.pushCode("offset += "+i[e]+";")},e.prototype.primitiveN=function(e,t,p){return this.setNextParser(e,t,p)},e.prototype.useThisEndian=function(e){return e+this.endian.toLowerCase()},e.prototype.uint8=function(e,t){return this.primitiveN("uint8",e,t)},e.prototype.uint16=function(e,t){return this.primitiveN(this.useThisEndian("uint16"),e,t)},e.prototype.uint16le=function(e,t){return this.primitiveN("uint16le",e,t)},e.prototype.uint16be=function(e,t){return this.primitiveN("uint16be",e,t)},e.prototype.uint32=function(e,t){return this.primitiveN(this.useThisEndian("uint32"),e,t)},e.prototype.uint32le=function(e,t){return this.primitiveN("uint32le",e,t)},e.prototype.uint32be=function(e,t){return this.primitiveN("uint32be",e,t)},e.prototype.int8=function(e,t){return this.primitiveN("int8",e,t)},e.prototype.int16=function(e,t){return this.primitiveN(this.useThisEndian("int16"),e,t)},e.prototype.int16le=function(e,t){return this.primitiveN("int16le",e,t)},e.prototype.int16be=function(e,t){return this.primitiveN("int16be",e,t)},e.prototype.int32=function(e,t){return this.primitiveN(this.useThisEndian("int32"),e,t)},e.prototype.int32le=function(e,t){return this.primitiveN("int32le",e,t)},e.prototype.int32be=function(e,t){return this.primitiveN("int32be",e,t)},e.prototype.bigIntVersionCheck=function(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported in this runtime")},e.prototype.int64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,t)},e.prototype.int64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,t)},e.prototype.int64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,t)},e.prototype.uint64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,t)},e.prototype.uint64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,t)},e.prototype.uint64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,t)},e.prototype.floatle=function(e,t){return this.primitiveN("floatle",e,t)},e.prototype.floatbe=function(e,t){return this.primitiveN("floatbe",e,t)},e.prototype.doublele=function(e,t){return this.primitiveN("doublele",e,t)},e.prototype.doublebe=function(e,t){return this.primitiveN("doublebe",e,t)},e.prototype.bitN=function(e,t,p){return p||(p={}),p.length=e,this.setNextParser("bit",t,p)},e.prototype.bit1=function(e,t){return this.bitN(1,e,t)},e.prototype.bit2=function(e,t){return this.bitN(2,e,t)},e.prototype.bit3=function(e,t){return this.bitN(3,e,t)},e.prototype.bit4=function(e,t){return this.bitN(4,e,t)},e.prototype.bit5=function(e,t){return this.bitN(5,e,t)},e.prototype.bit6=function(e,t){return this.bitN(6,e,t)},e.prototype.bit7=function(e,t){return this.bitN(7,e,t)},e.prototype.bit8=function(e,t){return this.bitN(8,e,t)},e.prototype.bit9=function(e,t){return this.bitN(9,e,t)},e.prototype.bit10=function(e,t){return this.bitN(10,e,t)},e.prototype.bit11=function(e,t){return this.bitN(11,e,t)},e.prototype.bit12=function(e,t){return this.bitN(12,e,t)},e.prototype.bit13=function(e,t){return this.bitN(13,e,t)},e.prototype.bit14=function(e,t){return this.bitN(14,e,t)},e.prototype.bit15=function(e,t){return this.bitN(15,e,t)},e.prototype.bit16=function(e,t){return this.bitN(16,e,t)},e.prototype.bit17=function(e,t){return this.bitN(17,e,t)},e.prototype.bit18=function(e,t){return this.bitN(18,e,t)},e.prototype.bit19=function(e,t){return this.bitN(19,e,t)},e.prototype.bit20=function(e,t){return this.bitN(20,e,t)},e.prototype.bit21=function(e,t){return this.bitN(21,e,t)},e.prototype.bit22=function(e,t){return this.bitN(22,e,t)},e.prototype.bit23=function(e,t){return this.bitN(23,e,t)},e.prototype.bit24=function(e,t){return this.bitN(24,e,t)},e.prototype.bit25=function(e,t){return this.bitN(25,e,t)},e.prototype.bit26=function(e,t){return this.bitN(26,e,t)},e.prototype.bit27=function(e,t){return this.bitN(27,e,t)},e.prototype.bit28=function(e,t){return this.bitN(28,e,t)},e.prototype.bit29=function(e,t){return this.bitN(29,e,t)},e.prototype.bit30=function(e,t){return this.bitN(30,e,t)},e.prototype.bit31=function(e,t){return this.bitN(31,e,t)},e.prototype.bit32=function(e,t){return this.bitN(32,e,t)},e.prototype.namely=function(e){return o[e]=this,this.alias=e,this},e.prototype.skip=function(e,t){return this.seek(e,t)},e.prototype.seek=function(e,t){if(t&&t.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})},e.prototype.string=function(e,t){if(!t.zeroTerminated&&!t.length&&!t.greedy)throw new Error("Neither length, zeroTerminated, nor greedy is defined for string.");if((t.zeroTerminated||t.length)&&t.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(t.stripNull&&!t.length&&!t.greedy)throw new Error("Length or greedy must be defined if stripNull is defined.");return t.encoding=t.encoding||"utf8",this.setNextParser("string",e,t)},e.prototype.buffer=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");return this.setNextParser("buffer",e,t)},e.prototype.array=function(e,t){if(!t.readUntil&&!t.length&&!t.lengthInBytes)throw new Error("Length option of array is not defined.");if(!t.type)throw new Error("Type option of array is not defined.");if("string"==typeof t.type&&!o[t.type]&&Object.keys(i).indexOf(t.type)<0)throw new Error('Specified primitive type "'+t.type+'" is not supported.');return this.setNextParser("array",e,t)},e.prototype.choice=function(e,t){if("object"!=typeof t&&"object"==typeof e&&(t=e,e=null),!t.tag)throw new Error("Tag option of array is not defined.");if(!t.choices)throw new Error("Choices option of array is not defined.");return Object.keys(t.choices).forEach((function(p){var r=parseInt(p,10),s=t.choices[r];if(isNaN(r))throw new Error("Key of choices must be a number.");if(!s)throw new Error("Choice Case "+p+" of "+e+" is not valid.");if("string"==typeof s&&!o[s]&&Object.keys(i).indexOf(s)<0)throw new Error('Specified primitive type "'+s+'" is not supported.')})),this.setNextParser("choice",e,t)},e.prototype.nest=function(t,p){if("object"!=typeof p&&"object"==typeof t&&(p=t,t=null),!p.type)throw new Error("Type option of nest is not defined.");if(!(p.type instanceof e||o[p.type]))throw new Error("Type option of nest must be a Parser object.");if(!(p.type instanceof e||t))throw new Error("options.type must be a object if variable name is omitted.");return this.setNextParser("nest",t,p)},e.prototype.pointer=function(t,p){if(!p.offset)throw new Error("Offset option of pointer is not defined.");if(!p.type)throw new Error("Type option of pointer is not defined.");if("string"==typeof p.type){if(Object.keys(i).indexOf(p.type)<0&&!o[p.type])throw new Error('Specified type "'+p.type+'" is not supported.')}else if(!(p.type instanceof e))throw new Error("Type option of pointer must be a string or a Parser object.");return this.setNextParser("pointer",t,p)},e.prototype.saveOffset=function(e,t){return this.setNextParser("saveOffset",e,t)},e.prototype.endianess=function(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error("Invalid endianess: "+e)}return this},e.prototype.create=function(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this},e.prototype.getContext=function(e){var t=new r.Context(e);return t.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(t),t.pushCode("return ___parser_"+this.alias+"(0).result;")):this.addRawCode(t),t},e.prototype.getCode=function(){return this.getContext().code},e.prototype.addRawCode=function(e){e.pushCode("var offset = 0;"),this.constructorFn?e.pushCode("var vars = new constructorFn();"):e.pushCode("var vars = {};"),this.generate(e),this.resolveReferences(e),e.pushCode("return vars;")},e.prototype.addAliasedCode=function(e){return e.pushCode("function ___parser_"+this.alias+"(offset) {"),this.constructorFn?e.pushCode("var vars = new constructorFn();"):e.pushCode("var vars = {};"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e},e.prototype.resolveReferences=function(e){var t=e.getUnresolvedReferences();e.markRequested(t),t.forEach((function(t){o[t].addAliasedCode(e)}))},e.prototype.compile=function(){var e=this.getContext("imports");this.compiled=new Function("imports","TextDecoder","return function (buffer, constructorFn) { "+e.code+" };")(e.imports,"undefined"==typeof TextDecoder?p(18).TextDecoder:TextDecoder)},e.prototype.sizeOf=function(){var t=NaN;if(Object.keys(i).indexOf(this.type)>=0)t=i[this.type];else if("string"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("buffer"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("array"===this.type&&"number"==typeof this.options.length){var p=NaN;"string"==typeof this.options.type?p=i[this.options.type]:this.options.type instanceof e&&(p=this.options.type.sizeOf()),t=this.options.length*p}else"seek"===this.type?t=this.options.length:"nest"===this.type?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t},e.prototype.parse=function(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)},e.prototype.setNextParser=function(t,p,r){var o=new e;return o.type=t,o.varName=p,o.options=r||o.options,o.endian=this.endian,this.head?this.head.next=o:this.next=o,this.head=o,this},e.prototype.generate=function(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e)}this.generateAssert(e)}var t=e.generateVariable(this.varName);return this.options.formatter&&this.generateFormatter(e,t,this.options.formatter),this.generateNext(e)},e.prototype.generateAssert=function(e){if(this.options.assert){var t=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":var p=e.addImport(this.options.assert);e.pushCode("if (!"+p+".call(vars, "+t+")) {");break;case"number":e.pushCode("if ("+this.options.assert+" !== "+t+") {");break;case"string":e.pushCode('if ("'+this.options.assert+'" !== '+t+") {");break;default:throw new Error("Assert option supports only strings, numbers and assert functions.")}e.generateError('"Assert error: '+t+' is " + '+this.options.assert),e.pushCode("}")}},e.prototype.generateNext=function(e){return this.next&&(e=this.next.generate(e)),e},e.prototype.generateBit=function(e){var t=JSON.parse(JSON.stringify(this));if(t.varName=e.generateVariable(t.varName),e.bitFields.push(t),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){var p=0;e.bitFields.forEach((function(e){return p+=e.options.length}));var r=e.generateTmpVariable();if(p<=8)e.pushCode("var "+r+" = dataView.getUint8(offset);"),p=8;else if(p<=16)e.pushCode("var "+r+" = dataView.getUint16(offset);"),p=16;else if(p<=24){var o=e.generateTmpVariable(),i=e.generateTmpVariable();e.pushCode("var "+o+" = dataView.getUint16(offset);"),e.pushCode("var "+i+" = dataView.getUint8(offset + 2);"),e.pushCode("var "+r+" = ("+o+" << 8) | "+i+";"),p=24}else{if(!(p<=32))throw new Error("Currently, bit field sequence longer than 4-bytes is not supported.");e.pushCode("var "+r+" = dataView.getUint32(offset);"),p=32}e.pushCode("offset += "+p/8+";");var s=0,n="be"===this.endian;e.bitFields.forEach((function(t){var o=t.options.length,i=n?p-s-o:s,a=(1<> "+i+" & "+a+";"),s+=o})),e.bitFields=[]}},e.prototype.generateSeek=function(e){var t=e.generateOption(this.options.length);e.pushCode("offset += "+t+";")},e.prototype.generateString=function(e){var t=e.generateVariable(this.varName),p=e.generateTmpVariable(),r=this.options.encoding,o="hex"===r.toLowerCase(),i='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){var s=this.options.length;e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0 && offset - "+p+" < "+s+");");var n="offset - "+p+" < "+s+" ? offset - 1 : offset";e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", "+n+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", "+n+"));")}else if(this.options.length){s=e.generateOption(this.options.length);e.pushCode(o?t+" = Array.from(buffer.subarray(offset, offset + "+s+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray(offset, offset + "+s+"));"),e.pushCode("offset += "+s+";")}else this.options.zeroTerminated?(e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset - 1)), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset - 1));")):this.options.greedy&&(e.pushCode("var "+p+" = offset;"),e.pushCode("while(buffer.length > offset++);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset)), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset));"));this.options.stripNull&&e.pushCode(t+" = "+t+".replace(/\\x00+$/g, '')")},e.prototype.generateBuffer=function(e){var t=e.generateVariable(this.varName);if("function"==typeof this.options.readUntil){var p=this.options.readUntil,r=e.generateTmpVariable(),o=e.generateTmpVariable();e.pushCode("var "+r+" = offset;"),e.pushCode("var "+o+" = 0;"),e.pushCode("while (offset < buffer.length) {"),e.pushCode(o+" = dataView.getUint8(offset);");var i=e.addImport(p);e.pushCode("if ("+i+".call(this, "+o+", buffer.subarray(offset))) break;"),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(t+" = buffer.subarray("+r+", offset);")}else if("eof"===this.options.readUntil)e.pushCode(t+" = buffer.subarray(offset);");else{var s=e.generateOption(this.options.length);e.pushCode(t+" = buffer.subarray(offset, offset + "+s+");"),e.pushCode("offset += "+s+";")}this.options.clone&&e.pushCode(t+" = buffer.constructor.from("+t+");")},e.prototype.generateArray=function(t){var p=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),a=this.options.type,l=t.generateTmpVariable(),c=t.generateVariable(this.varName),u=t.generateTmpVariable(),y=this.options.key,h="string"==typeof y;if(h?t.pushCode(c+" = {};"):t.pushCode(c+" = [];"),"function"==typeof this.options.readUntil?t.pushCode("do {"):"eof"===this.options.readUntil?t.pushCode("for (var "+l+" = 0; offset < buffer.length; "+l+"++) {"):void 0!==r?t.pushCode("for (var "+l+" = offset + "+r+"; offset < "+l+"; ) {"):t.pushCode("for (var "+l+" = "+p+"; "+l+" > 0; "+l+"--) {"),"string"==typeof a)if(o[a]){var f=t.generateTmpVariable();t.pushCode("var "+f+" = ___parser_"+a+"(offset);"),t.pushCode("var "+u+" = "+f+".result; offset = "+f+".offset;"),a!==this.alias&&t.addReference(a)}else{var d=s[a],_=n[a];t.pushCode("var "+u+" = dataView.get"+d+"(offset, "+_+");"),t.pushCode("offset += "+i[a]+";")}else a instanceof e&&(t.pushCode("var "+u+" = {};"),t.pushScope(u),a.generate(t),t.popScope());if(h?t.pushCode(c+"["+u+"."+y+"] = "+u+";"):t.pushCode(c+".push("+u+");"),t.pushCode("}"),"function"==typeof this.options.readUntil){var S=this.options.readUntil,g=t.addImport(S);t.pushCode("while (!"+g+".call(this, "+u+", buffer.subarray(offset)));")}},e.prototype.generateChoiceCase=function(t,p,r){if("string"==typeof r){var a=t.generateVariable(this.varName);if(o[r]){var l=t.generateTmpVariable();t.pushCode("var "+l+" = ___parser_"+r+"(offset);"),t.pushCode(a+" = "+l+".result; offset = "+l+".offset;"),r!==this.alias&&t.addReference(r)}else{var c=s[r],u=n[r];t.pushCode(a+" = dataView.get"+c+"(offset, "+u+");"),t.pushCode("offset += "+i[r])}}else r instanceof e&&(t.pushPath(p),r.generate(t),t.popPath(p))},e.prototype.generateChoice=function(e){var t=this,p=e.generateOption(this.options.tag);this.varName&&e.pushCode(e.generateVariable(this.varName)+" = {};"),e.pushCode("switch("+p+") {"),Object.keys(this.options.choices).forEach((function(p){var r=t.options.choices[parseInt(p,10)];e.pushCode("case "+p+":"),t.generateChoiceCase(e,t.varName,r),e.pushCode("break;")})),e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError('"Met undefined tag value " + '+p+' + " at choice"'),e.pushCode("}")},e.prototype.generateNest=function(t){var p=t.generateVariable(this.varName);if(this.options.type instanceof e)this.varName&&t.pushCode(p+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var r=t.generateTmpVariable();t.pushCode("var "+r+" = ___parser_"+this.options.type+"(offset);"),t.pushCode(p+" = "+r+".result; offset = "+r+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}},e.prototype.generateFormatter=function(e,t,p){if("function"==typeof p){var r=e.addImport(p);e.pushCode(t+" = "+r+".call(this, "+t+");")}},e.prototype.generatePointer=function(t){var p=this.options.type,r=t.generateOption(this.options.offset),a=t.generateTmpVariable(),l=t.generateVariable(this.varName);if(t.pushCode("var "+a+" = offset;"),t.pushCode("offset = "+r+";"),this.options.type instanceof e)t.pushCode(l+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var c=t.generateTmpVariable();t.pushCode("var "+c+" = ___parser_"+this.options.type+"(offset);"),t.pushCode(l+" = "+c+".result; offset = "+c+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(i).indexOf(this.options.type)>=0){var u=s[p],y=n[p];t.pushCode(l+" = dataView.get"+u+"(offset, "+y+");"),t.pushCode("offset += "+i[p]+";")}t.pushCode("offset = "+a+";")},e.prototype.generateSaveOffset=function(e){var t=e.generateVariable(this.varName);e.pushCode(t+" = offset")},e}();t.Parser=a},function(e,t,p){(function(e,r){var o=/%[sdj%]/g;t.format=function(e){if(!S(e)){for(var t=[],p=0;p=i)return e;switch(e){case"%s":return String(r[p++]);case"%d":return Number(r[p++]);case"%j":try{return JSON.stringify(r[p++])}catch(e){return"[Circular]"}default:return e}})),a=r[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(p)?r.showHidden=p:p&&t._extend(r,p),g(r.showHidden)&&(r.showHidden=!1),g(r.depth)&&(r.depth=2),g(r.colors)&&(r.colors=!1),g(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var p=n.styles[t];return p?"["+n.colors[p][0]+"m"+e+"["+n.colors[p][1]+"m":e}function l(e,t){return e}function c(e,p,r){if(e.customInspect&&p&&I(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return S(o)||(o=c(e,o,r)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(S(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}if(_(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(d(t))return e.stylize("null","null")}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),b(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(p);if(0===s.length){if(I(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(w(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(m(p))return e.stylize(Date.prototype.toString.call(p),"date");if(b(p))return u(p)}var l,E="",v=!1,L=["{","}"];(h(p)&&(v=!0,L=["[","]"]),I(p))&&(E=" [Function"+(p.name?": "+p.name:"")+"]");return w(p)&&(E=" "+RegExp.prototype.toString.call(p)),m(p)&&(E=" "+Date.prototype.toUTCString.call(p)),b(p)&&(E=" "+u(p)),0!==s.length||v&&0!=p.length?r<0?w(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),l=v?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1];return p[0]+t+" "+e.join(", ")+" "+p[1]}(l,E,L)):L[0]+E+L[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function y(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),M(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(p)?c(e,a.value,null):c(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),g(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function _(e){return"number"==typeof e}function S(e){return"string"==typeof e}function g(e){return void 0===e}function w(e){return E(e)&&"[object RegExp]"===v(e)}function E(e){return"object"==typeof e&&null!==e}function m(e){return E(e)&&"[object Date]"===v(e)}function b(e){return E(e)&&("[object Error]"===v(e)||e instanceof Error)}function I(e){return"function"==typeof e}function v(e){return Object.prototype.toString.call(e)}function L(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(g(i)&&(i=r.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var p=r.pid;s[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else s[e]=function(){};return s[e]},t.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=_,t.isString=S,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=g,t.isRegExp=w,t.isObject=E,t.isDate=m,t.isError=b,t.isFunction=I,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(29);var T=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function U(){var e=new Date,t=[L(e.getHours()),L(e.getMinutes()),L(e.getSeconds())].join(":");return[e.getDate(),T[e.getMonth()],t].join(" ")}function M(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",U(),t.format.apply(t,arguments))},t.inherits=p(6),t._extend=function(e,t){if(!t||!E(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e}}).call(this,p(5),p(9))},function(e,t,p){"use strict";(function(t,r){var o=p(11);e.exports=w;var i,s=p(16);w.ReadableState=g;p(13).EventEmitter;var n=function(e,t){return e.listeners(t).length},a=p(20),l=p(12).Buffer,c=t.Uint8Array||function(){};var u=p(10);u.inherits=p(6);var y=p(32),h=void 0;h=y&&y.debuglog?y.debuglog("stream"):function(){};var f,d=p(33),_=p(21);u.inherits(w,a);var S=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(i=i||p(7));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,s=e.readableHighWaterMark,n=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(s||0===s)?s:n,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new d,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=p(22).StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function w(e){if(i=i||p(7),!(this instanceof w))return new w(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function E(e,t,p,r,o){var i,s=e._readableState;null===t?(s.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var p=t.decoder.end();p&&p.length&&(t.buffer.push(p),t.length+=t.objectMode?1:p.length)}t.ended=!0,I(e)}(e,s)):(o||(i=function(e,t){var p;r=t,l.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(p=new TypeError("Invalid non-string/buffer chunk"));var r;return p}(s,t)),i?e.emit("error",i):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):m(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!p?(t=s.decoder.write(t),s.objectMode||0!==t.length?m(e,s,t,!1):L(e,s)):m(e,s,t,!1))):r||(s.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(v,e):v(e))}function v(e){h("emit readable"),e.emit("readable"),D(e)}function L(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(T,e,t))}function T(e,t){for(var p=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(p=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):p=function(e,t,p){var r;ei.length?i.length:e;if(s===i.length?o+=i:o+=i.slice(0,e),0===(e-=s)){s===i.length?(++r,p.next?t.head=p.next:t.head=t.tail=null):(t.head=p,p.data=i.slice(s));break}++r}return t.length-=r,o}(e,t):function(e,t){var p=l.allocUnsafe(e),r=t.head,o=1;r.data.copy(p),e-=r.data.length;for(;r=r.next;){var i=r.data,s=e>i.length?i.length:e;if(i.copy(p,p.length-e,0,s),0===(e-=s)){s===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(s));break}++o}return t.length-=o,p}(e,t);return r}(e,t.buffer,t.decoder),p);var p}function G(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(A,t,e))}function A(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var p=0,r=e.length;p=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?G(this):I(this),null;if(0===(e=b(e,t))&&t.ended)return 0===t.length&&G(this),null;var r,o=t.needReadable;return h("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),p!==e&&t.ended&&G(this)),null!==r&&this.emit("data",r),r},w.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},w.prototype.pipe=function(e,t){var p=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,h("pipe count=%d opts=%j",i.pipesCount,t);var a=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:w;function l(t,r){h("onunpipe"),t===p&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",S),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",_),e.removeListener("unpipe",l),p.removeListener("end",c),p.removeListener("end",w),p.removeListener("data",d),y=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){h("onend"),e.end()}i.endEmitted?o.nextTick(a):p.once("end",a),e.on("unpipe",l);var u=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&n(e,"data")&&(t.flowing=!0,D(e))}}(p);e.on("drain",u);var y=!1;var f=!1;function d(t){h("ondata"),f=!1,!1!==e.write(t)||f||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==C(i.pipes,e))&&!y&&(h("false write response, pause",p._readableState.awaitDrain),p._readableState.awaitDrain++,f=!0),p.pause())}function _(t){h("onerror",t),w(),e.removeListener("error",_),0===n(e,"error")&&e.emit("error",t)}function S(){e.removeListener("finish",g),w()}function g(){h("onfinish"),e.removeListener("close",S),w()}function w(){h("unpipe"),p.unpipe(e)}return p.on("data",d),function(e,t,p){if("function"==typeof e.prependListener)return e.prependListener(t,p);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(p):e._events[t]=[p,e._events[t]]:e.on(t,p)}(e,"error",_),e.once("close",S),e.once("finish",g),e.emit("pipe",p),i.flowing||(h("pipe resume"),p.resume()),e},w.prototype.unpipe=function(e){var t=this._readableState,p={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,p)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function n(e){var t=this.lastTotal-this.lastNeed,p=function(e,t,p){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==p?p:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var p=e.toString("utf16le",t);if(p){var r=p.charCodeAt(p.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],p.slice(0,-1)}return p}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var p=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,p)}return t}function c(e,t){var p=(e.length-t)%3;return 0===p?e.toString("base64",t):(this.lastNeed=3-p,this.lastTotal=3,1===p?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-p))}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function y(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,p;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";p=this.lastNeed,this.lastNeed=0}else p=0;return p=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=p;var r=e.length-(p-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,p){"use strict";e.exports=s;var r=p(7),o=p(10);function i(e,t){var p=this._transformState;p.transforming=!1;var r=p.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));p.writechunk=null,p.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length>8&255^255&p],t&=65535;return t}r.exports={preambleByte:85,crc16:S,sbpIdTable:h,sbpMessageTypesTable:f,decode:function(e){var t=d.parse(e),p=h[t.msg_type];return void 0===p?(console.log("Unknown message type: ",t.msg_type),new s(t)):new p(t)},dispatch:function(t,p,o){var i,s,n=new e(0);if(void 0===o&&"function"==typeof p?i=p:(i=o,s=p),s&&!Array.isArray(s)&&-1===["function","number"].indexOf(typeof s))throw l("dispatch: messageWhitelist must be function, number, or array");var a=function(p){t.pause();try{if((n=e.concat([n,p])).length<2)return;var o=function(){var e,t,p,o,i,a,l;for(l=0;ln.length)throw new c;e=n.slice(l+1,l+6),p=n.readUInt16LE(l+1),_=n.readUInt16LE(l+3),o=n.readUInt8(l+5);var y=s&&Array.isArray(s)&&-1!==s.indexOf(p),h=s&&"number"==typeof s&&s&p,f=s&&"function"==typeof s&&s(p);if(s&&!(y||h||f))return n=n.slice(l+6+o+2),null;if(l+8+o>n.length)throw new c;a=S(n.slice(l+6,l+6+o),S(e)),i=n.readUInt16LE(l+6+o);var d=n.slice(l,l+6+o+2);if(i===a)return n=n.slice(l+6+o+2),[r.exports.decode(d),d];throw n=n.slice(l+1),new u}();if(null===o)return;var l=o[0],y=o[1];i(null,l,y)}catch(e){if(!(e instanceof c||e instanceof u))throw e}finally{t.resume(),n.length>0&&setTimeout((function(){a(new e(0))}),0)}};t.on("data",a)}},function(e){var p={function:!0,object:!0},i=p[typeof window]&&window||this,s=p[typeof t]&&t&&!t.nodeType&&t,n=p[typeof r]&&r&&!r.nodeType&&r,a=s&&n&&"object"==typeof o&&o;!a||a.global!==a&&a.window!==a&&a.self!==a||(i=a),i.SBP=e}(r.exports)}).call(this,p(8).Buffer,p(27)(e),p(5))},function(e,t,p){"use strict";t.byteLength=function(e){var t=l(e),p=t[0],r=t[1];return 3*(p+r)/4-r},t.toByteArray=function(e){for(var t,p=l(e),r=p[0],s=p[1],n=new i(function(e,t,p){return 3*(t+p)/4-p}(0,r,s)),a=0,c=s>0?r-4:r,u=0;u>16&255,n[a++]=t>>8&255,n[a++]=255&t;2===s&&(t=o[e.charCodeAt(u)]<<2|o[e.charCodeAt(u+1)]>>4,n[a++]=255&t);1===s&&(t=o[e.charCodeAt(u)]<<10|o[e.charCodeAt(u+1)]<<4|o[e.charCodeAt(u+2)]>>2,n[a++]=t>>8&255,n[a++]=255&t);return n},t.fromByteArray=function(e){for(var t,p=e.length,o=p%3,i=[],s=0,n=p-o;sn?n:s+16383));1===o?(t=e[p-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[p-2]<<8)+e[p-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,a=s.length;n0)throw new Error("Invalid string. Length must be a multiple of 4");var p=e.indexOf("=");return-1===p&&(p=t),[p,p===t?0:4-p%4]}function c(e,t,p){for(var o,i,s=[],n=t;n>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,p,r,o){var i,s,n=8*o-r-1,a=(1<>1,c=-7,u=p?o-1:0,y=p?-1:1,h=e[t+u];for(u+=y,i=h&(1<<-c)-1,h>>=-c,c+=n;c>0;i=256*i+e[t+u],u+=y,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=r;c>0;s=256*s+e[t+u],u+=y,c-=8);if(0===i)i=1-l;else{if(i===a)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),i-=l}return(h?-1:1)*s*Math.pow(2,i-r)},t.write=function(e,t,p,r,o,i){var s,n,a,l=8*i-o-1,c=(1<>1,y=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,f=r?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(n=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-s))<1&&(s--,a*=2),(t+=s+u>=1?y/a:y*Math.pow(2,1-u))*a>=2&&(s++,a/=2),s+u>=c?(n=0,s=c):s+u>=1?(n=(t*a-1)*Math.pow(2,o),s+=u):(n=t*Math.pow(2,u-1)*Math.pow(2,o),s=0));o>=8;e[p+h]=255&n,h+=f,n/=256,o-=8);for(s=s<0;e[p+h]=255&s,h+=f,s/=256,l-=8);e[p+h-f]|=128*d}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var r=function(){function e(e){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references={},this.imports=[],this.reverseImports=new Map,this.importPath=e}return e.prototype.generateVariable=function(e){var t=[],p=this.scopes[this.scopes.length-1];return t.push.apply(t,p),e&&t.push(e),t.join(".")},e.prototype.generateOption=function(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return this.addImport(e)+".call("+this.generateVariable()+", vars)"}},e.prototype.generateError=function(e){this.pushCode("throw new Error("+e+");")},e.prototype.generateTmpVariable=function(){return"$tmp"+this.tmpVariableCount++},e.prototype.pushCode=function(e){this.code+=e+"\n"},e.prototype.pushPath=function(e){e&&this.scopes[this.scopes.length-1].push(e)},e.prototype.popPath=function(e){e&&this.scopes[this.scopes.length-1].pop()},e.prototype.pushScope=function(e){this.scopes.push([e])},e.prototype.popScope=function(){this.scopes.pop()},e.prototype.addImport=function(e){if(!this.importPath)return"("+e+")";var t=this.reverseImports.get(e);return t||(t=this.imports.push(e)-1,this.reverseImports.set(e,t)),this.importPath+"["+t+"]"},e.prototype.addReference=function(e){this.references[e]||(this.references[e]={resolved:!1,requested:!1})},e.prototype.markResolved=function(e){this.references[e].resolved=!0},e.prototype.markRequested=function(e){var t=this;e.forEach((function(e){t.references[e].requested=!0}))},e.prototype.getUnresolvedReferences=function(){var e=this.references;return Object.keys(this.references).filter((function(t){return!e[t].resolved&&!e[t].requested}))},e}();t.Context=r},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,p){(function(e){function p(e,t){for(var p=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),p++):p&&(e.splice(r,1),p--)}if(t)for(;p--;p)e.unshift("..");return e}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return r.exec(e).slice(1)};function i(e,t){if(e.filter)return e.filter(t);for(var p=[],r=0;r=-1&&!r;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,r="/"===s.charAt(0))}return(r?"/":"")+(t=p(i(t.split("/"),(function(e){return!!e})),!r).join("/"))||"."},t.normalize=function(e){var r=t.isAbsolute(e),o="/"===s(e,-1);return(e=p(i(e.split("/"),(function(e){return!!e})),!r).join("/"))||r||(e="."),e&&o&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,p){function r(e){for(var t=0;t=0&&""===e[p];p--);return t>p?[]:e.slice(t,p-t+1)}e=t.resolve(e).substr(1),p=t.resolve(p).substr(1);for(var o=r(e.split("/")),i=r(p.split("/")),s=Math.min(o.length,i.length),n=s,a=0;a0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,p=""+t.data;t=t.next;)p+=e+t.data;return p},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t=r.allocUnsafe(e>>>0),p=this.head,o=0;p;)i(p.data,t,o),o+=p.data.length,p=p.next;return t},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,p){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},p(36),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,p(5))},function(e,t,p){(function(e,t){!function(e,p){"use strict";if(!e.setImmediate){var r,o,i,s,n,a=1,l={},c=!1,u=e.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(e);y=y&&y.setTimeout?y:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){f(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,p=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=p,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){f(e.data)},r=function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(o=u.documentElement,r=function(e){var t=u.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(f,0,e)}:(s="setImmediate$"+Math.random()+"$",n=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&f(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",n,!1):e.attachEvent("onmessage",n),r=function(t){e.postMessage(s+t,"*")}),y.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),p=0;p=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function f(e,t){if(a.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var p=e.length;if(0===p)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return p;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*p;case"hex":return p>>>1;case"base64":return B(e).length;default:if(r)return F(e).length;t=(""+t).toLowerCase(),r=!0}}function d(e,t,p){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===p||p>this.length)&&(p=this.length),p<=0)return"";if((p>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return D(this,t,p);case"utf8":case"utf-8":return v(this,t,p);case"ascii":return U(this,t,p);case"latin1":case"binary":return M(this,t,p);case"base64":return T(this,t,p);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,p);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function _(e,t,p){var r=e[t];e[t]=e[p],e[p]=r}function S(e,t,p,r,o){if(0===e.length)return-1;if("string"==typeof p?(r=p,p=0):p>2147483647?p=2147483647:p<-2147483648&&(p=-2147483648),p=+p,isNaN(p)&&(p=o?0:e.length-1),p<0&&(p=e.length+p),p>=e.length){if(o)return-1;p=e.length-1}else if(p<0){if(!o)return-1;p=0}if("string"==typeof t&&(t=a.from(t,r)),a.isBuffer(t))return 0===t.length?-1:g(e,t,p,r,o);if("number"==typeof t)return t&=255,a.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,p):Uint8Array.prototype.lastIndexOf.call(e,t,p):g(e,[t],p,r,o);throw new TypeError("val must be string, number or Buffer")}function g(e,t,p,r,o){var i,s=1,n=e.length,a=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,n/=2,a/=2,p/=2}function l(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var c=-1;for(i=p;in&&(p=n-a),i=p;i>=0;i--){for(var u=!0,y=0;yo&&(r=o):r=o;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var s=0;s>8,o=p%256,i.push(o),i.push(r);return i}(t,e.length-p),e,p,r)}function T(e,t,p){return 0===t&&p===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,p))}function v(e,t,p){p=Math.min(e.length,p);for(var r=[],o=t;o239?4:l>223?3:l>191?2:1;if(o+u<=p)switch(u){case 1:l<128&&(c=l);break;case 2:128==(192&(i=e[o+1]))&&(a=(31&l)<<6|63&i)>127&&(c=a);break;case 3:i=e[o+1],s=e[o+2],128==(192&i)&&128==(192&s)&&(a=(15&l)<<12|(63&i)<<6|63&s)>2047&&(a<55296||a>57343)&&(c=a);break;case 4:i=e[o+1],s=e[o+2],n=e[o+3],128==(192&i)&&128==(192&s)&&128==(192&n)&&(a=(15&l)<<18|(63&i)<<12|(63&s)<<6|63&n)>65535&&a<1114112&&(c=a)}null===c?(c=65533,u=1):c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|1023&c),r.push(c),o+=u}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var p="",r=0;for(;r0&&(e=this.toString("hex",0,p).match(/.{2}/g).join(" "),this.length>p&&(e+=" ... ")),""},a.prototype.compare=function(e,t,p,r,o){if(!a.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===p&&(p=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||p>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=p)return 0;if(r>=o)return-1;if(t>=p)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),s=(p>>>=0)-(t>>>=0),n=Math.min(i,s),l=this.slice(r,o),c=e.slice(t,p),u=0;uo)&&(p=o),e.length>0&&(p<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return w(this,e,t,p);case"utf8":case"utf-8":return E(this,e,t,p);case"ascii":return m(this,e,t,p);case"latin1":case"binary":return b(this,e,t,p);case"base64":return I(this,e,t,p);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return L(this,e,t,p);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function U(e,t,p){var r="";p=Math.min(e.length,p);for(var o=t;or)&&(p=r);for(var o="",i=t;ip)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,p,r,o,i){if(!a.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function C(e,t,p,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-p,2);o>>8*(r?o:1-o)}function R(e,t,p,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-p,4);o>>8*(r?o:3-o)&255}function P(e,t,p,r,o,i){if(p+r>e.length)throw new RangeError("Index out of range");if(p<0)throw new RangeError("Index out of range")}function N(e,t,p,r,i){return i||P(e,0,p,4),o.write(e,t,p,r,23,4),p+4}function j(e,t,p,r,i){return i||P(e,0,p,8),o.write(e,t,p,r,52,8),p+8}a.prototype.slice=function(e,t){var p,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},a.prototype.readUInt8=function(e,t){return t||G(e,1,this.length),this[e]},a.prototype.readUInt16LE=function(e,t){return t||G(e,2,this.length),this[e]|this[e+1]<<8},a.prototype.readUInt16BE=function(e,t){return t||G(e,2,this.length),this[e]<<8|this[e+1]},a.prototype.readUInt32LE=function(e,t){return t||G(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},a.prototype.readUInt32BE=function(e,t){return t||G(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},a.prototype.readIntLE=function(e,t,p){e|=0,t|=0,p||G(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},a.prototype.readIntBE=function(e,t,p){e|=0,t|=0,p||G(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},a.prototype.readInt8=function(e,t){return t||G(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},a.prototype.readInt16LE=function(e,t){t||G(e,2,this.length);var p=this[e]|this[e+1]<<8;return 32768&p?4294901760|p:p},a.prototype.readInt16BE=function(e,t){t||G(e,2,this.length);var p=this[e+1]|this[e]<<8;return 32768&p?4294901760|p:p},a.prototype.readInt32LE=function(e,t){return t||G(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},a.prototype.readInt32BE=function(e,t){return t||G(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},a.prototype.readFloatLE=function(e,t){return t||G(e,4,this.length),o.read(this,e,!0,23,4)},a.prototype.readFloatBE=function(e,t){return t||G(e,4,this.length),o.read(this,e,!1,23,4)},a.prototype.readDoubleLE=function(e,t){return t||G(e,8,this.length),o.read(this,e,!0,52,8)},a.prototype.readDoubleBE=function(e,t){return t||G(e,8,this.length),o.read(this,e,!1,52,8)},a.prototype.writeUIntLE=function(e,t,p,r){(e=+e,t|=0,p|=0,r)||A(this,e,t,p,Math.pow(2,8*p)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+p},a.prototype.writeUInt8=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},a.prototype.writeUInt16LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},a.prototype.writeUInt16BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},a.prototype.writeUInt32LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):R(this,e,t,!0),t+4},a.prototype.writeUInt32BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},a.prototype.writeIntLE=function(e,t,p,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*p-1);A(this,e,t,p,o-1,-o)}var i=0,s=1,n=0;for(this[t]=255&e;++i>0)-n&255;return t+p},a.prototype.writeIntBE=function(e,t,p,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*p-1);A(this,e,t,p,o-1,-o)}var i=p-1,s=1,n=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===n&&0!==this[t+i+1]&&(n=1),this[t+i]=(e/s>>0)-n&255;return t+p},a.prototype.writeInt8=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},a.prototype.writeInt16LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):C(this,e,t,!0),t+2},a.prototype.writeInt16BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):C(this,e,t,!1),t+2},a.prototype.writeInt32LE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):R(this,e,t,!0),t+4},a.prototype.writeInt32BE=function(e,t,p){return e=+e,t|=0,p||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):R(this,e,t,!1),t+4},a.prototype.writeFloatLE=function(e,t,p){return N(this,e,t,!0,p)},a.prototype.writeFloatBE=function(e,t,p){return N(this,e,t,!1,p)},a.prototype.writeDoubleLE=function(e,t,p){return j(this,e,t,!0,p)},a.prototype.writeDoubleBE=function(e,t,p){return j(this,e,t,!1,p)},a.prototype.copy=function(e,t,p,r){if(p||(p=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+p];else if(i<1e3||!a.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,p=void 0===p?this.length:p>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&p<57344){if(!o){if(p>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=p;continue}if(p<56320){(t-=3)>-1&&i.push(239,191,189),o=p;continue}p=65536+(o-55296<<10|p-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,p<128){if((t-=1)<0)break;i.push(p)}else if(p<2048){if((t-=2)<0)break;i.push(p>>6|192,63&p|128)}else if(p<65536){if((t-=3)<0)break;i.push(p>>12|224,p>>6&63|128,63&p|128)}else{if(!(p<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(p>>18|240,p>>12&63|128,p>>6&63|128,63&p|128)}}return i}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(x,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function q(e,t,p,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+p]=e[o];return o}}).call(this,p(5))},function(e,t){var p,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function n(e){if(p===setTimeout)return setTimeout(e,0);if((p===i||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}!function(){try{p="function"==typeof setTimeout?setTimeout:i}catch(e){p=i}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var a,l=[],c=!1,u=-1;function y(){c&&a&&(c=!1,a.length?l=a.concat(l):u=-1,l.length&&h())}function h(){if(!c){var e=n(y);c=!0;for(var t=l.length;t;){for(a=l,l=[];++u1)for(var p=1;p0&&this._events[e].length>s&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},p.prototype.on=p.prototype.addListener,p.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var p=!1;function o(){this.removeListener(e,o),p||(p=!0,t.apply(this,arguments))}return o.listener=t,this.on(e,o),this},p.prototype.removeListener=function(e,t){var p,i,s,n;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(s=(p=this._events[e]).length,i=-1,p===t||r(p.listener)&&p.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(p)){for(n=s;n-- >0;)if(p[n]===t||p[n].listener&&p[n].listener===t){i=n;break}if(i<0)return this;1===p.length?(p.length=0,delete this._events[e]):p.splice(i,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},p.prototype.removeAllListeners=function(e){var t,p;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(p=this._events[e]))this.removeListener(e,p);else if(p)for(;p.length;)this.removeListener(e,p[p.length-1]);return delete this._events[e],this},p.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},p.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},p.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,p){(t=e.exports=p(19)).Stream=t,t.Readable=t,t.Writable=p(15),t.Duplex=p(7),t.Transform=p(23),t.PassThrough=p(38)},function(e,t,p){"use strict";(function(t,r,o){var i=p(11);function s(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,p){var r=e.entry;e.entry=null;for(;r;){var o=r.callback;t.pendingcb--,o(p),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=g;var n,a=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;g.WritableState=S;var l=p(10);l.inherits=p(6);var c={deprecate:p(37)},u=p(20),y=p(12).Buffer,h=o.Uint8Array||function(){};var f,d=p(21);function _(){}function S(e,t){n=n||p(7),e=e||{};var r=t instanceof n;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var o=e.highWaterMark,l=e.writableHighWaterMark,c=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(l||0===l)?l:c,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var u=!1===e.decodeStrings;this.decodeStrings=!u,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var p=e._writableState,r=p.sync,o=p.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(p),t)!function(e,t,p,r,o){--t.pendingcb,p?(i.nextTick(o,r),i.nextTick(L,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(o(r),e._writableState.errorEmitted=!0,e.emit("error",r),L(e,t))}(e,p,r,t,o);else{var s=b(p);s||p.corked||p.bufferProcessing||!p.bufferedRequest||m(e,p),r?a(E,e,p,s,o):E(e,p,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function g(e){if(n=n||p(7),!(f.call(g,this)||this instanceof n))return new g(e);this._writableState=new S(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function w(e,t,p,r,o,i,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,p?e._writev(o,t.onwrite):e._write(o,i,t.onwrite),t.sync=!1}function E(e,t,p,r){p||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),L(e,t)}function m(e,t){t.bufferProcessing=!0;var p=t.bufferedRequest;if(e._writev&&p&&p.next){var r=t.bufferedRequestCount,o=new Array(r),i=t.corkedRequestsFree;i.entry=p;for(var n=0,a=!0;p;)o[n]=p,p.isBuf||(a=!1),p=p.next,n+=1;o.allBuffers=a,w(e,t,!0,t.length,o,"",i.finish),t.pendingcb++,t.lastBufferedRequest=null,i.next?(t.corkedRequestsFree=i.next,i.next=null):t.corkedRequestsFree=new s(t),t.bufferedRequestCount=0}else{for(;p;){var l=p.chunk,c=p.encoding,u=p.callback;if(w(e,t,!1,t.objectMode?1:l.length,l,c,u),p=p.next,t.bufferedRequestCount--,t.writing)break}null===p&&(t.lastBufferedRequest=null)}t.bufferedRequest=p,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function I(e,t){e._final((function(p){t.pendingcb--,p&&e.emit("error",p),t.prefinished=!0,e.emit("prefinish"),L(e,t)}))}function L(e,t){var p=b(t);return p&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(I,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),p}l.inherits(g,u),S.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(S.prototype,"buffer",{get:c.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(g,Symbol.hasInstance,{value:function(e){return!!f.call(this,e)||this===g&&(e&&e._writableState instanceof S)}})):f=function(e){return e instanceof this},g.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},g.prototype.write=function(e,t,p){var r,o=this._writableState,s=!1,n=!o.objectMode&&(r=e,y.isBuffer(r)||r instanceof h);return n&&!y.isBuffer(e)&&(e=function(e){return y.from(e)}(e)),"function"==typeof t&&(p=t,t=null),n?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof p&&(p=_),o.ended?function(e,t){var p=new Error("write after end");e.emit("error",p),i.nextTick(t,p)}(this,p):(n||function(e,t,p,r){var o=!0,s=!1;return null===p?s=new TypeError("May not write null values to stream"):"string"==typeof p||void 0===p||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),i.nextTick(r,s),o=!1),o}(this,o,e,p))&&(o.pendingcb++,s=function(e,t,p,r,o,i){if(!p){var s=function(e,t,p){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=y.from(t,p));return t}(t,r,o);r!==s&&(p=!0,o="buffer",r=s)}var n=t.objectMode?1:r.length;t.length+=n;var a=t.length-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(g.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),g.prototype._write=function(e,t,p){p(new Error("_write() is not implemented"))},g.prototype._writev=null,g.prototype.end=function(e,t,p){var r=this._writableState;"function"==typeof e?(p=e,e=null,t=null):"function"==typeof t&&(p=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,p){t.ending=!0,L(e,t),p&&(t.finished?i.nextTick(p):e.once("finish",p));t.ended=!0,e.writable=!1}(this,r,p)},Object.defineProperty(g.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),g.prototype.destroy=d.destroy,g.prototype._undestroy=d.undestroy,g.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,p(9),p(35).setImmediate,p(5))},function(e,t){var p={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==p.call(e)}},function(e,t,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var r=p(28),o={},i={uint8:1,uint16le:2,uint16be:2,uint32le:4,uint32be:4,int8:1,int16le:2,int16be:2,int32le:4,int32be:4,int64be:8,int64le:8,uint64be:8,uint64le:8,floatle:4,floatbe:4,doublele:8,doublebe:8},s={uint8:"Uint8",uint16le:"Uint16",uint16be:"Uint16",uint32le:"Uint32",uint32be:"Uint32",int8:"Int8",int16le:"Int16",int16be:"Int16",int32le:"Int32",int32be:"Int32",int64be:"BigInt64",int64le:"BigInt64",uint64be:"BigUint64",uint64le:"BigUint64",floatle:"Float32",floatbe:"Float32",doublele:"Float64",doublebe:"Float64"},n={uint8:!1,uint16le:!0,uint16be:!1,uint32le:!0,uint32be:!1,int8:!1,int16le:!0,int16be:!1,int32le:!0,int32be:!1,int64be:!1,int64le:!0,uint64be:!1,uint64le:!0,floatle:!0,floatbe:!1,doublele:!0,doublebe:!1},a=function(){function e(){this.varName="",this.type="",this.options={},this.next=null,this.head=null,this.compiled=null,this.endian="be",this.constructorFn=null,this.alias=null}return e.start=function(){return new e},e.prototype.primitiveGenerateN=function(e,t){var p=s[e],r=n[e];t.pushCode(t.generateVariable(this.varName)+" = dataView.get"+p+"(offset, "+r+");"),t.pushCode("offset += "+i[e]+";")},e.prototype.primitiveN=function(e,t,p){return this.setNextParser(e,t,p)},e.prototype.useThisEndian=function(e){return e+this.endian.toLowerCase()},e.prototype.uint8=function(e,t){return this.primitiveN("uint8",e,t)},e.prototype.uint16=function(e,t){return this.primitiveN(this.useThisEndian("uint16"),e,t)},e.prototype.uint16le=function(e,t){return this.primitiveN("uint16le",e,t)},e.prototype.uint16be=function(e,t){return this.primitiveN("uint16be",e,t)},e.prototype.uint32=function(e,t){return this.primitiveN(this.useThisEndian("uint32"),e,t)},e.prototype.uint32le=function(e,t){return this.primitiveN("uint32le",e,t)},e.prototype.uint32be=function(e,t){return this.primitiveN("uint32be",e,t)},e.prototype.int8=function(e,t){return this.primitiveN("int8",e,t)},e.prototype.int16=function(e,t){return this.primitiveN(this.useThisEndian("int16"),e,t)},e.prototype.int16le=function(e,t){return this.primitiveN("int16le",e,t)},e.prototype.int16be=function(e,t){return this.primitiveN("int16be",e,t)},e.prototype.int32=function(e,t){return this.primitiveN(this.useThisEndian("int32"),e,t)},e.prototype.int32le=function(e,t){return this.primitiveN("int32le",e,t)},e.prototype.int32be=function(e,t){return this.primitiveN("int32be",e,t)},e.prototype.bigIntVersionCheck=function(){if(!DataView.prototype.getBigInt64)throw new Error("BigInt64 is unsupported in this runtime")},e.prototype.int64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("int64"),e,t)},e.prototype.int64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64be",e,t)},e.prototype.int64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("int64le",e,t)},e.prototype.uint64=function(e,t){return this.bigIntVersionCheck(),this.primitiveN(this.useThisEndian("uint64"),e,t)},e.prototype.uint64be=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64be",e,t)},e.prototype.uint64le=function(e,t){return this.bigIntVersionCheck(),this.primitiveN("uint64le",e,t)},e.prototype.floatle=function(e,t){return this.primitiveN("floatle",e,t)},e.prototype.floatbe=function(e,t){return this.primitiveN("floatbe",e,t)},e.prototype.doublele=function(e,t){return this.primitiveN("doublele",e,t)},e.prototype.doublebe=function(e,t){return this.primitiveN("doublebe",e,t)},e.prototype.bitN=function(e,t,p){return p||(p={}),p.length=e,this.setNextParser("bit",t,p)},e.prototype.bit1=function(e,t){return this.bitN(1,e,t)},e.prototype.bit2=function(e,t){return this.bitN(2,e,t)},e.prototype.bit3=function(e,t){return this.bitN(3,e,t)},e.prototype.bit4=function(e,t){return this.bitN(4,e,t)},e.prototype.bit5=function(e,t){return this.bitN(5,e,t)},e.prototype.bit6=function(e,t){return this.bitN(6,e,t)},e.prototype.bit7=function(e,t){return this.bitN(7,e,t)},e.prototype.bit8=function(e,t){return this.bitN(8,e,t)},e.prototype.bit9=function(e,t){return this.bitN(9,e,t)},e.prototype.bit10=function(e,t){return this.bitN(10,e,t)},e.prototype.bit11=function(e,t){return this.bitN(11,e,t)},e.prototype.bit12=function(e,t){return this.bitN(12,e,t)},e.prototype.bit13=function(e,t){return this.bitN(13,e,t)},e.prototype.bit14=function(e,t){return this.bitN(14,e,t)},e.prototype.bit15=function(e,t){return this.bitN(15,e,t)},e.prototype.bit16=function(e,t){return this.bitN(16,e,t)},e.prototype.bit17=function(e,t){return this.bitN(17,e,t)},e.prototype.bit18=function(e,t){return this.bitN(18,e,t)},e.prototype.bit19=function(e,t){return this.bitN(19,e,t)},e.prototype.bit20=function(e,t){return this.bitN(20,e,t)},e.prototype.bit21=function(e,t){return this.bitN(21,e,t)},e.prototype.bit22=function(e,t){return this.bitN(22,e,t)},e.prototype.bit23=function(e,t){return this.bitN(23,e,t)},e.prototype.bit24=function(e,t){return this.bitN(24,e,t)},e.prototype.bit25=function(e,t){return this.bitN(25,e,t)},e.prototype.bit26=function(e,t){return this.bitN(26,e,t)},e.prototype.bit27=function(e,t){return this.bitN(27,e,t)},e.prototype.bit28=function(e,t){return this.bitN(28,e,t)},e.prototype.bit29=function(e,t){return this.bitN(29,e,t)},e.prototype.bit30=function(e,t){return this.bitN(30,e,t)},e.prototype.bit31=function(e,t){return this.bitN(31,e,t)},e.prototype.bit32=function(e,t){return this.bitN(32,e,t)},e.prototype.namely=function(e){return o[e]=this,this.alias=e,this},e.prototype.skip=function(e,t){return this.seek(e,t)},e.prototype.seek=function(e,t){if(t&&t.assert)throw new Error("assert option on seek is not allowed.");return this.setNextParser("seek","",{length:e})},e.prototype.string=function(e,t){if(!t.zeroTerminated&&!t.length&&!t.greedy)throw new Error("Neither length, zeroTerminated, nor greedy is defined for string.");if((t.zeroTerminated||t.length)&&t.greedy)throw new Error("greedy is mutually exclusive with length and zeroTerminated for string.");if(t.stripNull&&!t.length&&!t.greedy)throw new Error("Length or greedy must be defined if stripNull is defined.");return t.encoding=t.encoding||"utf8",this.setNextParser("string",e,t)},e.prototype.buffer=function(e,t){if(!t.length&&!t.readUntil)throw new Error("Length nor readUntil is defined in buffer parser");return this.setNextParser("buffer",e,t)},e.prototype.array=function(e,t){if(!t.readUntil&&!t.length&&!t.lengthInBytes)throw new Error("Length option of array is not defined.");if(!t.type)throw new Error("Type option of array is not defined.");if("string"==typeof t.type&&!o[t.type]&&Object.keys(i).indexOf(t.type)<0)throw new Error('Specified primitive type "'+t.type+'" is not supported.');return this.setNextParser("array",e,t)},e.prototype.choice=function(e,t){if("object"!=typeof t&&"object"==typeof e&&(t=e,e=null),!t.tag)throw new Error("Tag option of array is not defined.");if(!t.choices)throw new Error("Choices option of array is not defined.");return Object.keys(t.choices).forEach((function(p){var r=parseInt(p,10),s=t.choices[r];if(isNaN(r))throw new Error("Key of choices must be a number.");if(!s)throw new Error("Choice Case "+p+" of "+e+" is not valid.");if("string"==typeof s&&!o[s]&&Object.keys(i).indexOf(s)<0)throw new Error('Specified primitive type "'+s+'" is not supported.')})),this.setNextParser("choice",e,t)},e.prototype.nest=function(t,p){if("object"!=typeof p&&"object"==typeof t&&(p=t,t=null),!p.type)throw new Error("Type option of nest is not defined.");if(!(p.type instanceof e||o[p.type]))throw new Error("Type option of nest must be a Parser object.");if(!(p.type instanceof e||t))throw new Error("options.type must be a object if variable name is omitted.");return this.setNextParser("nest",t,p)},e.prototype.pointer=function(t,p){if(!p.offset)throw new Error("Offset option of pointer is not defined.");if(!p.type)throw new Error("Type option of pointer is not defined.");if("string"==typeof p.type){if(Object.keys(i).indexOf(p.type)<0&&!o[p.type])throw new Error('Specified type "'+p.type+'" is not supported.')}else if(!(p.type instanceof e))throw new Error("Type option of pointer must be a string or a Parser object.");return this.setNextParser("pointer",t,p)},e.prototype.saveOffset=function(e,t){return this.setNextParser("saveOffset",e,t)},e.prototype.endianess=function(e){switch(e.toLowerCase()){case"little":this.endian="le";break;case"big":this.endian="be";break;default:throw new Error("Invalid endianess: "+e)}return this},e.prototype.create=function(e){if(!(e instanceof Function))throw new Error("Constructor must be a Function object.");return this.constructorFn=e,this},e.prototype.getContext=function(e){var t=new r.Context(e);return t.pushCode("var dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.length);"),this.alias?(this.addAliasedCode(t),t.pushCode("return ___parser_"+this.alias+"(0).result;")):this.addRawCode(t),t},e.prototype.getCode=function(){return this.getContext().code},e.prototype.addRawCode=function(e){e.pushCode("var offset = 0;"),this.constructorFn?e.pushCode("var vars = new constructorFn();"):e.pushCode("var vars = {};"),this.generate(e),this.resolveReferences(e),e.pushCode("return vars;")},e.prototype.addAliasedCode=function(e){return e.pushCode("function ___parser_"+this.alias+"(offset) {"),this.constructorFn?e.pushCode("var vars = new constructorFn();"):e.pushCode("var vars = {};"),this.generate(e),e.markResolved(this.alias),this.resolveReferences(e),e.pushCode("return { offset: offset, result: vars };"),e.pushCode("}"),e},e.prototype.resolveReferences=function(e){var t=e.getUnresolvedReferences();e.markRequested(t),t.forEach((function(t){o[t].addAliasedCode(e)}))},e.prototype.compile=function(){var e=this.getContext("imports");this.compiled=new Function("imports","TextDecoder","return function (buffer, constructorFn) { "+e.code+" };")(e.imports,"undefined"==typeof TextDecoder?p(18).TextDecoder:TextDecoder)},e.prototype.sizeOf=function(){var t=NaN;if(Object.keys(i).indexOf(this.type)>=0)t=i[this.type];else if("string"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("buffer"===this.type&&"number"==typeof this.options.length)t=this.options.length;else if("array"===this.type&&"number"==typeof this.options.length){var p=NaN;"string"==typeof this.options.type?p=i[this.options.type]:this.options.type instanceof e&&(p=this.options.type.sizeOf()),t=this.options.length*p}else"seek"===this.type?t=this.options.length:"nest"===this.type?t=this.options.type.sizeOf():this.type||(t=0);return this.next&&(t+=this.next.sizeOf()),t},e.prototype.parse=function(e){return this.compiled||this.compile(),this.compiled(e,this.constructorFn)},e.prototype.setNextParser=function(t,p,r){var o=new e;return o.type=t,o.varName=p,o.options=r||o.options,o.endian=this.endian,this.head?this.head.next=o:this.next=o,this.head=o,this},e.prototype.generate=function(e){if(this.type){switch(this.type){case"uint8":case"uint16le":case"uint16be":case"uint32le":case"uint32be":case"int8":case"int16le":case"int16be":case"int32le":case"int32be":case"int64be":case"int64le":case"uint64be":case"uint64le":case"floatle":case"floatbe":case"doublele":case"doublebe":this.primitiveGenerateN(this.type,e);break;case"bit":this.generateBit(e);break;case"string":this.generateString(e);break;case"buffer":this.generateBuffer(e);break;case"seek":this.generateSeek(e);break;case"nest":this.generateNest(e);break;case"array":this.generateArray(e);break;case"choice":this.generateChoice(e);break;case"pointer":this.generatePointer(e);break;case"saveOffset":this.generateSaveOffset(e)}this.generateAssert(e)}var t=e.generateVariable(this.varName);return this.options.formatter&&this.generateFormatter(e,t,this.options.formatter),this.generateNext(e)},e.prototype.generateAssert=function(e){if(this.options.assert){var t=e.generateVariable(this.varName);switch(typeof this.options.assert){case"function":var p=e.addImport(this.options.assert);e.pushCode("if (!"+p+".call(vars, "+t+")) {");break;case"number":e.pushCode("if ("+this.options.assert+" !== "+t+") {");break;case"string":e.pushCode('if ("'+this.options.assert+'" !== '+t+") {");break;default:throw new Error("Assert option supports only strings, numbers and assert functions.")}e.generateError('"Assert error: '+t+' is " + '+this.options.assert),e.pushCode("}")}},e.prototype.generateNext=function(e){return this.next&&(e=this.next.generate(e)),e},e.prototype.generateBit=function(e){var t=JSON.parse(JSON.stringify(this));if(t.varName=e.generateVariable(t.varName),e.bitFields.push(t),!this.next||this.next&&["bit","nest"].indexOf(this.next.type)<0){var p=0;e.bitFields.forEach((function(e){return p+=e.options.length}));var r=e.generateTmpVariable();if(p<=8)e.pushCode("var "+r+" = dataView.getUint8(offset);"),p=8;else if(p<=16)e.pushCode("var "+r+" = dataView.getUint16(offset);"),p=16;else if(p<=24){var o=e.generateTmpVariable(),i=e.generateTmpVariable();e.pushCode("var "+o+" = dataView.getUint16(offset);"),e.pushCode("var "+i+" = dataView.getUint8(offset + 2);"),e.pushCode("var "+r+" = ("+o+" << 8) | "+i+";"),p=24}else{if(!(p<=32))throw new Error("Currently, bit field sequence longer than 4-bytes is not supported.");e.pushCode("var "+r+" = dataView.getUint32(offset);"),p=32}e.pushCode("offset += "+p/8+";");var s=0,n="be"===this.endian;e.bitFields.forEach((function(t){var o=t.options.length,i=n?p-s-o:s,a=(1<> "+i+" & "+a+";"),s+=o})),e.bitFields=[]}},e.prototype.generateSeek=function(e){var t=e.generateOption(this.options.length);e.pushCode("offset += "+t+";")},e.prototype.generateString=function(e){var t=e.generateVariable(this.varName),p=e.generateTmpVariable(),r=this.options.encoding,o="hex"===r.toLowerCase(),i='b => b.toString(16).padStart(2, "0")';if(this.options.length&&this.options.zeroTerminated){var s=this.options.length;e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0 && offset - "+p+" < "+s+");");var n="offset - "+p+" < "+s+" ? offset - 1 : offset";e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", "+n+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", "+n+"));")}else if(this.options.length){s=e.generateOption(this.options.length);e.pushCode(o?t+" = Array.from(buffer.subarray(offset, offset + "+s+"), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray(offset, offset + "+s+"));"),e.pushCode("offset += "+s+";")}else this.options.zeroTerminated?(e.pushCode("var "+p+" = offset;"),e.pushCode("while(dataView.getUint8(offset++) !== 0);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset - 1)), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset - 1));")):this.options.greedy&&(e.pushCode("var "+p+" = offset;"),e.pushCode("while(buffer.length > offset++);"),e.pushCode(o?t+" = Array.from(buffer.subarray("+p+", offset)), "+i+").join('');":t+" = new TextDecoder('"+r+"').decode(buffer.subarray("+p+", offset));"));this.options.stripNull&&e.pushCode(t+" = "+t+".replace(/\\x00+$/g, '')")},e.prototype.generateBuffer=function(e){var t=e.generateVariable(this.varName);if("function"==typeof this.options.readUntil){var p=this.options.readUntil,r=e.generateTmpVariable(),o=e.generateTmpVariable();e.pushCode("var "+r+" = offset;"),e.pushCode("var "+o+" = 0;"),e.pushCode("while (offset < buffer.length) {"),e.pushCode(o+" = dataView.getUint8(offset);");var i=e.addImport(p);e.pushCode("if ("+i+".call(this, "+o+", buffer.subarray(offset))) break;"),e.pushCode("offset += 1;"),e.pushCode("}"),e.pushCode(t+" = buffer.subarray("+r+", offset);")}else if("eof"===this.options.readUntil)e.pushCode(t+" = buffer.subarray(offset);");else{var s=e.generateOption(this.options.length);e.pushCode(t+" = buffer.subarray(offset, offset + "+s+");"),e.pushCode("offset += "+s+";")}this.options.clone&&e.pushCode(t+" = buffer.constructor.from("+t+");")},e.prototype.generateArray=function(t){var p=t.generateOption(this.options.length),r=t.generateOption(this.options.lengthInBytes),a=this.options.type,l=t.generateTmpVariable(),c=t.generateVariable(this.varName),u=t.generateTmpVariable(),y=this.options.key,h="string"==typeof y;if(h?t.pushCode(c+" = {};"):t.pushCode(c+" = [];"),"function"==typeof this.options.readUntil?t.pushCode("do {"):"eof"===this.options.readUntil?t.pushCode("for (var "+l+" = 0; offset < buffer.length; "+l+"++) {"):void 0!==r?t.pushCode("for (var "+l+" = offset + "+r+"; offset < "+l+"; ) {"):t.pushCode("for (var "+l+" = "+p+"; "+l+" > 0; "+l+"--) {"),"string"==typeof a)if(o[a]){var f=t.generateTmpVariable();t.pushCode("var "+f+" = ___parser_"+a+"(offset);"),t.pushCode("var "+u+" = "+f+".result; offset = "+f+".offset;"),a!==this.alias&&t.addReference(a)}else{var d=s[a],_=n[a];t.pushCode("var "+u+" = dataView.get"+d+"(offset, "+_+");"),t.pushCode("offset += "+i[a]+";")}else a instanceof e&&(t.pushCode("var "+u+" = {};"),t.pushScope(u),a.generate(t),t.popScope());if(h?t.pushCode(c+"["+u+"."+y+"] = "+u+";"):t.pushCode(c+".push("+u+");"),t.pushCode("}"),"function"==typeof this.options.readUntil){var S=this.options.readUntil,g=t.addImport(S);t.pushCode("while (!"+g+".call(this, "+u+", buffer.subarray(offset)));")}},e.prototype.generateChoiceCase=function(t,p,r){if("string"==typeof r){var a=t.generateVariable(this.varName);if(o[r]){var l=t.generateTmpVariable();t.pushCode("var "+l+" = ___parser_"+r+"(offset);"),t.pushCode(a+" = "+l+".result; offset = "+l+".offset;"),r!==this.alias&&t.addReference(r)}else{var c=s[r],u=n[r];t.pushCode(a+" = dataView.get"+c+"(offset, "+u+");"),t.pushCode("offset += "+i[r])}}else r instanceof e&&(t.pushPath(p),r.generate(t),t.popPath(p))},e.prototype.generateChoice=function(e){var t=this,p=e.generateOption(this.options.tag);this.varName&&e.pushCode(e.generateVariable(this.varName)+" = {};"),e.pushCode("switch("+p+") {"),Object.keys(this.options.choices).forEach((function(p){var r=t.options.choices[parseInt(p,10)];e.pushCode("case "+p+":"),t.generateChoiceCase(e,t.varName,r),e.pushCode("break;")})),e.pushCode("default:"),this.options.defaultChoice?this.generateChoiceCase(e,this.varName,this.options.defaultChoice):e.generateError('"Met undefined tag value " + '+p+' + " at choice"'),e.pushCode("}")},e.prototype.generateNest=function(t){var p=t.generateVariable(this.varName);if(this.options.type instanceof e)this.varName&&t.pushCode(p+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var r=t.generateTmpVariable();t.pushCode("var "+r+" = ___parser_"+this.options.type+"(offset);"),t.pushCode(p+" = "+r+".result; offset = "+r+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}},e.prototype.generateFormatter=function(e,t,p){if("function"==typeof p){var r=e.addImport(p);e.pushCode(t+" = "+r+".call(this, "+t+");")}},e.prototype.generatePointer=function(t){var p=this.options.type,r=t.generateOption(this.options.offset),a=t.generateTmpVariable(),l=t.generateVariable(this.varName);if(t.pushCode("var "+a+" = offset;"),t.pushCode("offset = "+r+";"),this.options.type instanceof e)t.pushCode(l+" = {};"),t.pushPath(this.varName),this.options.type.generate(t),t.popPath(this.varName);else if(o[this.options.type]){var c=t.generateTmpVariable();t.pushCode("var "+c+" = ___parser_"+this.options.type+"(offset);"),t.pushCode(l+" = "+c+".result; offset = "+c+".offset;"),this.options.type!==this.alias&&t.addReference(this.options.type)}else if(Object.keys(i).indexOf(this.options.type)>=0){var u=s[p],y=n[p];t.pushCode(l+" = dataView.get"+u+"(offset, "+y+");"),t.pushCode("offset += "+i[p]+";")}t.pushCode("offset = "+a+";")},e.prototype.generateSaveOffset=function(e){var t=e.generateVariable(this.varName);e.pushCode(t+" = offset")},e}();t.Parser=a},function(e,t,p){(function(e,r){var o=/%[sdj%]/g;t.format=function(e){if(!S(e)){for(var t=[],p=0;p=i)return e;switch(e){case"%s":return String(r[p++]);case"%d":return Number(r[p++]);case"%j":try{return JSON.stringify(r[p++])}catch(e){return"[Circular]"}default:return e}})),a=r[p];p=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),f(p)?r.showHidden=p:p&&t._extend(r,p),g(r.showHidden)&&(r.showHidden=!1),g(r.depth)&&(r.depth=2),g(r.colors)&&(r.colors=!1),g(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=a),c(r,e,r.depth)}function a(e,t){var p=n.styles[t];return p?"["+n.colors[p][0]+"m"+e+"["+n.colors[p][1]+"m":e}function l(e,t){return e}function c(e,p,r){if(e.customInspect&&p&&I(p.inspect)&&p.inspect!==t.inspect&&(!p.constructor||p.constructor.prototype!==p)){var o=p.inspect(r,e);return S(o)||(o=c(e,o,r)),o}var i=function(e,t){if(g(t))return e.stylize("undefined","undefined");if(S(t)){var p="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(p,"string")}if(_(t))return e.stylize(""+t,"number");if(f(t))return e.stylize(""+t,"boolean");if(d(t))return e.stylize("null","null")}(e,p);if(i)return i;var s=Object.keys(p),n=function(e){var t={};return e.forEach((function(e,p){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(p)),b(p)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return u(p);if(0===s.length){if(I(p)){var a=p.name?": "+p.name:"";return e.stylize("[Function"+a+"]","special")}if(w(p))return e.stylize(RegExp.prototype.toString.call(p),"regexp");if(m(p))return e.stylize(Date.prototype.toString.call(p),"date");if(b(p))return u(p)}var l,E="",L=!1,T=["{","}"];(h(p)&&(L=!0,T=["[","]"]),I(p))&&(E=" [Function"+(p.name?": "+p.name:"")+"]");return w(p)&&(E=" "+RegExp.prototype.toString.call(p)),m(p)&&(E=" "+Date.prototype.toUTCString.call(p)),b(p)&&(E=" "+u(p)),0!==s.length||L&&0!=p.length?r<0?w(p)?e.stylize(RegExp.prototype.toString.call(p),"regexp"):e.stylize("[Object]","special"):(e.seen.push(p),l=L?function(e,t,p,r,o){for(var i=[],s=0,n=t.length;s=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return p[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+p[1];return p[0]+t+" "+e.join(", ")+" "+p[1]}(l,E,T)):T[0]+E+T[1]}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function y(e,t,p,r,o,i){var s,n,a;if((a=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?n=a.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):a.set&&(n=e.stylize("[Setter]","special")),M(r,o)||(s="["+o+"]"),n||(e.seen.indexOf(a.value)<0?(n=d(p)?c(e,a.value,null):c(e,a.value,p-1)).indexOf("\n")>-1&&(n=i?n.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+n.split("\n").map((function(e){return" "+e})).join("\n")):n=e.stylize("[Circular]","special")),g(s)){if(i&&o.match(/^\d+$/))return n;(s=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+n}function h(e){return Array.isArray(e)}function f(e){return"boolean"==typeof e}function d(e){return null===e}function _(e){return"number"==typeof e}function S(e){return"string"==typeof e}function g(e){return void 0===e}function w(e){return E(e)&&"[object RegExp]"===L(e)}function E(e){return"object"==typeof e&&null!==e}function m(e){return E(e)&&"[object Date]"===L(e)}function b(e){return E(e)&&("[object Error]"===L(e)||e instanceof Error)}function I(e){return"function"==typeof e}function L(e){return Object.prototype.toString.call(e)}function T(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(g(i)&&(i=r.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(i)){var p=r.pid;s[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,p,r)}}else s[e]=function(){};return s[e]},t.inspect=n,n.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},n.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=f,t.isNull=d,t.isNullOrUndefined=function(e){return null==e},t.isNumber=_,t.isString=S,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=g,t.isRegExp=w,t.isObject=E,t.isDate=m,t.isError=b,t.isFunction=I,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=p(29);var v=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function U(){var e=new Date,t=[T(e.getHours()),T(e.getMinutes()),T(e.getSeconds())].join(":");return[e.getDate(),v[e.getMonth()],t].join(" ")}function M(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){console.log("%s - %s",U(),t.format.apply(t,arguments))},t.inherits=p(6),t._extend=function(e,t){if(!t||!E(t))return e;for(var p=Object.keys(t),r=p.length;r--;)e[p[r]]=t[p[r]];return e}}).call(this,p(5),p(9))},function(e,t,p){"use strict";(function(t,r){var o=p(11);e.exports=w;var i,s=p(16);w.ReadableState=g;p(13).EventEmitter;var n=function(e,t){return e.listeners(t).length},a=p(20),l=p(12).Buffer,c=t.Uint8Array||function(){};var u=p(10);u.inherits=p(6);var y=p(32),h=void 0;h=y&&y.debuglog?y.debuglog("stream"):function(){};var f,d=p(33),_=p(21);u.inherits(w,a);var S=["error","close","destroy","pause","resume"];function g(e,t){e=e||{};var r=t instanceof(i=i||p(7));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var o=e.highWaterMark,s=e.readableHighWaterMark,n=this.objectMode?16:16384;this.highWaterMark=o||0===o?o:r&&(s||0===s)?s:n,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new d,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(f||(f=p(22).StringDecoder),this.decoder=new f(e.encoding),this.encoding=e.encoding)}function w(e){if(i=i||p(7),!(this instanceof w))return new w(e);this._readableState=new g(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),a.call(this)}function E(e,t,p,r,o){var i,s=e._readableState;null===t?(s.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var p=t.decoder.end();p&&p.length&&(t.buffer.push(p),t.length+=t.objectMode?1:p.length)}t.ended=!0,I(e)}(e,s)):(o||(i=function(e,t){var p;r=t,l.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(p=new TypeError("Invalid non-string/buffer chunk"));var r;return p}(s,t)),i?e.emit("error",i):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===l.prototype||(t=function(e){return l.from(e)}(t)),r?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):m(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!p?(t=s.decoder.write(t),s.objectMode||0!==t.length?m(e,s,t,!1):T(e,s)):m(e,s,t,!1))):r||(s.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.lengtht.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function I(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?o.nextTick(L,e):L(e))}function L(e){h("emit readable"),e.emit("readable"),D(e)}function T(e,t){t.readingMore||(t.readingMore=!0,o.nextTick(v,e,t))}function v(e,t){for(var p=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(p=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):p=function(e,t,p){var r;ei.length?i.length:e;if(s===i.length?o+=i:o+=i.slice(0,e),0===(e-=s)){s===i.length?(++r,p.next?t.head=p.next:t.head=t.tail=null):(t.head=p,p.data=i.slice(s));break}++r}return t.length-=r,o}(e,t):function(e,t){var p=l.allocUnsafe(e),r=t.head,o=1;r.data.copy(p),e-=r.data.length;for(;r=r.next;){var i=r.data,s=e>i.length?i.length:e;if(i.copy(p,p.length-e,0,s),0===(e-=s)){s===i.length?(++o,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=i.slice(s));break}++o}return t.length-=o,p}(e,t);return r}(e,t.buffer,t.decoder),p);var p}function G(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,o.nextTick(A,t,e))}function A(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function C(e,t){for(var p=0,r=e.length;p=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?G(this):I(this),null;if(0===(e=b(e,t))&&t.ended)return 0===t.length&&G(this),null;var r,o=t.needReadable;return h("need readable",o),(0===t.length||t.length-e0?O(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),p!==e&&t.ended&&G(this)),null!==r&&this.emit("data",r),r},w.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},w.prototype.pipe=function(e,t){var p=this,i=this._readableState;switch(i.pipesCount){case 0:i.pipes=e;break;case 1:i.pipes=[i.pipes,e];break;default:i.pipes.push(e)}i.pipesCount+=1,h("pipe count=%d opts=%j",i.pipesCount,t);var a=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?c:w;function l(t,r){h("onunpipe"),t===p&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",S),e.removeListener("finish",g),e.removeListener("drain",u),e.removeListener("error",_),e.removeListener("unpipe",l),p.removeListener("end",c),p.removeListener("end",w),p.removeListener("data",d),y=!0,!i.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){h("onend"),e.end()}i.endEmitted?o.nextTick(a):p.once("end",a),e.on("unpipe",l);var u=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&n(e,"data")&&(t.flowing=!0,D(e))}}(p);e.on("drain",u);var y=!1;var f=!1;function d(t){h("ondata"),f=!1,!1!==e.write(t)||f||((1===i.pipesCount&&i.pipes===e||i.pipesCount>1&&-1!==C(i.pipes,e))&&!y&&(h("false write response, pause",p._readableState.awaitDrain),p._readableState.awaitDrain++,f=!0),p.pause())}function _(t){h("onerror",t),w(),e.removeListener("error",_),0===n(e,"error")&&e.emit("error",t)}function S(){e.removeListener("finish",g),w()}function g(){h("onfinish"),e.removeListener("close",S),w()}function w(){h("unpipe"),p.unpipe(e)}return p.on("data",d),function(e,t,p){if("function"==typeof e.prependListener)return e.prependListener(t,p);e._events&&e._events[t]?s(e._events[t])?e._events[t].unshift(p):e._events[t]=[p,e._events[t]]:e.on(t,p)}(e,"error",_),e.once("close",S),e.once("finish",g),e.emit("pipe",p),i.flowing||(h("pipe resume"),p.resume()),e},w.prototype.unpipe=function(e){var t=this._readableState,p={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,p)),this;if(!e){var r=t.pipes,o=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function n(e){var t=this.lastTotal-this.lastNeed,p=function(e,t,p){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==p?p:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var p=e.toString("utf16le",t);if(p){var r=p.charCodeAt(p.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],p.slice(0,-1)}return p}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var p=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,p)}return t}function c(e,t){var p=(e.length-t)%3;return 0===p?e.toString("base64",t):(this.lastNeed=3-p,this.lastTotal=3,1===p?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-p))}function u(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function y(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=i,i.prototype.write=function(e){if(0===e.length)return"";var t,p;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";p=this.lastNeed,this.lastNeed=0}else p=0;return p=0)return o>0&&(e.lastNeed=o-1),o;if(--r=0)return o>0&&(e.lastNeed=o-2),o;if(--r=0)return o>0&&(2===o?o=0:e.lastNeed=o-3),o;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=p;var r=e.length-(p-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},i.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,p){"use strict";e.exports=s;var r=p(7),o=p(10);function i(e,t){var p=this._transformState;p.transforming=!1;var r=p.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));p.writechunk=null,p.writecb=null,null!=t&&this.push(t),r(e);var o=this._readableState;o.reading=!1,(o.needReadable||o.length>8&255^255&p],t&=65535;return t}r.exports={preambleByte:85,crc16:S,sbpIdTable:h,sbpMessageTypesTable:f,decode:function(e){var t=d.parse(e),p=h[t.msg_type];return void 0===p?(console.log("Unknown message type: ",t.msg_type),new s(t)):new p(t)},dispatch:function(t,p,o){var i,s,n=new e(0);if(void 0===o&&"function"==typeof p?i=p:(i=o,s=p),s&&!Array.isArray(s)&&-1===["function","number"].indexOf(typeof s))throw l("dispatch: messageWhitelist must be function, number, or array");var a=function(p){t.pause();try{if((n=e.concat([n,p])).length<2)return;var o=function(){var e,t,p,o,i,a,l;for(l=0;ln.length)throw new c;e=n.slice(l+1,l+6),p=n.readUInt16LE(l+1),_=n.readUInt16LE(l+3),o=n.readUInt8(l+5);var y=s&&Array.isArray(s)&&-1!==s.indexOf(p),h=s&&"number"==typeof s&&s&p,f=s&&"function"==typeof s&&s(p);if(s&&!(y||h||f))return n=n.slice(l+6+o+2),null;if(l+8+o>n.length)throw new c;a=S(n.slice(l+6,l+6+o),S(e)),i=n.readUInt16LE(l+6+o);var d=n.slice(l,l+6+o+2);if(i===a)return n=n.slice(l+6+o+2),[r.exports.decode(d),d];throw n=n.slice(l+1),new u}();if(null===o)return;var l=o[0],y=o[1];i(null,l,y)}catch(e){if(!(e instanceof c||e instanceof u))throw e}finally{t.resume(),n.length>0&&setTimeout((function(){a(new e(0))}),0)}};t.on("data",a)}},function(e){var p={function:!0,object:!0},i=p[typeof window]&&window||this,s=p[typeof t]&&t&&!t.nodeType&&t,n=p[typeof r]&&r&&!r.nodeType&&r,a=s&&n&&"object"==typeof o&&o;!a||a.global!==a&&a.window!==a&&a.self!==a||(i=a),i.SBP=e}(r.exports)}).call(this,p(8).Buffer,p(27)(e),p(5))},function(e,t,p){"use strict";t.byteLength=function(e){var t=l(e),p=t[0],r=t[1];return 3*(p+r)/4-r},t.toByteArray=function(e){for(var t,p=l(e),r=p[0],s=p[1],n=new i(function(e,t,p){return 3*(t+p)/4-p}(0,r,s)),a=0,c=s>0?r-4:r,u=0;u>16&255,n[a++]=t>>8&255,n[a++]=255&t;2===s&&(t=o[e.charCodeAt(u)]<<2|o[e.charCodeAt(u+1)]>>4,n[a++]=255&t);1===s&&(t=o[e.charCodeAt(u)]<<10|o[e.charCodeAt(u+1)]<<4|o[e.charCodeAt(u+2)]>>2,n[a++]=t>>8&255,n[a++]=255&t);return n},t.fromByteArray=function(e){for(var t,p=e.length,o=p%3,i=[],s=0,n=p-o;sn?n:s+16383));1===o?(t=e[p-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[p-2]<<8)+e[p-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=0,a=s.length;n0)throw new Error("Invalid string. Length must be a multiple of 4");var p=e.indexOf("=");return-1===p&&(p=t),[p,p===t?0:4-p%4]}function c(e,t,p){for(var o,i,s=[],n=t;n>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,p,r,o){var i,s,n=8*o-r-1,a=(1<>1,c=-7,u=p?o-1:0,y=p?-1:1,h=e[t+u];for(u+=y,i=h&(1<<-c)-1,h>>=-c,c+=n;c>0;i=256*i+e[t+u],u+=y,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=r;c>0;s=256*s+e[t+u],u+=y,c-=8);if(0===i)i=1-l;else{if(i===a)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,r),i-=l}return(h?-1:1)*s*Math.pow(2,i-r)},t.write=function(e,t,p,r,o,i){var s,n,a,l=8*i-o-1,c=(1<>1,y=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:i-1,f=r?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(n=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(a=Math.pow(2,-s))<1&&(s--,a*=2),(t+=s+u>=1?y/a:y*Math.pow(2,1-u))*a>=2&&(s++,a/=2),s+u>=c?(n=0,s=c):s+u>=1?(n=(t*a-1)*Math.pow(2,o),s+=u):(n=t*Math.pow(2,u-1)*Math.pow(2,o),s=0));o>=8;e[p+h]=255&n,h+=f,n/=256,o-=8);for(s=s<0;e[p+h]=255&s,h+=f,s/=256,l-=8);e[p+h-f]|=128*d}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,p){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var r=function(){function e(e){this.code="",this.scopes=[["vars"]],this.bitFields=[],this.tmpVariableCount=0,this.references={},this.imports=[],this.reverseImports=new Map,this.importPath=e}return e.prototype.generateVariable=function(e){var t=[],p=this.scopes[this.scopes.length-1];return t.push.apply(t,p),e&&t.push(e),t.join(".")},e.prototype.generateOption=function(e){switch(typeof e){case"number":return e.toString();case"string":return this.generateVariable(e);case"function":return this.addImport(e)+".call("+this.generateVariable()+", vars)"}},e.prototype.generateError=function(e){this.pushCode("throw new Error("+e+");")},e.prototype.generateTmpVariable=function(){return"$tmp"+this.tmpVariableCount++},e.prototype.pushCode=function(e){this.code+=e+"\n"},e.prototype.pushPath=function(e){e&&this.scopes[this.scopes.length-1].push(e)},e.prototype.popPath=function(e){e&&this.scopes[this.scopes.length-1].pop()},e.prototype.pushScope=function(e){this.scopes.push([e])},e.prototype.popScope=function(){this.scopes.pop()},e.prototype.addImport=function(e){if(!this.importPath)return"("+e+")";var t=this.reverseImports.get(e);return t||(t=this.imports.push(e)-1,this.reverseImports.set(e,t)),this.importPath+"["+t+"]"},e.prototype.addReference=function(e){this.references[e]||(this.references[e]={resolved:!1,requested:!1})},e.prototype.markResolved=function(e){this.references[e].resolved=!0},e.prototype.markRequested=function(e){var t=this;e.forEach((function(e){t.references[e].requested=!0}))},e.prototype.getUnresolvedReferences=function(){var e=this.references;return Object.keys(this.references).filter((function(t){return!e[t].resolved&&!e[t].requested}))},e}();t.Context=r},function(e,t){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,p){(function(e){function p(e,t){for(var p=0,r=e.length-1;r>=0;r--){var o=e[r];"."===o?e.splice(r,1):".."===o?(e.splice(r,1),p++):p&&(e.splice(r,1),p--)}if(t)for(;p--;p)e.unshift("..");return e}var r=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,o=function(e){return r.exec(e).slice(1)};function i(e,t){if(e.filter)return e.filter(t);for(var p=[],r=0;r=-1&&!r;o--){var s=o>=0?arguments[o]:e.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(t=s+"/"+t,r="/"===s.charAt(0))}return(r?"/":"")+(t=p(i(t.split("/"),(function(e){return!!e})),!r).join("/"))||"."},t.normalize=function(e){var r=t.isAbsolute(e),o="/"===s(e,-1);return(e=p(i(e.split("/"),(function(e){return!!e})),!r).join("/"))||r||(e="."),e&&o&&(e+="/"),(r?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(i(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,p){function r(e){for(var t=0;t=0&&""===e[p];p--);return t>p?[]:e.slice(t,p-t+1)}e=t.resolve(e).substr(1),p=t.resolve(p).substr(1);for(var o=r(e.split("/")),i=r(p.split("/")),s=Math.min(o.length,i.length),n=s,a=0;a0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,p=""+t.data;t=t.next;)p+=e+t.data;return p},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t=r.allocUnsafe(e>>>0),p=this.head,o=0;p;)i(p.data,t,o),o+=p.data.length,p=p.next;return t},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,p){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},p(36),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,p(5))},function(e,t,p){(function(e,t){!function(e,p){"use strict";if(!e.setImmediate){var r,o,i,s,n,a=1,l={},c=!1,u=e.document,y=Object.getPrototypeOf&&Object.getPrototypeOf(e);y=y&&y.setTimeout?y:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){f(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,p=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=p,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){f(e.data)},r=function(e){i.port2.postMessage(e)}):u&&"onreadystatechange"in u.createElement("script")?(o=u.documentElement,r=function(e){var t=u.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(f,0,e)}:(s="setImmediate$"+Math.random()+"$",n=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&f(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",n,!1):e.attachEvent("onmessage",n),r=function(t){e.postMessage(s+t,"*")}),y.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),p=0;p * @license MIT */ -function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return f(d(e.actual),128)+" "+e.operator+" "+f(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=h(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},o.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new o(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new o(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},o.prototype.shiftLeft=o.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.rotateRight=o.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},s.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new s(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new s(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},s.prototype.shiftLeft=s.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.rotateRight=s.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);var u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);var y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",h.prototype.msg_type=46,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",f.prototype.msg_type=30,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:h,MsgAcqSvProfile:h,30:f,MsgAcqSvProfileDep:f}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];var s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];var l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",h.prototype.msg_type=4098,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),h.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:h,MsgFileioConfigResp:h}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];var h=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",h.prototype.msg_type=229,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);var f=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",f.prototype.msg_type=243,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:h,MsgStmUniqueIdResp:h,243:f,MsgM25FlashWriteStatus:f}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").array("reserved",{length:6,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},6]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",l.prototype.msg_type=3005,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["const_id","writeUInt8",1]),l.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",c.prototype.msg_type=3011,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",u.prototype.msg_type=3015,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",y.prototype.msg_type=3021,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",h.prototype.msg_type=3025,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),h.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),h.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),h.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:h,MsgSsrFlagIonoGridPointSatLos:h}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",h.prototype.msg_type=32520,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);var f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",f.prototype.msg_type=32521,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pmem","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);var d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:h,MsgLinuxCpuState:h,32521:f,MsgLinuxMemState:f,32522:d,MsgLinuxSysState:d}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",h.prototype.msg_type=529,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),h.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),h.prototype.fieldSpec.push(["height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);var f=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),f.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),f.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);var d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:f.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",f.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);var _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);var S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);var g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);var w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);var E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);var m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);var b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);var I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);var v=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",v.prototype.msg_type=554,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),v.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),v.prototype.fieldSpec.push(["height","writeDoubleLE",8]),v.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),v.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);var L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",L.prototype.msg_type=561,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),L.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),L.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),L.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),L.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),L.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);var T=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",T.prototype.msg_type=557,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["x","writeInt32LE",4]),T.prototype.fieldSpec.push(["y","writeInt32LE",4]),T.prototype.fieldSpec.push(["z","writeInt32LE",4]),T.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);var U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",U.prototype.msg_type=565,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);var M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);var D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);var O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);var G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);var A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["age","writeUInt16LE",2]);var C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);var R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);var P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);var N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);var j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]);var x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);var k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",k.prototype.msg_type=516,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["x","writeInt32LE",4]),k.prototype.fieldSpec.push(["y","writeInt32LE",4]),k.prototype.fieldSpec.push(["z","writeInt32LE",4]),k.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);var F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",F.prototype.msg_type=517,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["n","writeInt32LE",4]),F.prototype.fieldSpec.push(["e","writeInt32LE",4]),F.prototype.fieldSpec.push(["d","writeInt32LE",4]),F.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);var B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);var q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);var z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var H=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_GPS_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").int16("bias_coeff").int16("drift_coeff").int8("drift_rate_coeff").int8("count_before").uint16("tow_s").uint16("wn").uint16("ref_wn").uint8("ref_dn").int8("count_after"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["bias_coeff","writeInt16LE",2]),H.prototype.fieldSpec.push(["drift_coeff","writeInt16LE",2]),H.prototype.fieldSpec.push(["drift_rate_coeff","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["tow_s","writeUInt16LE",2]),H.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);var V=function(e,t){return r.call(this,e),this.messageType="MSG_ITRF",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_ITRF",V.prototype.msg_type=580,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("ssr_iod").uint8("sn_counter_n").string("sn",{length:31}).uint8("tn_counter_m").string("tn",{length:31}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn_counter_n","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",31]),V.prototype.fieldSpec.push(["tn_counter_m","writeUInt8",1]),V.prototype.fieldSpec.push(["tn","string",31]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:h,MsgPosLlhCov:h,EstimatedHorizontalErrorEllipse:f,536:d,MsgPosLlhAcc:d,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:v,MsgPosLlhGnss:v,561:L,MsgPosLlhCovGnss:L,557:T,MsgVelEcefGnss:T,565:U,MsgVelEcefCovGnss:U,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,515:x,MsgBaselineNedDepA:x,516:k,MsgVelEcefDepA:k,517:F,MsgVelNedDepA:F,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:H,MsgGpsLeapSecond:H,580:V,MsgItrf:V}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);var h=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedObsContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var f=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),f.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);var d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);var S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);var g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",v.prototype.msg_type=142,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeFloatLE",4]),v.prototype.fieldSpec.push(["af1","writeFloatLE",4]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt8",1]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",L.prototype.msg_type=137,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),L.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",T.prototype.msg_type=149,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),T.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);var U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",U.prototype.msg_type=141,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),U.prototype.fieldSpec.push(["source","writeUInt8",1]);var M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);var D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);var O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);var G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);var A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);var C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);var R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.prototype.fieldSpec.push(["iod","writeUInt8",1]);var P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);var N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.prototype.fieldSpec.push(["prn","writeUInt8",1]);var x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);var k=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",k.prototype.msg_type=71,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),k.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),k.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),k.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),k.prototype.fieldSpec.push(["w","writeDoubleLE",8]),k.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),k.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),k.prototype.fieldSpec.push(["valid","writeUInt8",1]),k.prototype.fieldSpec.push(["healthy","writeUInt8",1]),k.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),k.prototype.fieldSpec.push(["iode","writeUInt8",1]),k.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),k.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);var F=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),F.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);var B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);var q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);var z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);var H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);var V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);var W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);var Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);var K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);var X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);var J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);var Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);var $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);var ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);var te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);var re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);var oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);var ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);var se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);var ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);var ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);var le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);var ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:h,PackedOsrContent:f,74:d,MsgObs:d,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:v,MsgEphemerisQzss:v,137:L,MsgEphemerisBds:L,149:T,MsgEphemerisGalDepA:T,141:U,MsgEphemerisGal:U,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:k,MsgEphemerisDepC:k,ObservationHeaderDep:F,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];var c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];var u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];var h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",h.prototype.msg_type=192,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];var f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",f.prototype.msg_type=193,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];var d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["filter","writeUInt8",1]);var _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];var S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);var g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);var w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);var E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);var m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);var b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);var I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);var v=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",v.prototype.msg_type=43,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["mask","writeUInt8",1]),v.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);var L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",L.prototype.msg_type=27,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);var T=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",T.prototype.msg_type=181,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),T.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),T.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);var U=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",U.prototype.msg_type=184,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["command","string",null]);var M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);var D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);var O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];var G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]);var C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);var R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);var P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);var N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);var j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:h,MsgCwResults:h,193:f,MsgCwStart:f,34:d,MsgResetFilters:d,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:v,MsgMaskSatellite:v,27:L,MsgMaskSatelliteDep:L,181:T,MsgDeviceMonitor:T,184:U,MsgCommandReq:U,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];var s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);var a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);var c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];var h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",h.prototype.msg_type=174,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["setting","string",null]);var f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",f.prototype.msg_type=431,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","writeUInt8",1]),f.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:h,MsgSettingsRegister:h,431:f,MsgSettingsRegisterResp:f}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);var a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);var l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);var c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);var l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);var c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);var u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);var y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);var h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]);var f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]),f.prototype.fieldSpec.push(["stddev","writeUInt8",1]);var d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.prototype.fieldSpec.push(["residual","writeInt16LE",2]);var _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);var S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);var w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);var E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);var b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);var I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);var v=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),v.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),v.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),v.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),v.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);var L=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",L.prototype.msg_type=1534,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:f.prototype.parser}).uint8("tropo_bound_mu").uint8("tropo_bound_sig").uint8("n_sats").array("stec_sat_list",{type:v.prototype.parser,length:"n_sats"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),L.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),L.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),L.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),L.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),L.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),L.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tropo_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["tropo_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_sat_list","array",v.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);var T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP",T.prototype.msg_type=1526,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),T.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),T.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),T.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),T.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),T.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),T.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);var U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",U.prototype.msg_type=1527,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);var M=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),M.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),M.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),M.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),M.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);var D=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",D.prototype.msg_type=1540,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").array("apc",{type:M.prototype.parser,readUntil:"eof"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);var O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",O.prototype.msg_type=1500,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),O.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),O.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),O.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),O.prototype.fieldSpec.push(["iod","writeUInt8",1]),O.prototype.fieldSpec.push(["radial","writeInt32LE",4]),O.prototype.fieldSpec.push(["along","writeInt32LE",4]),O.prototype.fieldSpec.push(["cross","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),O.prototype.fieldSpec.push(["c0","writeInt32LE",4]),O.prototype.fieldSpec.push(["c1","writeInt32LE",4]),O.prototype.fieldSpec.push(["c2","writeInt32LE",4]);var G=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),G.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);var A=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),A.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),A.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);var C=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),C.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),C.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),C.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);var R=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",R.prototype.msg_type=1515,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("header",{type:G.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["header",G.prototype.fieldSpec]),R.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var P=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",P.prototype.msg_type=1520,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("header",{type:A.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["header",A.prototype.fieldSpec]),P.prototype.fieldSpec.push(["index","writeUInt16LE",2]),P.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),P.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);var N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",N.prototype.msg_type=1530,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:A.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",A.prototype.fieldSpec]),N.prototype.fieldSpec.push(["index","writeUInt16LE",2]),N.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);var j=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",j.prototype.msg_type=1525,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),j.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);var x=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);var k=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",k.prototype.msg_type=1502,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:x.prototype.parser,length:"n_sats"}),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),k.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),k.prototype.fieldSpec.push(["const_id","writeUInt8",1]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["orbit_clock_bounds","array",x.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);var F=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),F.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),F.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),F.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),F.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),F.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);var B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",B.prototype.msg_type=1516,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:F.prototype.parser,length:"n_sats_signals"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),B.prototype.fieldSpec.push(["satellites_signals","array",F.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);var q=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);var z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",z.prototype.msg_type=1503,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:q.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),z.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",q.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:h,TroposphericDelayCorrection:f,STECResidualNoStd:d,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:v,1534:L,MsgSsrGriddedCorrectionBounds:L,1526:T,MsgSsrTileDefinitionDep:T,1527:U,MsgSsrTileDefinition:U,SatelliteAPC:M,1540:D,MsgSsrSatelliteApc:D,1500:O,MsgSsrOrbitClockDepA:O,STECHeaderDepA:G,GriddedCorrectionHeaderDepA:A,GridDefinitionHeaderDepA:C,1515:R,MsgSsrStecCorrectionDepA:R,1520:P,MsgSsrGriddedCorrectionNoStdDepA:P,1530:N,MsgSsrGriddedCorrectionDepA:N,1525:j,MsgSsrGridDefinitionDepA:j,OrbitClockBound:x,1502:k,MsgSsrOrbitClockBounds:k,CodePhaseBiasesSatSig:F,1516:B,MsgSsrCodePhaseBiasesBounds:B,OrbitClockBoundDegradation:q,1503:z,MsgSsrOrbitClockBoundsDegradation:z}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);var n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);var l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);var c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);var y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",h.prototype.msg_type=65284,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry","string",null]);var f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",f.prototype.msg_type=65285,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry_labels","string",null]);var d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);var _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);var S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);var g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);var w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:h,MsgCsacTelemetry:h,65285:f,MsgCsacTelemetryLabels:f,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);var u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);var y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var h=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",h.prototype.msg_type=65,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);var f=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MeasurementState",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]);var d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);var _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);var S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);var g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);var w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);var m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);var b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);var I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);var v=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",v.prototype.msg_type=19,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:h,MsgTrackingState:h,MeasurementState:f,97:d,MsgMeasurementState:d,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:v,MsgTrackingStateDepB:v}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},function(e,t,p){var r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);var s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}}]); \ No newline at end of file +function r(e,t){if(e===t)return 0;for(var p=e.length,r=t.length,o=0,i=Math.min(p,r);o=0;l--)if(c[l]!==u[l])return!1;for(l=c.length-1;l>=0;l--)if(a=c[l],!g(e[a],t[a],p,r))return!1;return!0}(e,t,p,s))}return p?e===t:e==t}function w(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function E(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function m(e,t,p,r){var o;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof p&&(r=p,p=null),o=function(e){var t;try{e()}catch(e){t=e}return t}(t),r=(p&&p.name?" ("+p.name+").":".")+(r?" "+r:"."),e&&!o&&_(o,p,"Missing expected exception"+r);var s="string"==typeof r,n=!e&&o&&!p;if((!e&&i.isError(o)&&s&&E(o,p)||n)&&_(o,p,"Got unwanted exception"+r),e&&o&&p&&!E(o,p)||!e&&o)throw o}u.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return f(d(e.actual),128)+" "+e.operator+" "+f(d(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||_;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var p=new Error;if(p.stack){var r=p.stack,o=h(t),i=r.indexOf("\n"+o);if(i>=0){var s=r.indexOf("\n",i+1);r=r.substring(s+1)}this.stack=r}}},i.inherits(u.AssertionError,Error),u.fail=_,u.ok=S,u.equal=function(e,t,p){e!=t&&_(e,t,p,"==",u.equal)},u.notEqual=function(e,t,p){e==t&&_(e,t,p,"!=",u.notEqual)},u.deepEqual=function(e,t,p){g(e,t,!1)||_(e,t,p,"deepEqual",u.deepEqual)},u.deepStrictEqual=function(e,t,p){g(e,t,!0)||_(e,t,p,"deepStrictEqual",u.deepStrictEqual)},u.notDeepEqual=function(e,t,p){g(e,t,!1)&&_(e,t,p,"notDeepEqual",u.notDeepEqual)},u.notDeepStrictEqual=function e(t,p,r){g(t,p,!0)&&_(t,p,r,"notDeepStrictEqual",e)},u.strictEqual=function(e,t,p){e!==t&&_(e,t,p,"===",u.strictEqual)},u.notStrictEqual=function(e,t,p){e===t&&_(e,t,p,"!==",u.notStrictEqual)},u.throws=function(e,t,p){m(!0,e,t,p)},u.doesNotThrow=function(e,t,p){m(!1,e,t,p)},u.ifError=function(e){if(e)throw e};var b=Object.keys||function(e){var t=[];for(var p in e)s.call(e,p)&&t.push(p);return t}}).call(this,p(5))},function(e,t,p){var r;!function(p){o(Math.pow(36,5)),o(Math.pow(16,7)),o(Math.pow(10,9)),o(Math.pow(2,30)),o(36),o(16),o(10),o(2);function o(e,t){return this instanceof o?(this._low=0,this._high=0,this.remainder=null,void 0===t?s.call(this,e):"string"==typeof e?n.call(this,e,t):void i.call(this,e,t)):new o(e,t)}function i(e,t){return this._low=0|e,this._high=0|t,this}function s(e){return this._low=65535&e,this._high=e>>>16,this}function n(e,t){var p=parseInt(e,t||10);return this._low=65535&p,this._high=p>>>16,this}o.prototype.fromBits=i,o.prototype.fromNumber=s,o.prototype.fromString=n,o.prototype.toNumber=function(){return 65536*this._high+this._low},o.prototype.toString=function(e){return this.toNumber().toString(e||10)},o.prototype.add=function(e){var t=this._low+e._low,p=t>>>16;return p+=this._high+e._high,this._low=65535&t,this._high=65535&p,this},o.prototype.subtract=function(e){return this.add(e.clone().negate())},o.prototype.multiply=function(e){var t,p,r=this._high,o=this._low,i=e._high,s=e._low;return t=(p=o*s)>>>16,t+=r*s,t&=65535,t+=o*i,this._low=65535&p,this._high=65535&t,this},o.prototype.div=function(e){if(0==e._low&&0==e._high)throw Error("division by zero");if(0==e._high&&1==e._low)return this.remainder=new o(0),this;if(e.gt(this))return this.remainder=this.clone(),this._low=0,this._high=0,this;if(this.eq(e))return this.remainder=new o(0),this._low=1,this._high=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._low=0,this._high=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=16?this._high|=1<>>16)&65535,this},o.prototype.equals=o.prototype.eq=function(e){return this._low==e._low&&this._high==e._high},o.prototype.greaterThan=o.prototype.gt=function(e){return this._high>e._high||!(this._highe._low},o.prototype.lessThan=o.prototype.lt=function(e){return this._highe._high)&&this._low16?(this._low=this._high>>e-16,this._high=0):16==e?(this._low=this._high,this._high=0):(this._low=this._low>>e|this._high<<16-e&65535,this._high>>=e),this},o.prototype.shiftLeft=o.prototype.shiftl=function(e,t){return e>16?(this._high=this._low<>16-e,this._low=this._low<>>32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.rotateRight=o.prototype.rotr=function(e){var t=this._high<<16|this._low;return t=t>>>e|t<<32-e,this._low=65535&t,this._high=t>>>16,this},o.prototype.clone=function(){return new o(this._low,this._high)},void 0===(r=function(){return o}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){var r;!function(p){var o={16:s(Math.pow(16,5)),10:s(Math.pow(10,5)),2:s(Math.pow(2,5))},i={16:s(16),10:s(10),2:s(2)};function s(e,t,p,r){return this instanceof s?(this.remainder=null,"string"==typeof e?l.call(this,e,t):void 0===t?a.call(this,e):void n.apply(this,arguments)):new s(e,t,p,r)}function n(e,t,p,r){return void 0===p?(this._a00=65535&e,this._a16=e>>>16,this._a32=65535&t,this._a48=t>>>16,this):(this._a00=0|e,this._a16=0|t,this._a32=0|p,this._a48=0|r,this)}function a(e){return this._a00=65535&e,this._a16=e>>>16,this._a32=0,this._a48=0,this}function l(e,t){t=t||10,this._a00=0,this._a16=0,this._a32=0,this._a48=0;for(var p=o[t]||new s(Math.pow(t,5)),r=0,i=e.length;r=0&&(p.div(t),r[o]=p.remainder.toNumber().toString(e),p.gt(t));o--);return r[o-1]=p.toNumber().toString(e),r.join("")},s.prototype.add=function(e){var t=this._a00+e._a00,p=t>>>16,r=(p+=this._a16+e._a16)>>>16,o=(r+=this._a32+e._a32)>>>16;return o+=this._a48+e._a48,this._a00=65535&t,this._a16=65535&p,this._a32=65535&r,this._a48=65535&o,this},s.prototype.subtract=function(e){return this.add(e.clone().negate())},s.prototype.multiply=function(e){var t=this._a00,p=this._a16,r=this._a32,o=this._a48,i=e._a00,s=e._a16,n=e._a32,a=t*i,l=a>>>16,c=(l+=t*s)>>>16;l&=65535,c+=(l+=p*i)>>>16;var u=(c+=t*n)>>>16;return c&=65535,u+=(c+=p*s)>>>16,c&=65535,u+=(c+=r*i)>>>16,u+=t*e._a48,u&=65535,u+=p*n,u&=65535,u+=r*s,u&=65535,u+=o*i,this._a00=65535&a,this._a16=65535&l,this._a32=65535&c,this._a48=65535&u,this},s.prototype.div=function(e){if(0==e._a16&&0==e._a32&&0==e._a48){if(0==e._a00)throw Error("division by zero");if(1==e._a00)return this.remainder=new s(0),this}if(e.gt(this))return this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0,this;if(this.eq(e))return this.remainder=new s(0),this._a00=1,this._a16=0,this._a32=0,this._a48=0,this;for(var t=e.clone(),p=-1;!this.lt(t);)t.shiftLeft(1,!0),p++;for(this.remainder=this.clone(),this._a00=0,this._a16=0,this._a32=0,this._a48=0;p>=0;p--)t.shiftRight(1),this.remainder.lt(t)||(this.remainder.subtract(t),p>=48?this._a48|=1<=32?this._a32|=1<=16?this._a16|=1<>>16),this._a16=65535&e,e=(65535&~this._a32)+(e>>>16),this._a32=65535&e,this._a48=~this._a48+(e>>>16)&65535,this},s.prototype.equals=s.prototype.eq=function(e){return this._a48==e._a48&&this._a00==e._a00&&this._a32==e._a32&&this._a16==e._a16},s.prototype.greaterThan=s.prototype.gt=function(e){return this._a48>e._a48||!(this._a48e._a32||!(this._a32e._a16||!(this._a16e._a00))},s.prototype.lessThan=s.prototype.lt=function(e){return this._a48e._a48)&&(this._a32e._a32)&&(this._a16e._a16)&&this._a00=48?(this._a00=this._a48>>e-48,this._a16=0,this._a32=0,this._a48=0):e>=32?(e-=32,this._a00=65535&(this._a32>>e|this._a48<<16-e),this._a16=this._a48>>e&65535,this._a32=0,this._a48=0):e>=16?(e-=16,this._a00=65535&(this._a16>>e|this._a32<<16-e),this._a16=65535&(this._a32>>e|this._a48<<16-e),this._a32=this._a48>>e&65535,this._a48=0):(this._a00=65535&(this._a00>>e|this._a16<<16-e),this._a16=65535&(this._a16>>e|this._a32<<16-e),this._a32=65535&(this._a32>>e|this._a48<<16-e),this._a48=this._a48>>e&65535),this},s.prototype.shiftLeft=s.prototype.shiftl=function(e,t){return(e%=64)>=48?(this._a48=this._a00<=32?(e-=32,this._a48=this._a16<>16-e,this._a32=this._a00<=16?(e-=16,this._a48=this._a32<>16-e,this._a32=65535&(this._a16<>16-e),this._a16=this._a00<>16-e,this._a32=65535&(this._a32<>16-e),this._a16=65535&(this._a16<>16-e),this._a00=this._a00<=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p<>>32-e,i=r<>>32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.rotateRight=s.prototype.rotr=function(e){if(0==(e%=64))return this;if(e>=32){var t=this._a00;if(this._a00=this._a32,this._a32=t,t=this._a48,this._a48=this._a16,this._a16=t,32==e)return this;e-=32}var p=this._a48<<16|this._a32,r=this._a16<<16|this._a00,o=p>>>e|r<<32-e,i=r>>>e|p<<32-e;return this._a00=65535&i,this._a16=i>>>16,this._a32=65535&o,this._a48=o>>>16,this},s.prototype.clone=function(){return new s(this._a00,this._a16,this._a32,this._a48)},void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=(p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT",this.fields=t||this.parser.parse(e.payload),this});(n.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT",n.prototype.msg_type=47,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:i.prototype.parser}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),n.prototype.fieldSpec.push(["cp","writeFloatLE",4]),n.prototype.fieldSpec.push(["cf","writeFloatLE",4]),n.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_C",a.prototype.msg_type=31,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").floatle("cn0").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["cn0","writeFloatLE",4]),a.prototype.fieldSpec.push(["cp","writeFloatLE",4]),a.prototype.fieldSpec.push(["cf","writeFloatLE",4]),a.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_B",l.prototype.msg_type=20,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").nest("sid",{type:s.prototype.parser}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["snr","writeFloatLE",4]),l.prototype.fieldSpec.push(["cp","writeFloatLE",4]),l.prototype.fieldSpec.push(["cf","writeFloatLE",4]),l.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_RESULT_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_RESULT_DEP_A",c.prototype.msg_type=21,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").floatle("snr").floatle("cp").floatle("cf").uint8("prn"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["snr","writeFloatLE",4]),c.prototype.fieldSpec.push(["cp","writeFloatLE",4]),c.prototype.fieldSpec.push(["cf","writeFloatLE",4]),c.prototype.fieldSpec.push(["prn","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="AcqSvProfile",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="AcqSvProfile",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:i.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["job_type","writeUInt8",1]),u.prototype.fieldSpec.push(["status","writeUInt8",1]),u.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),u.prototype.fieldSpec.push(["int_time","writeUInt8",1]),u.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),u.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),u.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),u.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),u.prototype.fieldSpec.push(["cf","writeInt32LE",4]),u.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="AcqSvProfileDep",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="AcqSvProfileDep",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint8("job_type").uint8("status").uint16("cn0").uint8("int_time").nest("sid",{type:s.prototype.parser}).uint16("bin_width").uint32("timestamp").uint32("time_spent").int32("cf_min").int32("cf_max").int32("cf").uint32("cp"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["job_type","writeUInt8",1]),y.prototype.fieldSpec.push(["status","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt16LE",2]),y.prototype.fieldSpec.push(["int_time","writeUInt8",1]),y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["bin_width","writeUInt16LE",2]),y.prototype.fieldSpec.push(["timestamp","writeUInt32LE",4]),y.prototype.fieldSpec.push(["time_spent","writeUInt32LE",4]),y.prototype.fieldSpec.push(["cf_min","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf_max","writeInt32LE",4]),y.prototype.fieldSpec.push(["cf","writeInt32LE",4]),y.prototype.fieldSpec.push(["cp","writeUInt32LE",4]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE",h.prototype.msg_type=46,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:u.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["acq_sv_profile","array",u.prototype.fieldSpec,function(){return this.fields.array.length},null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_ACQ_SV_PROFILE_DEP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_ACQ_SV_PROFILE_DEP",f.prototype.msg_type=30,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("acq_sv_profile",{type:y.prototype.parser,readUntil:"eof"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["acq_sv_profile","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={47:n,MsgAcqResult:n,31:a,MsgAcqResultDepC:a,20:l,MsgAcqResultDepB:l,21:c,MsgAcqResultDepA:c,AcqSvProfile:u,AcqSvProfileDep:y,46:h,MsgAcqSvProfile:h,30:f,MsgAcqSvProfileDep:f}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_REQ",i.prototype.msg_type=179,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_RESP",s.prototype.msg_type=180,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("flags").string("version",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt32LE",4]),s.prototype.fieldSpec.push(["version","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_JUMP_TO_APP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_JUMP_TO_APP",n.prototype.msg_type=177,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("jump"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["jump","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_REQ",a.prototype.msg_type=222,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little"),a.prototype.fieldSpec=[];let l=function(e,t){return r.call(this,e),this.messageType="MSG_NAP_DEVICE_DNA_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_NAP_DEVICE_DNA_RESP",l.prototype.msg_type=221,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").array("dna",{length:8,type:"uint8"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["dna","array","writeUInt8",function(){return 1},8]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_BOOTLOADER_HANDSHAKE_DEP_A",c.prototype.msg_type=176,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").array("handshake",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["handshake","array","writeUInt8",function(){return 1},null]),e.exports={179:i,MsgBootloaderHandshakeReq:i,180:s,MsgBootloaderHandshakeResp:s,177:n,MsgBootloaderJumpToApp:n,222:a,MsgNapDeviceDnaReq:a,221:l,MsgNapDeviceDnaResp:l,176:c,MsgBootloaderHandshakeDepA:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_EXT_EVENT",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_EXT_EVENT",i.prototype.msg_type=257,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags").uint8("pin"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]),i.prototype.fieldSpec.push(["pin","writeUInt8",1]),e.exports={257:i,MsgExtEvent:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_REQ",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_REQ",i.prototype.msg_type=168,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").uint8("chunk_size").string("filename",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),i.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),i.prototype.fieldSpec.push(["chunk_size","writeUInt8",1]),i.prototype.fieldSpec.push(["filename","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_RESP",s.prototype.msg_type=163,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),s.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_REQ",n.prototype.msg_type=169,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("dirname",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),n.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),n.prototype.fieldSpec.push(["dirname","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_READ_DIR_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_READ_DIR_RESP",a.prototype.msg_type=170,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("sequence").array("contents",{type:"uint8",readUntil:"eof"}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),a.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_REMOVE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_REMOVE",l.prototype.msg_type=172,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("filename",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["filename","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_REQ",c.prototype.msg_type=173,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("offset").string("filename",{greedy:!0}).array("data",{type:"uint8",readUntil:"eof"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),c.prototype.fieldSpec.push(["offset","writeUInt32LE",4]),c.prototype.fieldSpec.push(["filename","string",null]),c.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},null]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_WRITE_RESP",u.prototype.msg_type=171,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sequence"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_REQ",y.prototype.msg_type=4097,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sequence"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_FILEIO_CONFIG_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_FILEIO_CONFIG_RESP",h.prototype.msg_type=4098,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("sequence").uint32("window_size").uint32("batch_size").uint32("fileio_version"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),h.prototype.fieldSpec.push(["window_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["batch_size","writeUInt32LE",4]),h.prototype.fieldSpec.push(["fileio_version","writeUInt32LE",4]),e.exports={168:i,MsgFileioReadReq:i,163:s,MsgFileioReadResp:s,169:n,MsgFileioReadDirReq:n,170:a,MsgFileioReadDirResp:a,172:l,MsgFileioRemove:l,173:c,MsgFileioWriteReq:c,171:u,MsgFileioWriteResp:u,4097:y,MsgFileioConfigReq:y,4098:h,MsgFileioConfigResp:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_PROGRAM",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_PROGRAM",i.prototype.msg_type=230,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len").array("data",{type:"uint8",length:"addr_len"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["target","writeUInt8",1]),i.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),i.prototype.fieldSpec.push(["addr_len","writeUInt8",1]),i.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},"addr_len"]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_DONE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_DONE",s.prototype.msg_type=224,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("response"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["response","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_REQ",n.prototype.msg_type=231,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["target","writeUInt8",1]),n.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),n.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_READ_RESP",a.prototype.msg_type=225,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("target").array("addr_start",{length:3,type:"uint8"}).uint8("addr_len"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["target","writeUInt8",1]),a.prototype.fieldSpec.push(["addr_start","array","writeUInt8",function(){return 1},3]),a.prototype.fieldSpec.push(["addr_len","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_FLASH_ERASE",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_FLASH_ERASE",l.prototype.msg_type=226,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("target").uint32("sector_num"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["target","writeUInt8",1]),l.prototype.fieldSpec.push(["sector_num","writeUInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_LOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_LOCK_SECTOR",c.prototype.msg_type=227,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("sector"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STM_FLASH_UNLOCK_SECTOR",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STM_FLASH_UNLOCK_SECTOR",u.prototype.msg_type=228,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("sector"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["sector","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_REQ",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_REQ",y.prototype.msg_type=232,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_STM_UNIQUE_ID_RESP",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_STM_UNIQUE_ID_RESP",h.prototype.msg_type=229,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("stm_id",{length:12,type:"uint8"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["stm_id","array","writeUInt8",function(){return 1},12]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_M25_FLASH_WRITE_STATUS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_M25_FLASH_WRITE_STATUS",f.prototype.msg_type=243,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").array("status",{length:1,type:"uint8"}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","array","writeUInt8",function(){return 1},1]),e.exports={230:i,MsgFlashProgram:i,224:s,MsgFlashDone:s,231:n,MsgFlashReadReq:n,225:a,MsgFlashReadResp:a,226:l,MsgFlashErase:l,227:c,MsgStmFlashLockSector:c,228:u,MsgStmFlashUnlockSector:u,232:y,MsgStmUniqueIdReq:y,229:h,MsgStmUniqueIdResp:h,243:f,MsgM25FlashWriteStatus:f}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_IMU_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_IMU_RAW",i.prototype.msg_type=2304,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("acc_x").int16("acc_y").int16("acc_z").int16("gyr_x").int16("gyr_y").int16("gyr_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["acc_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["acc_z","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["gyr_z","writeInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_IMU_AUX",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_IMU_AUX",s.prototype.msg_type=2305,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("imu_type").int16("temp").uint8("imu_conf"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["imu_type","writeUInt8",1]),s.prototype.fieldSpec.push(["temp","writeInt16LE",2]),s.prototype.fieldSpec.push(["imu_conf","writeUInt8",1]),e.exports={2304:i,MsgImuRaw:i,2305:s,MsgImuAux:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal,p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),s=p(0).SvId,n=function(e,t){return r.call(this,e),this.messageType="IntegritySSRHeader",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="IntegritySSRHeader",n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),n.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),n.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),n.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),n.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),n.prototype.fieldSpec.push(["chain_id","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_HIGH_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_HIGH_LEVEL",a.prototype.msg_type=3001,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).nest("corr_time",{type:i.prototype.parser}).uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").uint8("chain_id").uint8("use_gps_sat").uint8("use_gal_sat").uint8("use_bds_sat").array("reserved",{length:6,type:"uint8"}).uint8("use_tropo_grid_points").uint8("use_iono_grid_points").uint8("use_iono_tile_sat_los").uint8("use_iono_grid_point_sat_los"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["corr_time",i.prototype.fieldSpec]),a.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),a.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),a.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gps_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_gal_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["use_bds_sat","writeUInt8",1]),a.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},6]),a.prototype.fieldSpec.push(["use_tropo_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_points","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_tile_sat_los","writeUInt8",1]),a.prototype.fieldSpec.push(["use_iono_grid_point_sat_los","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_SATELLITES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_SATELLITES",l.prototype.msg_type=3005,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").nest("obs_time",{type:i.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("ssr_sol_id").uint8("chain_id").uint8("const_id").uint8("n_faulty_sats").array("faulty_sats",{type:"uint8",length:"n_faulty_sats"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["obs_time",i.prototype.fieldSpec]),l.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),l.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),l.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),l.prototype.fieldSpec.push(["chain_id","writeUInt8",1]),l.prototype.fieldSpec.push(["const_id","writeUInt8",1]),l.prototype.fieldSpec.push(["n_faulty_sats","writeUInt8",1]),l.prototype.fieldSpec.push(["faulty_sats","array","writeUInt8",function(){return 1},"n_faulty_sats"]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_TROPO_GRID_POINTS",c.prototype.msg_type=3011,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),c.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),c.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINTS",u.prototype.msg_type=3015,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_points").array("faulty_points",{type:"uint16le",length:"n_faulty_points"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_faulty_points","writeUInt8",1]),u.prototype.fieldSpec.push(["faulty_points","array","writeUInt16LE",function(){return 2},"n_faulty_points"]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_TILE_SAT_LOS",y.prototype.msg_type=3021,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),y.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS",h.prototype.msg_type=3025,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").nest("header",{type:n.prototype.parser}).uint16("grid_point_id").uint8("n_faulty_los").array("faulty_los",{type:s.prototype.parser,length:"n_faulty_los"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["header",n.prototype.fieldSpec]),h.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),h.prototype.fieldSpec.push(["n_faulty_los","writeUInt8",1]),h.prototype.fieldSpec.push(["faulty_los","array",s.prototype.fieldSpec,function(){return this.fields.array.length},"n_faulty_los"]),e.exports={IntegritySSRHeader:n,3001:a,MsgSsrFlagHighLevel:a,3005:l,MsgSsrFlagSatellites:l,3011:c,MsgSsrFlagTropoGridPoints:c,3015:u,MsgSsrFlagIonoGridPoints:u,3021:y,MsgSsrFlagIonoTileSatLos:y,3025:h,MsgSsrFlagIonoGridPointSatLos:h}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE_DEP_A",i.prototype.msg_type=32512,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").string("tname",{length:15}).string("cmdline",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["index","writeUInt8",1]),i.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),i.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),i.prototype.fieldSpec.push(["tname","string",15]),i.prototype.fieldSpec.push(["cmdline","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE_DEP_A",s.prototype.msg_type=32513,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").string("tname",{length:15}).string("cmdline",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["index","writeUInt8",1]),s.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),s.prototype.fieldSpec.push(["pmem","writeUInt8",1]),s.prototype.fieldSpec.push(["tname","string",15]),s.prototype.fieldSpec.push(["cmdline","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE_DEP_A",n.prototype.msg_type=32514,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),n.prototype.fieldSpec.push(["pmem","writeUInt8",1]),n.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),n.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),n.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_COUNTS",a.prototype.msg_type=32515,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("socket_count").uint16("socket_types").uint16("socket_states").string("cmdline",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["index","writeUInt8",1]),a.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_count","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),a.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),a.prototype.fieldSpec.push(["cmdline","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_SOCKET_QUEUES",l.prototype.msg_type=32516,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("recv_queued").uint16("send_queued").uint16("socket_types").uint16("socket_states").string("address_of_largest",{length:64}).string("cmdline",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["index","writeUInt8",1]),l.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),l.prototype.fieldSpec.push(["recv_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["send_queued","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_types","writeUInt16LE",2]),l.prototype.fieldSpec.push(["socket_states","writeUInt16LE",2]),l.prototype.fieldSpec.push(["address_of_largest","string",64]),l.prototype.fieldSpec.push(["cmdline","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SOCKET_USAGE",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SOCKET_USAGE",c.prototype.msg_type=32517,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("avg_queue_depth").uint32("max_queue_depth").array("socket_state_counts",{length:16,type:"uint16le"}).array("socket_type_counts",{length:16,type:"uint16le"}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["avg_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["max_queue_depth","writeUInt32LE",4]),c.prototype.fieldSpec.push(["socket_state_counts","array","writeUInt16LE",function(){return 2},16]),c.prototype.fieldSpec.push(["socket_type_counts","array","writeUInt16LE",function(){return 2},16]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_COUNT",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_COUNT",u.prototype.msg_type=32518,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint16("fd_count").string("cmdline",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt8",1]),u.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),u.prototype.fieldSpec.push(["fd_count","writeUInt16LE",2]),u.prototype.fieldSpec.push(["cmdline","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_PROCESS_FD_SUMMARY",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_PROCESS_FD_SUMMARY",y.prototype.msg_type=32519,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("sys_fd_count").string("most_opened",{greedy:!0}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sys_fd_count","writeUInt32LE",4]),y.prototype.fieldSpec.push(["most_opened","string",null]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_CPU_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_CPU_STATE",h.prototype.msg_type=32520,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pcpu").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["index","writeUInt8",1]),h.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),h.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),h.prototype.fieldSpec.push(["time","writeUInt32LE",4]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["tname","string",15]),h.prototype.fieldSpec.push(["cmdline","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_MEM_STATE",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_MEM_STATE",f.prototype.msg_type=32521,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("index").uint16("pid").uint8("pmem").uint32("time").uint8("flags").string("tname",{length:15}).string("cmdline",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["index","writeUInt8",1]),f.prototype.fieldSpec.push(["pid","writeUInt16LE",2]),f.prototype.fieldSpec.push(["pmem","writeUInt8",1]),f.prototype.fieldSpec.push(["time","writeUInt32LE",4]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["tname","string",15]),f.prototype.fieldSpec.push(["cmdline","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_LINUX_SYS_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_LINUX_SYS_STATE",d.prototype.msg_type=32522,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint16("mem_total").uint8("pcpu").uint8("pmem").uint16("procs_starting").uint16("procs_stopping").uint16("pid_count").uint32("time").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["mem_total","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pcpu","writeUInt8",1]),d.prototype.fieldSpec.push(["pmem","writeUInt8",1]),d.prototype.fieldSpec.push(["procs_starting","writeUInt16LE",2]),d.prototype.fieldSpec.push(["procs_stopping","writeUInt16LE",2]),d.prototype.fieldSpec.push(["pid_count","writeUInt16LE",2]),d.prototype.fieldSpec.push(["time","writeUInt32LE",4]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={32512:i,MsgLinuxCpuStateDepA:i,32513:s,MsgLinuxMemStateDepA:s,32514:n,MsgLinuxSysStateDepA:n,32515:a,MsgLinuxProcessSocketCounts:a,32516:l,MsgLinuxProcessSocketQueues:l,32517:c,MsgLinuxSocketUsage:c,32518:u,MsgLinuxProcessFdCount:u,32519:y,MsgLinuxProcessFdSummary:y,32520:h,MsgLinuxCpuState:h,32521:f,MsgLinuxMemState:f,32522:d,MsgLinuxSysState:d}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_LOG",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_LOG",i.prototype.msg_type=1025,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("level").string("text",{greedy:!0}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["level","writeUInt8",1]),i.prototype.fieldSpec.push(["text","string",null]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_FWD",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_FWD",s.prototype.msg_type=1026,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("source").uint8("protocol").array("fwd_payload",{type:"uint8",readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["protocol","writeUInt8",1]),s.prototype.fieldSpec.push(["fwd_payload","array","writeUInt8",function(){return 1},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_PRINT_DEP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_PRINT_DEP",n.prototype.msg_type=16,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").string("text",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["text","string",null]),e.exports={1025:i,MsgLog:i,1026:s,MsgFwd:s,16:n,MsgPrintDep:n}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_MAG_RAW",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_MAG_RAW",i.prototype.msg_type=2306,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint8("tow_f").int16("mag_x").int16("mag_y").int16("mag_z"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["tow_f","writeUInt8",1]),i.prototype.fieldSpec.push(["mag_x","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_y","writeInt16LE",2]),i.prototype.fieldSpec.push(["mag_z","writeInt16LE",2]),e.exports={2306:i,MsgMagRaw:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME",i.prototype.msg_type=258,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_GNSS",s.prototype.msg_type=260,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME",n.prototype.msg_type=259,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt8",1]),n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["year","writeUInt16LE",2]),n.prototype.fieldSpec.push(["month","writeUInt8",1]),n.prototype.fieldSpec.push(["day","writeUInt8",1]),n.prototype.fieldSpec.push(["hours","writeUInt8",1]),n.prototype.fieldSpec.push(["minutes","writeUInt8",1]),n.prototype.fieldSpec.push(["seconds","writeUInt8",1]),n.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_TIME_GNSS",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_UTC_TIME_GNSS",a.prototype.msg_type=261,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags").uint32("tow").uint16("year").uint8("month").uint8("day").uint8("hours").uint8("minutes").uint8("seconds").uint32("ns"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]),a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["year","writeUInt16LE",2]),a.prototype.fieldSpec.push(["month","writeUInt8",1]),a.prototype.fieldSpec.push(["day","writeUInt8",1]),a.prototype.fieldSpec.push(["hours","writeUInt8",1]),a.prototype.fieldSpec.push(["minutes","writeUInt8",1]),a.prototype.fieldSpec.push(["seconds","writeUInt8",1]),a.prototype.fieldSpec.push(["ns","writeUInt32LE",4]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_DOPS",l.prototype.msg_type=520,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),l.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF",c.prototype.msg_type=521,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),c.prototype.fieldSpec.push(["x","writeDoubleLE",8]),c.prototype.fieldSpec.push(["y","writeDoubleLE",8]),c.prototype.fieldSpec.push(["z","writeDoubleLE",8]),c.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),c.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),c.prototype.fieldSpec.push(["flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV",u.prototype.msg_type=532,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),u.prototype.fieldSpec.push(["x","writeDoubleLE",8]),u.prototype.fieldSpec.push(["y","writeDoubleLE",8]),u.prototype.fieldSpec.push(["z","writeDoubleLE",8]),u.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),u.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),u.prototype.fieldSpec.push(["flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH",y.prototype.msg_type=522,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),y.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),y.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),y.prototype.fieldSpec.push(["height","writeDoubleLE",8]),y.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),y.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),y.prototype.fieldSpec.push(["flags","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV",h.prototype.msg_type=529,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),h.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),h.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),h.prototype.fieldSpec.push(["height","writeDoubleLE",8]),h.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),h.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="EstimatedHorizontalErrorEllipse",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="EstimatedHorizontalErrorEllipse",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").floatle("semi_major").floatle("semi_minor").floatle("orientation"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["semi_major","writeFloatLE",4]),f.prototype.fieldSpec.push(["semi_minor","writeFloatLE",4]),f.prototype.fieldSpec.push(["orientation","writeFloatLE",4]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_ACC",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_ACC",d.prototype.msg_type=536,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").doublele("orthometric_height").floatle("h_accuracy").floatle("v_accuracy").floatle("ct_accuracy").floatle("at_accuracy").nest("h_ellipse",{type:f.prototype.parser}).uint8("confidence_and_geoid").uint8("n_sats").uint8("flags"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),d.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),d.prototype.fieldSpec.push(["height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["orthometric_height","writeDoubleLE",8]),d.prototype.fieldSpec.push(["h_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["v_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["ct_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["at_accuracy","writeFloatLE",4]),d.prototype.fieldSpec.push(["h_ellipse",f.prototype.fieldSpec]),d.prototype.fieldSpec.push(["confidence_and_geoid","writeUInt8",1]),d.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),d.prototype.fieldSpec.push(["flags","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF",_.prototype.msg_type=523,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),_.prototype.fieldSpec.push(["x","writeInt32LE",4]),_.prototype.fieldSpec.push(["y","writeInt32LE",4]),_.prototype.fieldSpec.push(["z","writeInt32LE",4]),_.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),_.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED",S.prototype.msg_type=524,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),S.prototype.fieldSpec.push(["n","writeInt32LE",4]),S.prototype.fieldSpec.push(["e","writeInt32LE",4]),S.prototype.fieldSpec.push(["d","writeInt32LE",4]),S.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),S.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF",g.prototype.msg_type=525,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),g.prototype.fieldSpec.push(["x","writeInt32LE",4]),g.prototype.fieldSpec.push(["y","writeInt32LE",4]),g.prototype.fieldSpec.push(["z","writeInt32LE",4]),g.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),g.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV",w.prototype.msg_type=533,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),w.prototype.fieldSpec.push(["x","writeInt32LE",4]),w.prototype.fieldSpec.push(["y","writeInt32LE",4]),w.prototype.fieldSpec.push(["z","writeInt32LE",4]),w.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),w.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED",E.prototype.msg_type=526,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),E.prototype.fieldSpec.push(["n","writeInt32LE",4]),E.prototype.fieldSpec.push(["e","writeInt32LE",4]),E.prototype.fieldSpec.push(["d","writeInt32LE",4]),E.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),E.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),E.prototype.fieldSpec.push(["flags","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV",m.prototype.msg_type=530,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),m.prototype.fieldSpec.push(["n","writeInt32LE",4]),m.prototype.fieldSpec.push(["e","writeInt32LE",4]),m.prototype.fieldSpec.push(["d","writeInt32LE",4]),m.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),m.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),m.prototype.fieldSpec.push(["flags","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_GNSS",b.prototype.msg_type=553,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),b.prototype.fieldSpec.push(["x","writeDoubleLE",8]),b.prototype.fieldSpec.push(["y","writeDoubleLE",8]),b.prototype.fieldSpec.push(["z","writeDoubleLE",8]),b.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["flags","writeUInt8",1]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_COV_GNSS",I.prototype.msg_type=564,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),I.prototype.fieldSpec.push(["x","writeDoubleLE",8]),I.prototype.fieldSpec.push(["y","writeDoubleLE",8]),I.prototype.fieldSpec.push(["z","writeDoubleLE",8]),I.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),I.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),I.prototype.fieldSpec.push(["flags","writeUInt8",1]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_GNSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_GNSS",L.prototype.msg_type=554,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),L.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),L.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),L.prototype.fieldSpec.push(["height","writeDoubleLE",8]),L.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),L.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),L.prototype.fieldSpec.push(["flags","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_COV_GNSS",T.prototype.msg_type=561,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),T.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),T.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),T.prototype.fieldSpec.push(["height","writeDoubleLE",8]),T.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["flags","writeUInt8",1]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_GNSS",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_GNSS",v.prototype.msg_type=557,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),v.prototype.fieldSpec.push(["x","writeInt32LE",4]),v.prototype.fieldSpec.push(["y","writeInt32LE",4]),v.prototype.fieldSpec.push(["z","writeInt32LE",4]),v.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),v.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),v.prototype.fieldSpec.push(["flags","writeUInt8",1]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_COV_GNSS",U.prototype.msg_type=565,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),U.prototype.fieldSpec.push(["x","writeInt32LE",4]),U.prototype.fieldSpec.push(["y","writeInt32LE",4]),U.prototype.fieldSpec.push(["z","writeInt32LE",4]),U.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),U.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),U.prototype.fieldSpec.push(["flags","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_GNSS",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_GNSS",M.prototype.msg_type=558,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),M.prototype.fieldSpec.push(["n","writeInt32LE",4]),M.prototype.fieldSpec.push(["e","writeInt32LE",4]),M.prototype.fieldSpec.push(["d","writeInt32LE",4]),M.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),M.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),M.prototype.fieldSpec.push(["flags","writeUInt8",1]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_COV_GNSS",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_COV_GNSS",D.prototype.msg_type=562,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").floatle("cov_n_n").floatle("cov_n_e").floatle("cov_n_d").floatle("cov_e_e").floatle("cov_e_d").floatle("cov_d_d").uint8("n_sats").uint8("flags"),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),D.prototype.fieldSpec.push(["n","writeInt32LE",4]),D.prototype.fieldSpec.push(["e","writeInt32LE",4]),D.prototype.fieldSpec.push(["d","writeInt32LE",4]),D.prototype.fieldSpec.push(["cov_n_n","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_n_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_e","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_e_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["cov_d_d","writeFloatLE",4]),D.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),D.prototype.fieldSpec.push(["flags","writeUInt8",1]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_BODY",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_VEL_BODY",O.prototype.msg_type=531,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").floatle("cov_x_x").floatle("cov_x_y").floatle("cov_x_z").floatle("cov_y_y").floatle("cov_y_z").floatle("cov_z_z").uint8("n_sats").uint8("flags"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),O.prototype.fieldSpec.push(["x","writeInt32LE",4]),O.prototype.fieldSpec.push(["y","writeInt32LE",4]),O.prototype.fieldSpec.push(["z","writeInt32LE",4]),O.prototype.fieldSpec.push(["cov_x_x","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_x_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_y","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_y_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["cov_z_z","writeFloatLE",4]),O.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),O.prototype.fieldSpec.push(["flags","writeUInt8",1]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_COG",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_VEL_COG",G.prototype.msg_type=540,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").uint32("tow").uint32("cog").uint32("sog").int32("v_up").uint32("cog_accuracy").uint32("sog_accuracy").uint32("v_up_accuracy").uint16("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),G.prototype.fieldSpec.push(["cog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up","writeInt32LE",4]),G.prototype.fieldSpec.push(["cog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["sog_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["v_up_accuracy","writeUInt32LE",4]),G.prototype.fieldSpec.push(["flags","writeUInt16LE",2]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_AGE_CORRECTIONS",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_AGE_CORRECTIONS",A.prototype.msg_type=528,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint32("tow").uint16("age"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),A.prototype.fieldSpec.push(["age","writeUInt16LE",2]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_GPS_TIME_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_GPS_TIME_DEP_A",C.prototype.msg_type=256,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint16("wn").uint32("tow").int32("ns_residual").uint8("flags"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),C.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),C.prototype.fieldSpec.push(["ns_residual","writeInt32LE",4]),C.prototype.fieldSpec.push(["flags","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_DOPS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_DOPS_DEP_A",R.prototype.msg_type=518,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").uint32("tow").uint16("gdop").uint16("pdop").uint16("tdop").uint16("hdop").uint16("vdop"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),R.prototype.fieldSpec.push(["gdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["tdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),R.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_POS_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_POS_ECEF_DEP_A",P.prototype.msg_type=512,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint32("tow").doublele("x").doublele("y").doublele("z").uint16("accuracy").uint8("n_sats").uint8("flags"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),P.prototype.fieldSpec.push(["x","writeDoubleLE",8]),P.prototype.fieldSpec.push(["y","writeDoubleLE",8]),P.prototype.fieldSpec.push(["z","writeDoubleLE",8]),P.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),P.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),P.prototype.fieldSpec.push(["flags","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_POS_LLH_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_POS_LLH_DEP_A",N.prototype.msg_type=513,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint32("tow").doublele("lat").doublele("lon").doublele("height").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),N.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),N.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),N.prototype.fieldSpec.push(["height","writeDoubleLE",8]),N.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),N.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),N.prototype.fieldSpec.push(["flags","writeUInt8",1]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_ECEF_DEP_A",j.prototype.msg_type=514,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),j.prototype.fieldSpec.push(["x","writeInt32LE",4]),j.prototype.fieldSpec.push(["y","writeInt32LE",4]),j.prototype.fieldSpec.push(["z","writeInt32LE",4]),j.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),j.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),j.prototype.fieldSpec.push(["flags","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_NED_DEP_A",x.prototype.msg_type=515,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),x.prototype.fieldSpec.push(["n","writeInt32LE",4]),x.prototype.fieldSpec.push(["e","writeInt32LE",4]),x.prototype.fieldSpec.push(["d","writeInt32LE",4]),x.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),x.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),x.prototype.fieldSpec.push(["flags","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_ECEF_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_VEL_ECEF_DEP_A",k.prototype.msg_type=516,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint16("accuracy").uint8("n_sats").uint8("flags"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),k.prototype.fieldSpec.push(["x","writeInt32LE",4]),k.prototype.fieldSpec.push(["y","writeInt32LE",4]),k.prototype.fieldSpec.push(["z","writeInt32LE",4]),k.prototype.fieldSpec.push(["accuracy","writeUInt16LE",2]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["flags","writeUInt8",1]);let F=function(e,t){return r.call(this,e),this.messageType="MSG_VEL_NED_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="MSG_VEL_NED_DEP_A",F.prototype.msg_type=517,F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint32("tow").int32("n").int32("e").int32("d").uint16("h_accuracy").uint16("v_accuracy").uint8("n_sats").uint8("flags"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),F.prototype.fieldSpec.push(["n","writeInt32LE",4]),F.prototype.fieldSpec.push(["e","writeInt32LE",4]),F.prototype.fieldSpec.push(["d","writeInt32LE",4]),F.prototype.fieldSpec.push(["h_accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["v_accuracy","writeUInt16LE",2]),F.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),F.prototype.fieldSpec.push(["flags","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING_DEP_A",B.prototype.msg_type=519,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),B.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),B.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),B.prototype.fieldSpec.push(["flags","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL_DEP_A",q.prototype.msg_type=534,q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("tow").uint16("vpl").uint16("hpl").doublele("lat").doublele("lon").doublele("height").uint8("flags"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),q.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),q.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),q.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),q.prototype.fieldSpec.push(["height","writeDoubleLE",8]),q.prototype.fieldSpec.push(["flags","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_PROTECTION_LEVEL",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_PROTECTION_LEVEL",z.prototype.msg_type=535,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("tow").int16("wn").uint16("hpl").uint16("vpl").uint16("atpl").uint16("ctpl").uint16("hvpl").uint16("vvpl").uint16("hopl").uint16("popl").uint16("ropl").doublele("lat").doublele("lon").doublele("height").int32("v_x").int32("v_y").int32("v_z").int32("roll").int32("pitch").int32("heading").uint32("flags"),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),z.prototype.fieldSpec.push(["wn","writeInt16LE",2]),z.prototype.fieldSpec.push(["hpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["atpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ctpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["vvpl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["hopl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["popl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["ropl","writeUInt16LE",2]),z.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),z.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),z.prototype.fieldSpec.push(["height","writeDoubleLE",8]),z.prototype.fieldSpec.push(["v_x","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_y","writeInt32LE",4]),z.prototype.fieldSpec.push(["v_z","writeInt32LE",4]),z.prototype.fieldSpec.push(["roll","writeInt32LE",4]),z.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),z.prototype.fieldSpec.push(["heading","writeInt32LE",4]),z.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let H=function(e,t){return r.call(this,e),this.messageType="MSG_UTC_LEAP_SECOND",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="MSG_UTC_LEAP_SECOND",H.prototype.msg_type=570,H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").int16("bias_coeff").int16("drift_coeff").int8("drift_rate_coeff").int8("count_before").uint16("tow_s").uint16("wn").uint16("ref_wn").uint8("ref_dn").int8("count_after"),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["bias_coeff","writeInt16LE",2]),H.prototype.fieldSpec.push(["drift_coeff","writeInt16LE",2]),H.prototype.fieldSpec.push(["drift_rate_coeff","writeInt8",1]),H.prototype.fieldSpec.push(["count_before","writeInt8",1]),H.prototype.fieldSpec.push(["tow_s","writeUInt16LE",2]),H.prototype.fieldSpec.push(["wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_wn","writeUInt16LE",2]),H.prototype.fieldSpec.push(["ref_dn","writeUInt8",1]),H.prototype.fieldSpec.push(["count_after","writeInt8",1]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_REFERENCE_FRAME_PARAM",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_REFERENCE_FRAME_PARAM",V.prototype.msg_type=580,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").uint8("ssr_iod").string("sn",{length:32}).string("tn",{length:32}).uint8("sin").uint16("utn").uint16("re_t0").int32("delta_X0").int32("delta_Y0").int32("delta_Z0").int32("theta_01").int32("theta_02").int32("theta_03").int32("scale").int32("dot_delta_X0").int32("dot_delta_Y0").int32("dot_delta_Z0").int32("dot_theta_01").int32("dot_theta_02").int32("dot_theta_03").int16("dot_scale"),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),V.prototype.fieldSpec.push(["sn","string",32]),V.prototype.fieldSpec.push(["tn","string",32]),V.prototype.fieldSpec.push(["sin","writeUInt8",1]),V.prototype.fieldSpec.push(["utn","writeUInt16LE",2]),V.prototype.fieldSpec.push(["re_t0","writeUInt16LE",2]),V.prototype.fieldSpec.push(["delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["scale","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_X0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Y0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_delta_Z0","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_01","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_02","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_theta_03","writeInt32LE",4]),V.prototype.fieldSpec.push(["dot_scale","writeInt16LE",2]),e.exports={258:i,MsgGpsTime:i,260:s,MsgGpsTimeGnss:s,259:n,MsgUtcTime:n,261:a,MsgUtcTimeGnss:a,520:l,MsgDops:l,521:c,MsgPosEcef:c,532:u,MsgPosEcefCov:u,522:y,MsgPosLlh:y,529:h,MsgPosLlhCov:h,EstimatedHorizontalErrorEllipse:f,536:d,MsgPosLlhAcc:d,523:_,MsgBaselineEcef:_,524:S,MsgBaselineNed:S,525:g,MsgVelEcef:g,533:w,MsgVelEcefCov:w,526:E,MsgVelNed:E,530:m,MsgVelNedCov:m,553:b,MsgPosEcefGnss:b,564:I,MsgPosEcefCovGnss:I,554:L,MsgPosLlhGnss:L,561:T,MsgPosLlhCovGnss:T,557:v,MsgVelEcefGnss:v,565:U,MsgVelEcefCovGnss:U,558:M,MsgVelNedGnss:M,562:D,MsgVelNedCovGnss:D,531:O,MsgVelBody:O,540:G,MsgVelCog:G,528:A,MsgAgeCorrections:A,256:C,MsgGpsTimeDepA:C,518:R,MsgDopsDepA:R,512:P,MsgPosEcefDepA:P,513:N,MsgPosLlhDepA:N,514:j,MsgBaselineEcefDepA:j,515:x,MsgBaselineNedDepA:x,516:k,MsgVelEcefDepA:k,517:F,MsgVelNedDepA:F,519:B,MsgBaselineHeadingDepA:B,534:q,MsgProtectionLevelDepA:q,535:z,MsgProtectionLevel:z,570:H,MsgUtcLeapSecond:H,580:V,MsgReferenceFrameParam:V}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_NDB_EVENT",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_NDB_EVENT",s.prototype.msg_type=1024,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("recv_time").uint8("event").uint8("object_type").uint8("result").uint8("data_source").nest("object_sid",{type:i.prototype.parser}).nest("src_sid",{type:i.prototype.parser}).uint16("original_sender"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["event","writeUInt8",1]),s.prototype.fieldSpec.push(["object_type","writeUInt8",1]),s.prototype.fieldSpec.push(["result","writeUInt8",1]),s.prototype.fieldSpec.push(["data_source","writeUInt8",1]),s.prototype.fieldSpec.push(["object_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["src_sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["original_sender","writeUInt16LE",2]),e.exports={1024:s,MsgNdbEvent:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=p(0).GPSTimeSec,u=(p(0).SvId,function(e,t){return r.call(this,e),this.messageType="ObservationHeader",this.fields=t||this.parser.parse(e.payload),this});(u.prototype=Object.create(r.prototype)).messageType="ObservationHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").nest("t",{type:a.prototype.parser}).uint8("n_obs"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),u.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="Doppler",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="Doppler",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").int16("i").uint8("f"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["i","writeInt16LE",2]),y.prototype.fieldSpec.push(["f","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="PackedObsContent",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="PackedObsContent",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).nest("D",{type:y.prototype.parser}).uint8("cn0").uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["P","writeUInt32LE",4]),h.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),h.prototype.fieldSpec.push(["D",y.prototype.fieldSpec]),h.prototype.fieldSpec.push(["cn0","writeUInt8",1]),h.prototype.fieldSpec.push(["lock","writeUInt8",1]),h.prototype.fieldSpec.push(["flags","writeUInt8",1]),h.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let f=function(e,t){return r.call(this,e),this.messageType="PackedOsrContent",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="PackedOsrContent",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("lock").uint8("flags").nest("sid",{type:s.prototype.parser}).uint16("iono_std").uint16("tropo_std").uint16("range_std"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["P","writeUInt32LE",4]),f.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),f.prototype.fieldSpec.push(["lock","writeUInt8",1]),f.prototype.fieldSpec.push(["flags","writeUInt8",1]),f.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),f.prototype.fieldSpec.push(["iono_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["tropo_std","writeUInt16LE",2]),f.prototype.fieldSpec.push(["range_std","writeUInt16LE",2]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_OBS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_OBS",d.prototype.msg_type=74,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:h.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),d.prototype.fieldSpec.push(["obs","array",h.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_LLH",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_LLH",_.prototype.msg_type=68,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").doublele("lat").doublele("lon").doublele("height"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["lat","writeDoubleLE",8]),_.prototype.fieldSpec.push(["lon","writeDoubleLE",8]),_.prototype.fieldSpec.push(["height","writeDoubleLE",8]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_BASE_POS_ECEF",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_BASE_POS_ECEF",S.prototype.msg_type=72,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").doublele("x").doublele("y").doublele("z"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["x","writeDoubleLE",8]),S.prototype.fieldSpec.push(["y","writeDoubleLE",8]),S.prototype.fieldSpec.push(["z","writeDoubleLE",8]);let g=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContent",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContent",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).floatle("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),g.prototype.fieldSpec.push(["ura","writeFloatLE",4]),g.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),g.prototype.fieldSpec.push(["valid","writeUInt8",1]),g.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepB",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepB",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toe",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["toe",c.prototype.fieldSpec]),w.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),w.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),w.prototype.fieldSpec.push(["valid","writeUInt8",1]),w.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let E=function(e,t){return r.call(this,e),this.messageType="EphemerisCommonContentDepA",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="EphemerisCommonContentDepA",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toe",{type:l.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["toe",l.prototype.fieldSpec]),E.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),E.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),E.prototype.fieldSpec.push(["valid","writeUInt8",1]),E.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_E",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_E",m.prototype.msg_type=129,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:l.prototype.parser}).uint8("iode").uint16("iodc"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),m.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),m.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),m.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["w","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),m.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),m.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),m.prototype.fieldSpec.push(["toc",l.prototype.fieldSpec]),m.prototype.fieldSpec.push(["iode","writeUInt8",1]),m.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS_DEP_F",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS_DEP_F",b.prototype.msg_type=134,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),b.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),b.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),b.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),b.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["w","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),b.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),b.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),b.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),b.prototype.fieldSpec.push(["iode","writeUInt8",1]),b.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GPS",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GPS",I.prototype.msg_type=138,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),I.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),I.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),I.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),I.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),I.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["w","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),I.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),I.prototype.fieldSpec.push(["af0","writeFloatLE",4]),I.prototype.fieldSpec.push(["af1","writeFloatLE",4]),I.prototype.fieldSpec.push(["af2","writeFloatLE",4]),I.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),I.prototype.fieldSpec.push(["iode","writeUInt8",1]),I.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_QZSS",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_QZSS",L.prototype.msg_type=142,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").floatle("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),L.prototype.fieldSpec.push(["tgd","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),L.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),L.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),L.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),L.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["w","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),L.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),L.prototype.fieldSpec.push(["af0","writeFloatLE",4]),L.prototype.fieldSpec.push(["af1","writeFloatLE",4]),L.prototype.fieldSpec.push(["af2","writeFloatLE",4]),L.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),L.prototype.fieldSpec.push(["iode","writeUInt8",1]),L.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_BDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_BDS",T.prototype.msg_type=137,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("tgd1").floatle("tgd2").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").floatle("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint8("iode").uint16("iodc"),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tgd1","writeFloatLE",4]),T.prototype.fieldSpec.push(["tgd2","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),T.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),T.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),T.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["w","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),T.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),T.prototype.fieldSpec.push(["af1","writeFloatLE",4]),T.prototype.fieldSpec.push(["af2","writeFloatLE",4]),T.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),T.prototype.fieldSpec.push(["iode","writeUInt8",1]),T.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL_DEP_A",v.prototype.msg_type=149,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),v.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),v.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),v.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),v.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),v.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["w","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),v.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),v.prototype.fieldSpec.push(["af2","writeFloatLE",4]),v.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),v.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),v.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GAL",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GAL",U.prototype.msg_type=141,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("bgd_e1e5a").floatle("bgd_e1e5b").floatle("c_rs").floatle("c_rc").floatle("c_uc").floatle("c_us").floatle("c_ic").floatle("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").floatle("af2").nest("toc",{type:c.prototype.parser}).uint16("iode").uint16("iodc").uint8("source"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),U.prototype.fieldSpec.push(["bgd_e1e5a","writeFloatLE",4]),U.prototype.fieldSpec.push(["bgd_e1e5b","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rs","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_rc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_uc","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_us","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_ic","writeFloatLE",4]),U.prototype.fieldSpec.push(["c_is","writeFloatLE",4]),U.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),U.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["w","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),U.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),U.prototype.fieldSpec.push(["af2","writeFloatLE",4]),U.prototype.fieldSpec.push(["toc",c.prototype.fieldSpec]),U.prototype.fieldSpec.push(["iode","writeUInt16LE",2]),U.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),U.prototype.fieldSpec.push(["source","writeUInt8",1]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_A",M.prototype.msg_type=130,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),M.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),M.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),M.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_A",D.prototype.msg_type=131,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").nest("common",{type:E.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["common",E.prototype.fieldSpec]),D.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),D.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),D.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),D.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS_DEP_B",O.prototype.msg_type=132,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).doublele("a_gf0").doublele("a_gf1"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),O.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),O.prototype.fieldSpec.push(["a_gf0","writeDoubleLE",8]),O.prototype.fieldSpec.push(["a_gf1","writeDoubleLE",8]);let G=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_SBAS",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_SBAS",G.prototype.msg_type=140,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"floatle"}).array("acc",{length:3,type:"floatle"}).floatle("a_gf0").floatle("a_gf1"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),G.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),G.prototype.fieldSpec.push(["vel","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),G.prototype.fieldSpec.push(["a_gf0","writeFloatLE",4]),G.prototype.fieldSpec.push(["a_gf1","writeFloatLE",4]);let A=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_B",A.prototype.msg_type=133,A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),A.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),A.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),A.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),A.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_C",C.prototype.msg_type=135,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),C.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),C.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),C.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),C.prototype.fieldSpec.push(["fcn","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO_DEP_D",R.prototype.msg_type=136,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("common",{type:w.prototype.parser}).doublele("gamma").doublele("tau").doublele("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"doublele"}).uint8("fcn").uint8("iod"),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["common",w.prototype.fieldSpec]),R.prototype.fieldSpec.push(["gamma","writeDoubleLE",8]),R.prototype.fieldSpec.push(["tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["d_tau","writeDoubleLE",8]),R.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["acc","array","writeDoubleLE",function(){return 8},3]),R.prototype.fieldSpec.push(["fcn","writeUInt8",1]),R.prototype.fieldSpec.push(["iod","writeUInt8",1]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_GLO",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_GLO",P.prototype.msg_type=139,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("common",{type:g.prototype.parser}).floatle("gamma").floatle("tau").floatle("d_tau").array("pos",{length:3,type:"doublele"}).array("vel",{length:3,type:"doublele"}).array("acc",{length:3,type:"floatle"}).uint8("fcn").uint8("iod"),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["common",g.prototype.fieldSpec]),P.prototype.fieldSpec.push(["gamma","writeFloatLE",4]),P.prototype.fieldSpec.push(["tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["d_tau","writeFloatLE",4]),P.prototype.fieldSpec.push(["pos","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["vel","array","writeDoubleLE",function(){return 8},3]),P.prototype.fieldSpec.push(["acc","array","writeFloatLE",function(){return 4},3]),P.prototype.fieldSpec.push(["fcn","writeUInt8",1]),P.prototype.fieldSpec.push(["iod","writeUInt8",1]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_D",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_D",N.prototype.msg_type=128,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),N.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),N.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),N.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["w","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),N.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),N.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),N.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),N.prototype.fieldSpec.push(["valid","writeUInt8",1]),N.prototype.fieldSpec.push(["healthy","writeUInt8",1]),N.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["iode","writeUInt8",1]),N.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),N.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_A",j.prototype.msg_type=26,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn"),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),j.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),j.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),j.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["w","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),j.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),j.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),j.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),j.prototype.fieldSpec.push(["valid","writeUInt8",1]),j.prototype.fieldSpec.push(["healthy","writeUInt8",1]),j.prototype.fieldSpec.push(["prn","writeUInt8",1]);let x=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_B",x.prototype.msg_type=70,x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").uint8("prn").uint8("iode"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),x.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),x.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),x.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["w","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),x.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),x.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),x.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),x.prototype.fieldSpec.push(["valid","writeUInt8",1]),x.prototype.fieldSpec.push(["healthy","writeUInt8",1]),x.prototype.fieldSpec.push(["prn","writeUInt8",1]),x.prototype.fieldSpec.push(["iode","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_EPHEMERIS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_EPHEMERIS_DEP_C",k.prototype.msg_type=71,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").doublele("tgd").doublele("c_rs").doublele("c_rc").doublele("c_uc").doublele("c_us").doublele("c_ic").doublele("c_is").doublele("dn").doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("inc_dot").doublele("af0").doublele("af1").doublele("af2").doublele("toe_tow").uint16("toe_wn").doublele("toc_tow").uint16("toc_wn").uint8("valid").uint8("healthy").nest("sid",{type:n.prototype.parser}).uint8("iode").uint16("iodc").uint32("reserved"),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["tgd","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_rs","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_rc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_uc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_us","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_ic","writeDoubleLE",8]),k.prototype.fieldSpec.push(["c_is","writeDoubleLE",8]),k.prototype.fieldSpec.push(["dn","writeDoubleLE",8]),k.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),k.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),k.prototype.fieldSpec.push(["w","writeDoubleLE",8]),k.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),k.prototype.fieldSpec.push(["inc_dot","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af1","writeDoubleLE",8]),k.prototype.fieldSpec.push(["af2","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toe_tow","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toe_wn","writeUInt16LE",2]),k.prototype.fieldSpec.push(["toc_tow","writeDoubleLE",8]),k.prototype.fieldSpec.push(["toc_wn","writeUInt16LE",2]),k.prototype.fieldSpec.push(["valid","writeUInt8",1]),k.prototype.fieldSpec.push(["healthy","writeUInt8",1]),k.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),k.prototype.fieldSpec.push(["iode","writeUInt8",1]),k.prototype.fieldSpec.push(["iodc","writeUInt16LE",2]),k.prototype.fieldSpec.push(["reserved","writeUInt32LE",4]);let F=function(e,t){return r.call(this,e),this.messageType="ObservationHeaderDep",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="ObservationHeaderDep",F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").nest("t",{type:l.prototype.parser}).uint8("n_obs"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["t",l.prototype.fieldSpec]),F.prototype.fieldSpec.push(["n_obs","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="CarrierPhaseDepA",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="CarrierPhaseDepA",B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").int32("i").uint8("f"),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["i","writeInt32LE",4]),B.prototype.fieldSpec.push(["f","writeUInt8",1]);let q=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepA",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepA",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").uint8("prn"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["P","writeUInt32LE",4]),q.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),q.prototype.fieldSpec.push(["cn0","writeUInt8",1]),q.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),q.prototype.fieldSpec.push(["prn","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepB",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepB",z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:B.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["P","writeUInt32LE",4]),z.prototype.fieldSpec.push(["L",B.prototype.fieldSpec]),z.prototype.fieldSpec.push(["cn0","writeUInt8",1]),z.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),z.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let H=function(e,t){return r.call(this,e),this.messageType="PackedObsContentDepC",this.fields=t||this.parser.parse(e.payload),this};(H.prototype=Object.create(r.prototype)).messageType="PackedObsContentDepC",H.prototype.constructor=H,H.prototype.parser=(new o).endianess("little").uint32("P").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}),H.prototype.fieldSpec=[],H.prototype.fieldSpec.push(["P","writeUInt32LE",4]),H.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),H.prototype.fieldSpec.push(["cn0","writeUInt8",1]),H.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),H.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]);let V=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(V.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_A",V.prototype.msg_type=69,V.prototype.constructor=V,V.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:q.prototype.parser,readUntil:"eof"}),V.prototype.fieldSpec=[],V.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),V.prototype.fieldSpec.push(["obs","array",q.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Y=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(Y.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_B",Y.prototype.msg_type=67,Y.prototype.constructor=Y,Y.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:z.prototype.parser,readUntil:"eof"}),Y.prototype.fieldSpec=[],Y.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),Y.prototype.fieldSpec.push(["obs","array",z.prototype.fieldSpec,function(){return this.fields.array.length},null]);let W=function(e,t){return r.call(this,e),this.messageType="MSG_OBS_DEP_C",this.fields=t||this.parser.parse(e.payload),this};(W.prototype=Object.create(r.prototype)).messageType="MSG_OBS_DEP_C",W.prototype.msg_type=73,W.prototype.constructor=W,W.prototype.parser=(new o).endianess("little").nest("header",{type:F.prototype.parser}).array("obs",{type:H.prototype.parser,readUntil:"eof"}),W.prototype.fieldSpec=[],W.prototype.fieldSpec.push(["header",F.prototype.fieldSpec]),W.prototype.fieldSpec.push(["obs","array",H.prototype.fieldSpec,function(){return this.fields.array.length},null]);let Q=function(e,t){return r.call(this,e),this.messageType="MSG_IONO",this.fields=t||this.parser.parse(e.payload),this};(Q.prototype=Object.create(r.prototype)).messageType="MSG_IONO",Q.prototype.msg_type=144,Q.prototype.constructor=Q,Q.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).doublele("a0").doublele("a1").doublele("a2").doublele("a3").doublele("b0").doublele("b1").doublele("b2").doublele("b3"),Q.prototype.fieldSpec=[],Q.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),Q.prototype.fieldSpec.push(["a0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["a3","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b0","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b1","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b2","writeDoubleLE",8]),Q.prototype.fieldSpec.push(["b3","writeDoubleLE",8]);let K=function(e,t){return r.call(this,e),this.messageType="MSG_SV_CONFIGURATION_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(K.prototype=Object.create(r.prototype)).messageType="MSG_SV_CONFIGURATION_GPS_DEP",K.prototype.msg_type=145,K.prototype.constructor=K,K.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).uint32("l2c_mask"),K.prototype.fieldSpec=[],K.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),K.prototype.fieldSpec.push(["l2c_mask","writeUInt32LE",4]);let X=function(e,t){return r.call(this,e),this.messageType="GnssCapb",this.fields=t||this.parser.parse(e.payload),this};(X.prototype=Object.create(r.prototype)).messageType="GnssCapb",X.prototype.constructor=X,X.prototype.parser=(new o).endianess("little").uint64("gps_active").uint64("gps_l2c").uint64("gps_l5").uint32("glo_active").uint32("glo_l2of").uint32("glo_l3").uint64("sbas_active").uint64("sbas_l5").uint64("bds_active").uint64("bds_d2nav").uint64("bds_b2").uint64("bds_b2a").uint32("qzss_active").uint64("gal_active").uint64("gal_e5"),X.prototype.fieldSpec=[],X.prototype.fieldSpec.push(["gps_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l2c","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gps_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["glo_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l2of","writeUInt32LE",4]),X.prototype.fieldSpec.push(["glo_l3","writeUInt32LE",4]),X.prototype.fieldSpec.push(["sbas_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["sbas_l5","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_d2nav","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2","writeUInt64LE",8]),X.prototype.fieldSpec.push(["bds_b2a","writeUInt64LE",8]),X.prototype.fieldSpec.push(["qzss_active","writeUInt32LE",4]),X.prototype.fieldSpec.push(["gal_active","writeUInt64LE",8]),X.prototype.fieldSpec.push(["gal_e5","writeUInt64LE",8]);let J=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_CAPB",this.fields=t||this.parser.parse(e.payload),this};(J.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_CAPB",J.prototype.msg_type=150,J.prototype.constructor=J,J.prototype.parser=(new o).endianess("little").nest("t_nmct",{type:c.prototype.parser}).nest("gc",{type:X.prototype.parser}),J.prototype.fieldSpec=[],J.prototype.fieldSpec.push(["t_nmct",c.prototype.fieldSpec]),J.prototype.fieldSpec.push(["gc",X.prototype.fieldSpec]);let Z=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(Z.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_A",Z.prototype.msg_type=146,Z.prototype.constructor=Z,Z.prototype.parser=(new o).endianess("little").nest("t_op",{type:l.prototype.parser}).uint8("prn").uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),Z.prototype.fieldSpec=[],Z.prototype.fieldSpec.push(["t_op",l.prototype.fieldSpec]),Z.prototype.fieldSpec.push(["prn","writeUInt8",1]),Z.prototype.fieldSpec.push(["valid","writeUInt8",1]),Z.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),Z.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let $=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY_DEP_B",this.fields=t||this.parser.parse(e.payload),this};($.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY_DEP_B",$.prototype.msg_type=147,$.prototype.constructor=$,$.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:n.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),$.prototype.fieldSpec=[],$.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),$.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),$.prototype.fieldSpec.push(["valid","writeUInt8",1]),$.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),$.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let ee=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_DELAY",this.fields=t||this.parser.parse(e.payload),this};(ee.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_DELAY",ee.prototype.msg_type=148,ee.prototype.constructor=ee,ee.prototype.parser=(new o).endianess("little").nest("t_op",{type:c.prototype.parser}).nest("sid",{type:s.prototype.parser}).uint8("valid").int16("tgd").int16("isc_l1ca").int16("isc_l2c"),ee.prototype.fieldSpec=[],ee.prototype.fieldSpec.push(["t_op",c.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ee.prototype.fieldSpec.push(["valid","writeUInt8",1]),ee.prototype.fieldSpec.push(["tgd","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l1ca","writeInt16LE",2]),ee.prototype.fieldSpec.push(["isc_l2c","writeInt16LE",2]);let te=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContent",this.fields=t||this.parser.parse(e.payload),this};(te.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContent",te.prototype.constructor=te,te.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),te.prototype.fieldSpec=[],te.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),te.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),te.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),te.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),te.prototype.fieldSpec.push(["valid","writeUInt8",1]),te.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let pe=function(e,t){return r.call(this,e),this.messageType="AlmanacCommonContentDep",this.fields=t||this.parser.parse(e.payload),this};(pe.prototype=Object.create(r.prototype)).messageType="AlmanacCommonContentDep",pe.prototype.constructor=pe,pe.prototype.parser=(new o).endianess("little").nest("sid",{type:n.prototype.parser}).nest("toa",{type:c.prototype.parser}).doublele("ura").uint32("fit_interval").uint8("valid").uint8("health_bits"),pe.prototype.fieldSpec=[],pe.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["toa",c.prototype.fieldSpec]),pe.prototype.fieldSpec.push(["ura","writeDoubleLE",8]),pe.prototype.fieldSpec.push(["fit_interval","writeUInt32LE",4]),pe.prototype.fieldSpec.push(["valid","writeUInt8",1]),pe.prototype.fieldSpec.push(["health_bits","writeUInt8",1]);let re=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS_DEP",this.fields=t||this.parser.parse(e.payload),this};(re.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS_DEP",re.prototype.msg_type=112,re.prototype.constructor=re,re.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),re.prototype.fieldSpec=[],re.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),re.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),re.prototype.fieldSpec.push(["w","writeDoubleLE",8]),re.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),re.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let oe=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GPS",this.fields=t||this.parser.parse(e.payload),this};(oe.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GPS",oe.prototype.msg_type=114,oe.prototype.constructor=oe,oe.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("m0").doublele("ecc").doublele("sqrta").doublele("omega0").doublele("omegadot").doublele("w").doublele("inc").doublele("af0").doublele("af1"),oe.prototype.fieldSpec=[],oe.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),oe.prototype.fieldSpec.push(["m0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["ecc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["sqrta","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omega0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["omegadot","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["w","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["inc","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af0","writeDoubleLE",8]),oe.prototype.fieldSpec.push(["af1","writeDoubleLE",8]);let ie=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO_DEP",this.fields=t||this.parser.parse(e.payload),this};(ie.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO_DEP",ie.prototype.msg_type=113,ie.prototype.constructor=ie,ie.prototype.parser=(new o).endianess("little").nest("common",{type:pe.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),ie.prototype.fieldSpec=[],ie.prototype.fieldSpec.push(["common",pe.prototype.fieldSpec]),ie.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["i","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),ie.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let se=function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC_GLO",this.fields=t||this.parser.parse(e.payload),this};(se.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC_GLO",se.prototype.msg_type=115,se.prototype.constructor=se,se.prototype.parser=(new o).endianess("little").nest("common",{type:te.prototype.parser}).doublele("lambda_na").doublele("t_lambda_na").doublele("i").doublele("t").doublele("t_dot").doublele("epsilon").doublele("omega"),se.prototype.fieldSpec=[],se.prototype.fieldSpec.push(["common",te.prototype.fieldSpec]),se.prototype.fieldSpec.push(["lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_lambda_na","writeDoubleLE",8]),se.prototype.fieldSpec.push(["i","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t","writeDoubleLE",8]),se.prototype.fieldSpec.push(["t_dot","writeDoubleLE",8]),se.prototype.fieldSpec.push(["epsilon","writeDoubleLE",8]),se.prototype.fieldSpec.push(["omega","writeDoubleLE",8]);let ne=function(e,t){return r.call(this,e),this.messageType="MSG_GLO_BIASES",this.fields=t||this.parser.parse(e.payload),this};(ne.prototype=Object.create(r.prototype)).messageType="MSG_GLO_BIASES",ne.prototype.msg_type=117,ne.prototype.constructor=ne,ne.prototype.parser=(new o).endianess("little").uint8("mask").int16("l1ca_bias").int16("l1p_bias").int16("l2ca_bias").int16("l2p_bias"),ne.prototype.fieldSpec=[],ne.prototype.fieldSpec.push(["mask","writeUInt8",1]),ne.prototype.fieldSpec.push(["l1ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l1p_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2ca_bias","writeInt16LE",2]),ne.prototype.fieldSpec.push(["l2p_bias","writeInt16LE",2]);let ae=function(e,t){return r.call(this,e),this.messageType="SvAzEl",this.fields=t||this.parser.parse(e.payload),this};(ae.prototype=Object.create(r.prototype)).messageType="SvAzEl",ae.prototype.constructor=ae,ae.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("az").int8("el"),ae.prototype.fieldSpec=[],ae.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),ae.prototype.fieldSpec.push(["az","writeUInt8",1]),ae.prototype.fieldSpec.push(["el","writeInt8",1]);let le=function(e,t){return r.call(this,e),this.messageType="MSG_SV_AZ_EL",this.fields=t||this.parser.parse(e.payload),this};(le.prototype=Object.create(r.prototype)).messageType="MSG_SV_AZ_EL",le.prototype.msg_type=151,le.prototype.constructor=le,le.prototype.parser=(new o).endianess("little").array("azel",{type:ae.prototype.parser,readUntil:"eof"}),le.prototype.fieldSpec=[],le.prototype.fieldSpec.push(["azel","array",ae.prototype.fieldSpec,function(){return this.fields.array.length},null]);let ce=function(e,t){return r.call(this,e),this.messageType="MSG_OSR",this.fields=t||this.parser.parse(e.payload),this};(ce.prototype=Object.create(r.prototype)).messageType="MSG_OSR",ce.prototype.msg_type=1600,ce.prototype.constructor=ce,ce.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).array("obs",{type:f.prototype.parser,readUntil:"eof"}),ce.prototype.fieldSpec=[],ce.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),ce.prototype.fieldSpec.push(["obs","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={ObservationHeader:u,Doppler:y,PackedObsContent:h,PackedOsrContent:f,74:d,MsgObs:d,68:_,MsgBasePosLlh:_,72:S,MsgBasePosEcef:S,EphemerisCommonContent:g,EphemerisCommonContentDepB:w,EphemerisCommonContentDepA:E,129:m,MsgEphemerisGpsDepE:m,134:b,MsgEphemerisGpsDepF:b,138:I,MsgEphemerisGps:I,142:L,MsgEphemerisQzss:L,137:T,MsgEphemerisBds:T,149:v,MsgEphemerisGalDepA:v,141:U,MsgEphemerisGal:U,130:M,MsgEphemerisSbasDepA:M,131:D,MsgEphemerisGloDepA:D,132:O,MsgEphemerisSbasDepB:O,140:G,MsgEphemerisSbas:G,133:A,MsgEphemerisGloDepB:A,135:C,MsgEphemerisGloDepC:C,136:R,MsgEphemerisGloDepD:R,139:P,MsgEphemerisGlo:P,128:N,MsgEphemerisDepD:N,26:j,MsgEphemerisDepA:j,70:x,MsgEphemerisDepB:x,71:k,MsgEphemerisDepC:k,ObservationHeaderDep:F,CarrierPhaseDepA:B,PackedObsContentDepA:q,PackedObsContentDepB:z,PackedObsContentDepC:H,69:V,MsgObsDepA:V,67:Y,MsgObsDepB:Y,73:W,MsgObsDepC:W,144:Q,MsgIono:Q,145:K,MsgSvConfigurationGpsDep:K,GnssCapb:X,150:J,MsgGnssCapb:J,146:Z,MsgGroupDelayDepA:Z,147:$,MsgGroupDelayDepB:$,148:ee,MsgGroupDelay:ee,AlmanacCommonContent:te,AlmanacCommonContentDep:pe,112:re,MsgAlmanacGpsDep:re,114:oe,MsgAlmanacGps:oe,113:ie,MsgAlmanacGloDep:ie,115:se,MsgAlmanacGlo:se,117:ne,MsgGloBiases:ne,SvAzEl:ae,151:le,MsgSvAzEl:le,1600:ce,MsgOsr:ce}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_BASELINE_HEADING",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_BASELINE_HEADING",i.prototype.msg_type=527,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").uint32("heading").uint8("n_sats").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["heading","writeUInt32LE",4]),i.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_QUAT",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_QUAT",s.prototype.msg_type=544,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint32("tow").int32("w").int32("x").int32("y").int32("z").floatle("w_accuracy").floatle("x_accuracy").floatle("y_accuracy").floatle("z_accuracy").uint8("flags"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["w","writeInt32LE",4]),s.prototype.fieldSpec.push(["x","writeInt32LE",4]),s.prototype.fieldSpec.push(["y","writeInt32LE",4]),s.prototype.fieldSpec.push(["z","writeInt32LE",4]),s.prototype.fieldSpec.push(["w_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["x_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["y_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["z_accuracy","writeFloatLE",4]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_ORIENT_EULER",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_ORIENT_EULER",n.prototype.msg_type=545,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").int32("roll").int32("pitch").int32("yaw").floatle("roll_accuracy").floatle("pitch_accuracy").floatle("yaw_accuracy").uint8("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["roll","writeInt32LE",4]),n.prototype.fieldSpec.push(["pitch","writeInt32LE",4]),n.prototype.fieldSpec.push(["yaw","writeInt32LE",4]),n.prototype.fieldSpec.push(["roll_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["pitch_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["yaw_accuracy","writeFloatLE",4]),n.prototype.fieldSpec.push(["flags","writeUInt8",1]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_ANGULAR_RATE",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_ANGULAR_RATE",a.prototype.msg_type=546,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint32("tow").int32("x").int32("y").int32("z").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),a.prototype.fieldSpec.push(["x","writeInt32LE",4]),a.prototype.fieldSpec.push(["y","writeInt32LE",4]),a.prototype.fieldSpec.push(["z","writeInt32LE",4]),a.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={527:i,MsgBaselineHeading:i,544:s,MsgOrientQuat:s,545:n,MsgOrientEuler:n,546:a,MsgAngularRate:a}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=p(0).GnssSignalDep,n=p(0).GPSTime,a=p(0).GPSTimeDep,l=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_ALMANAC",this.fields=t||this.parser.parse(e.payload),this});(l.prototype=Object.create(r.prototype)).messageType="MSG_ALMANAC",l.prototype.msg_type=105,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little"),l.prototype.fieldSpec=[];let c=function(e,t){return r.call(this,e),this.messageType="MSG_SET_TIME",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SET_TIME",c.prototype.msg_type=104,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little"),c.prototype.fieldSpec=[];let u=function(e,t){return r.call(this,e),this.messageType="MSG_RESET",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_RESET",u.prototype.msg_type=182,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint32("flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_DEP",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_RESET_DEP",y.prototype.msg_type=178,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_CW_RESULTS",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CW_RESULTS",h.prototype.msg_type=192,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little"),h.prototype.fieldSpec=[];let f=function(e,t){return r.call(this,e),this.messageType="MSG_CW_START",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CW_START",f.prototype.msg_type=193,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little"),f.prototype.fieldSpec=[];let d=function(e,t){return r.call(this,e),this.messageType="MSG_RESET_FILTERS",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_RESET_FILTERS",d.prototype.msg_type=34,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint8("filter"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["filter","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_INIT_BASE_DEP",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_INIT_BASE_DEP",_.prototype.msg_type=35,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little"),_.prototype.fieldSpec=[];let S=function(e,t){return r.call(this,e),this.messageType="MSG_THREAD_STATE",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_THREAD_STATE",S.prototype.msg_type=23,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").string("name",{length:20}).uint16("cpu").uint32("stack_free"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["name","string",20]),S.prototype.fieldSpec.push(["cpu","writeUInt16LE",2]),S.prototype.fieldSpec.push(["stack_free","writeUInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="UARTChannel",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="UARTChannel",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").floatle("tx_throughput").floatle("rx_throughput").uint16("crc_error_count").uint16("io_error_count").uint8("tx_buffer_level").uint8("rx_buffer_level"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["tx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["rx_throughput","writeFloatLE",4]),g.prototype.fieldSpec.push(["crc_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["io_error_count","writeUInt16LE",2]),g.prototype.fieldSpec.push(["tx_buffer_level","writeUInt8",1]),g.prototype.fieldSpec.push(["rx_buffer_level","writeUInt8",1]);let w=function(e,t){return r.call(this,e),this.messageType="Period",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="Period",w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").int32("avg").int32("pmin").int32("pmax").int32("current"),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["avg","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmin","writeInt32LE",4]),w.prototype.fieldSpec.push(["pmax","writeInt32LE",4]),w.prototype.fieldSpec.push(["current","writeInt32LE",4]);let E=function(e,t){return r.call(this,e),this.messageType="Latency",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="Latency",E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").int32("avg").int32("lmin").int32("lmax").int32("current"),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["avg","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmin","writeInt32LE",4]),E.prototype.fieldSpec.push(["lmax","writeInt32LE",4]),E.prototype.fieldSpec.push(["current","writeInt32LE",4]);let m=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE",m.prototype.msg_type=29,m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}).nest("obs_period",{type:w.prototype.parser}),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),m.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]),m.prototype.fieldSpec.push(["obs_period",w.prototype.fieldSpec]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_UART_STATE_DEPA",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_UART_STATE_DEPA",b.prototype.msg_type=24,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("uart_a",{type:g.prototype.parser}).nest("uart_b",{type:g.prototype.parser}).nest("uart_ftdi",{type:g.prototype.parser}).nest("latency",{type:E.prototype.parser}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["uart_a",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_b",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["uart_ftdi",g.prototype.fieldSpec]),b.prototype.fieldSpec.push(["latency",E.prototype.fieldSpec]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_IAR_STATE",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_IAR_STATE",I.prototype.msg_type=25,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint32("num_hyps"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["num_hyps","writeUInt32LE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE",L.prototype.msg_type=43,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:i.prototype.parser}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["mask","writeUInt8",1]),L.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_MASK_SATELLITE_DEP",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_MASK_SATELLITE_DEP",T.prototype.msg_type=27,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").uint8("mask").nest("sid",{type:s.prototype.parser}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["mask","writeUInt8",1]),T.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_DEVICE_MONITOR",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_DEVICE_MONITOR",v.prototype.msg_type=181,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").int16("dev_vin").int16("cpu_vint").int16("cpu_vaux").int16("cpu_temperature").int16("fe_temperature"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["dev_vin","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vint","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_vaux","writeInt16LE",2]),v.prototype.fieldSpec.push(["cpu_temperature","writeInt16LE",2]),v.prototype.fieldSpec.push(["fe_temperature","writeInt16LE",2]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_REQ",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_REQ",U.prototype.msg_type=184,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint32("sequence").string("command",{greedy:!0}),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),U.prototype.fieldSpec.push(["command","string",null]);let M=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_RESP",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_RESP",M.prototype.msg_type=185,M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").uint32("sequence").int32("code"),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),M.prototype.fieldSpec.push(["code","writeInt32LE",4]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_COMMAND_OUTPUT",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_COMMAND_OUTPUT",D.prototype.msg_type=188,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").uint32("sequence").string("line",{greedy:!0}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),D.prototype.fieldSpec.push(["line","string",null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_REQ",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_REQ",O.prototype.msg_type=186,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little"),O.prototype.fieldSpec=[];let G=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_STATE_RESP",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_STATE_RESP",G.prototype.msg_type=187,G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").array("ipv4_address",{length:4,type:"uint8"}).uint8("ipv4_mask_size").array("ipv6_address",{length:16,type:"uint8"}).uint8("ipv6_mask_size").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}).uint32("flags"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["ipv4_address","array","writeUInt8",function(){return 1},4]),G.prototype.fieldSpec.push(["ipv4_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["ipv6_address","array","writeUInt8",function(){return 1},16]),G.prototype.fieldSpec.push(["ipv6_mask_size","writeUInt8",1]),G.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),G.prototype.fieldSpec.push(["interface_name","string",16]),G.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let A=function(e,t){return r.call(this,e),this.messageType="NetworkUsage",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="NetworkUsage",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").uint64("duration").uint64("total_bytes").uint32("rx_bytes").uint32("tx_bytes").string("interface_name",{length:16}),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["duration","writeUInt64LE",8]),A.prototype.fieldSpec.push(["total_bytes","writeUInt64LE",8]),A.prototype.fieldSpec.push(["rx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["tx_bytes","writeUInt32LE",4]),A.prototype.fieldSpec.push(["interface_name","string",16]);let C=function(e,t){return r.call(this,e),this.messageType="MSG_NETWORK_BANDWIDTH_USAGE",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="MSG_NETWORK_BANDWIDTH_USAGE",C.prototype.msg_type=189,C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").array("interfaces",{type:A.prototype.parser,readUntil:"eof"}),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["interfaces","array",A.prototype.fieldSpec,function(){return this.fields.array.length},null]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_CELL_MODEM_STATUS",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_CELL_MODEM_STATUS",R.prototype.msg_type=190,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").int8("signal_strength").floatle("signal_error_rate").array("reserved",{type:"uint8",readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["signal_strength","writeInt8",1]),R.prototype.fieldSpec.push(["signal_error_rate","writeFloatLE",4]),R.prototype.fieldSpec.push(["reserved","array","writeUInt8",function(){return 1},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN_DEP",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN_DEP",P.prototype.msg_type=80,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:a.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),P.prototype.fieldSpec.push(["t",a.prototype.fieldSpec]),P.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),P.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SPECAN",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SPECAN",N.prototype.msg_type=81,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").uint16("channel_tag").nest("t",{type:n.prototype.parser}).floatle("freq_ref").floatle("freq_step").floatle("amplitude_ref").floatle("amplitude_unit").array("amplitude_value",{type:"uint8",readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["channel_tag","writeUInt16LE",2]),N.prototype.fieldSpec.push(["t",n.prototype.fieldSpec]),N.prototype.fieldSpec.push(["freq_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["freq_step","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_ref","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_unit","writeFloatLE",4]),N.prototype.fieldSpec.push(["amplitude_value","array","writeUInt8",function(){return 1},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_FRONT_END_GAIN",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_FRONT_END_GAIN",j.prototype.msg_type=191,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").array("rf_gain",{length:8,type:"int8"}).array("if_gain",{length:8,type:"int8"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["rf_gain","array","writeInt8",function(){return 1},8]),j.prototype.fieldSpec.push(["if_gain","array","writeInt8",function(){return 1},8]),e.exports={105:l,MsgAlmanac:l,104:c,MsgSetTime:c,182:u,MsgReset:u,178:y,MsgResetDep:y,192:h,MsgCwResults:h,193:f,MsgCwStart:f,34:d,MsgResetFilters:d,35:_,MsgInitBaseDep:_,23:S,MsgThreadState:S,UARTChannel:g,Period:w,Latency:E,29:m,MsgUartState:m,24:b,MsgUartStateDepa:b,25:I,MsgIarState:I,43:L,MsgMaskSatellite:L,27:T,MsgMaskSatelliteDep:T,181:v,MsgDeviceMonitor:v,184:U,MsgCommandReq:U,185:M,MsgCommandResp:M,188:D,MsgCommandOutput:D,186:O,MsgNetworkStateReq:O,187:G,MsgNetworkStateResp:G,NetworkUsage:A,189:C,MsgNetworkBandwidthUsage:C,190:R,MsgCellModemStatus:R,80:P,MsgSpecanDep:P,81:N,MsgSpecan:N,191:j,MsgFrontEndGain:j}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_SBAS_RAW",this.fields=t||this.parser.parse(e.payload),this});(s.prototype=Object.create(r.prototype)).messageType="MSG_SBAS_RAW",s.prototype.msg_type=30583,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint32("tow").uint8("message_type").array("data",{length:27,type:"uint8"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),s.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["message_type","writeUInt8",1]),s.prototype.fieldSpec.push(["data","array","writeUInt8",function(){return 1},27]),e.exports={30583:s,MsgSbasRaw:s}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_SAVE",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_SAVE",i.prototype.msg_type=161,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little"),i.prototype.fieldSpec=[];let s=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE",s.prototype.msg_type=160,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["setting","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_WRITE_RESP",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_WRITE_RESP",n.prototype.msg_type=175,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["status","writeUInt8",1]),n.prototype.fieldSpec.push(["setting","string",null]);let a=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_REQ",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_REQ",a.prototype.msg_type=164,a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["setting","string",null]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_RESP",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_RESP",l.prototype.msg_type=165,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["setting","string",null]);let c=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_REQ",c.prototype.msg_type=162,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("index"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["index","writeUInt16LE",2]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_RESP",u.prototype.msg_type=167,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("index").string("setting",{greedy:!0}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["index","writeUInt16LE",2]),u.prototype.fieldSpec.push(["setting","string",null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_READ_BY_INDEX_DONE",y.prototype.msg_type=166,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little"),y.prototype.fieldSpec=[];let h=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER",h.prototype.msg_type=174,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").string("setting",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["setting","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_SETTINGS_REGISTER_RESP",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_SETTINGS_REGISTER_RESP",f.prototype.msg_type=431,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("status").string("setting",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["status","writeUInt8",1]),f.prototype.fieldSpec.push(["setting","string",null]),e.exports={161:i,MsgSettingsSave:i,160:s,MsgSettingsWrite:s,175:n,MsgSettingsWriteResp:n,164:a,MsgSettingsReadReq:a,165:l,MsgSettingsReadResp:l,162:c,MsgSettingsReadByIndexReq:c,167:u,MsgSettingsReadByIndexResp:u,166:y,MsgSettingsReadByIndexDone:y,174:h,MsgSettingsRegister:h,431:f,MsgSettingsRegisterResp:f}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="SolutionInputType",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="SolutionInputType",i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("sensor_type").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META_DEP_A",s.prototype.msg_type=65295,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint16("pdop").uint16("hdop").uint16("vdop").uint8("n_sats").uint16("age_corrections").uint8("alignment_status").uint32("last_used_gnss_pos_tow").uint32("last_used_gnss_vel_tow").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),s.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),s.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),s.prototype.fieldSpec.push(["alignment_status","writeUInt8",1]),s.prototype.fieldSpec.push(["last_used_gnss_pos_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["last_used_gnss_vel_tow","writeUInt32LE",4]),s.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_SOLN_META",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_SOLN_META",n.prototype.msg_type=65294,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("tow").uint16("pdop").uint16("hdop").uint16("vdop").uint16("age_corrections").uint32("age_gnss").array("sol_in",{type:i.prototype.parser,readUntil:"eof"}),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),n.prototype.fieldSpec.push(["pdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["hdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["vdop","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_corrections","writeUInt16LE",2]),n.prototype.fieldSpec.push(["age_gnss","writeUInt32LE",4]),n.prototype.fieldSpec.push(["sol_in","array",i.prototype.fieldSpec,function(){return this.fields.array.length},null]);let a=function(e,t){return r.call(this,e),this.messageType="GNSSInputType",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="GNSSInputType",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("flags"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["flags","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="IMUInputType",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="IMUInputType",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("flags"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["flags","writeUInt8",1]);let c=function(e,t){return r.call(this,e),this.messageType="OdoInputType",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="OdoInputType",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint8("flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["flags","writeUInt8",1]),e.exports={SolutionInputType:i,65295:s,MsgSolnMetaDepA:s,65294:n,MsgSolnMeta:n,GNSSInputType:a,IMUInputType:l,OdoInputType:c}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase,p(0).GnssSignal),s=(p(0).GnssSignalDep,p(0).GPSTime,p(0).GPSTimeDep,p(0).GPSTimeSec),n=p(0).SvId,a=function(e,t){return r.call(this,e),this.messageType="CodeBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="CodeBiasesContent",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint8("code").int16("value"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["code","writeUInt8",1]),a.prototype.fieldSpec.push(["value","writeInt16LE",2]);let l=function(e,t){return r.call(this,e),this.messageType="PhaseBiasesContent",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="PhaseBiasesContent",l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint8("code").uint8("integer_indicator").uint8("widelane_integer_indicator").uint8("discontinuity_counter").int32("bias"),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["code","writeUInt8",1]),l.prototype.fieldSpec.push(["integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["widelane_integer_indicator","writeUInt8",1]),l.prototype.fieldSpec.push(["discontinuity_counter","writeUInt8",1]),l.prototype.fieldSpec.push(["bias","writeInt32LE",4]);let c=function(e,t){return r.call(this,e),this.messageType="STECHeader",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="STECHeader",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),c.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),c.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),c.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),c.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeader",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeader",u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),u.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),u.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),u.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),u.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),u.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),u.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="STECSatElement",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="STECSatElement",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).uint8("stec_quality_indicator").array("stec_coeff",{length:4,type:"int16le"}),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),y.prototype.fieldSpec.push(["stec_quality_indicator","writeUInt8",1]),y.prototype.fieldSpec.push(["stec_coeff","array","writeInt16LE",function(){return 2},4]);let h=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrectionNoStd",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrectionNoStd",h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet"),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),h.prototype.fieldSpec.push(["wet","writeInt8",1]);let f=function(e,t){return r.call(this,e),this.messageType="TroposphericDelayCorrection",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="TroposphericDelayCorrection",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").int16("hydro").int8("wet").uint8("stddev"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["hydro","writeInt16LE",2]),f.prototype.fieldSpec.push(["wet","writeInt8",1]),f.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="STECResidualNoStd",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="STECResidualNoStd",d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),d.prototype.fieldSpec.push(["residual","writeInt16LE",2]);let _=function(e,t){return r.call(this,e),this.messageType="STECResidual",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="STECResidual",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").nest("sv_id",{type:n.prototype.parser}).int16("residual").uint8("stddev"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["sv_id",n.prototype.fieldSpec]),_.prototype.fieldSpec.push(["residual","writeInt16LE",2]),_.prototype.fieldSpec.push(["stddev","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK",S.prototype.msg_type=1501,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint32("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),S.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),S.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),S.prototype.fieldSpec.push(["iod","writeUInt32LE",4]),S.prototype.fieldSpec.push(["radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["along","writeInt32LE",4]),S.prototype.fieldSpec.push(["cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),S.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),S.prototype.fieldSpec.push(["c0","writeInt32LE",4]),S.prototype.fieldSpec.push(["c1","writeInt32LE",4]),S.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_BIASES",g.prototype.msg_type=1505,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").array("biases",{type:a.prototype.parser,readUntil:"eof"}),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),g.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),g.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),g.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),g.prototype.fieldSpec.push(["biases","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_PHASE_BIASES",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_SSR_PHASE_BIASES",w.prototype.msg_type=1510,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("dispersive_bias").uint8("mw_consistency").uint16("yaw").int8("yaw_rate").array("biases",{type:l.prototype.parser,readUntil:"eof"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),w.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),w.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),w.prototype.fieldSpec.push(["dispersive_bias","writeUInt8",1]),w.prototype.fieldSpec.push(["mw_consistency","writeUInt8",1]),w.prototype.fieldSpec.push(["yaw","writeUInt16LE",2]),w.prototype.fieldSpec.push(["yaw_rate","writeInt8",1]),w.prototype.fieldSpec.push(["biases","array",l.prototype.fieldSpec,function(){return this.fields.array.length},null]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP",E.prototype.msg_type=1531,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").nest("header",{type:c.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["header",c.prototype.fieldSpec]),E.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let m=function(e,t){return r.call(this,e),this.messageType="BoundsHeader",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="BoundsHeader",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("sol_id"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),m.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),m.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),m.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),m.prototype.fieldSpec.push(["sol_id","writeUInt8",1]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION",b.prototype.msg_type=1533,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("n_sats").array("stec_sat_list",{type:y.prototype.parser,length:"n_sats"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),b.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),b.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),b.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),b.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let I=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION",I.prototype.msg_type=1532,I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").nest("header",{type:u.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["header",u.prototype.fieldSpec]),I.prototype.fieldSpec.push(["index","writeUInt16LE",2]),I.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),I.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let L=function(e,t){return r.call(this,e),this.messageType="STECSatElementIntegrity",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="STECSatElementIntegrity",L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").nest("stec_residual",{type:_.prototype.parser}).uint8("stec_bound_mu").uint8("stec_bound_sig").uint8("stec_bound_mu_dot").uint8("stec_bound_sig_dot"),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["stec_residual",_.prototype.fieldSpec]),L.prototype.fieldSpec.push(["stec_bound_mu","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_mu_dot","writeUInt8",1]),L.prototype.fieldSpec.push(["stec_bound_sig_dot","writeUInt8",1]);let T=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(T.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_BOUNDS",T.prototype.msg_type=1534,T.prototype.constructor=T,T.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod_atmo").uint16("tile_set_id").uint16("tile_id").uint8("tropo_qi").uint16("grid_point_id").nest("tropo_delay_correction",{type:f.prototype.parser}).uint8("tropo_v_hydro_bound_mu").uint8("tropo_v_hydro_bound_sig").uint8("tropo_v_wet_bound_mu").uint8("tropo_v_wet_bound_sig").uint8("n_sats").array("stec_sat_list",{type:L.prototype.parser,length:"n_sats"}),T.prototype.fieldSpec=[],T.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),T.prototype.fieldSpec.push(["ssr_iod_atmo","writeUInt8",1]),T.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_qi","writeUInt8",1]),T.prototype.fieldSpec.push(["grid_point_id","writeUInt16LE",2]),T.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_hydro_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_mu","writeUInt8",1]),T.prototype.fieldSpec.push(["tropo_v_wet_bound_sig","writeUInt8",1]),T.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),T.prototype.fieldSpec.push(["stec_sat_list","array",L.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let v=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION_DEP",this.fields=t||this.parser.parse(e.payload),this};(v.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION_DEP",v.prototype.msg_type=1526,v.prototype.constructor=v,v.prototype.parser=(new o).endianess("little").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),v.prototype.fieldSpec=[],v.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),v.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),v.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),v.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),v.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),v.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let U=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_TILE_DEFINITION",this.fields=t||this.parser.parse(e.payload),this};(U.prototype=Object.create(r.prototype)).messageType="MSG_SSR_TILE_DEFINITION",U.prototype.msg_type=1527,U.prototype.constructor=U,U.prototype.parser=(new o).endianess("little").uint8("ssr_sol_id").uint16("tile_set_id").uint16("tile_id").int16("corner_nw_lat").int16("corner_nw_lon").uint16("spacing_lat").uint16("spacing_lon").uint16("rows").uint16("cols").uint64("bitmask"),U.prototype.fieldSpec=[],U.prototype.fieldSpec.push(["ssr_sol_id","writeUInt8",1]),U.prototype.fieldSpec.push(["tile_set_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["tile_id","writeUInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lat","writeInt16LE",2]),U.prototype.fieldSpec.push(["corner_nw_lon","writeInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lat","writeUInt16LE",2]),U.prototype.fieldSpec.push(["spacing_lon","writeUInt16LE",2]),U.prototype.fieldSpec.push(["rows","writeUInt16LE",2]),U.prototype.fieldSpec.push(["cols","writeUInt16LE",2]),U.prototype.fieldSpec.push(["bitmask","writeUInt64LE",8]);let M=function(e,t){return r.call(this,e),this.messageType="SatelliteAPC",this.fields=t||this.parser.parse(e.payload),this};(M.prototype=Object.create(r.prototype)).messageType="SatelliteAPC",M.prototype.constructor=M,M.prototype.parser=(new o).endianess("little").nest("sid",{type:i.prototype.parser}).uint8("sat_info").uint16("svn").array("pco",{length:3,type:"int16le"}).array("pcv",{length:21,type:"int8"}),M.prototype.fieldSpec=[],M.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),M.prototype.fieldSpec.push(["sat_info","writeUInt8",1]),M.prototype.fieldSpec.push(["svn","writeUInt16LE",2]),M.prototype.fieldSpec.push(["pco","array","writeInt16LE",function(){return 2},3]),M.prototype.fieldSpec.push(["pcv","array","writeInt8",function(){return 1},21]);let D=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_SATELLITE_APC",this.fields=t||this.parser.parse(e.payload),this};(D.prototype=Object.create(r.prototype)).messageType="MSG_SSR_SATELLITE_APC",D.prototype.msg_type=1540,D.prototype.constructor=D,D.prototype.parser=(new o).endianess("little").array("apc",{type:M.prototype.parser,readUntil:"eof"}),D.prototype.fieldSpec=[],D.prototype.fieldSpec.push(["apc","array",M.prototype.fieldSpec,function(){return this.fields.array.length},null]);let O=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(O.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_DEP_A",O.prototype.msg_type=1500,O.prototype.constructor=O,O.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).nest("sid",{type:i.prototype.parser}).uint8("update_interval").uint8("iod_ssr").uint8("iod").int32("radial").int32("along").int32("cross").int32("dot_radial").int32("dot_along").int32("dot_cross").int32("c0").int32("c1").int32("c2"),O.prototype.fieldSpec=[],O.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),O.prototype.fieldSpec.push(["sid",i.prototype.fieldSpec]),O.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),O.prototype.fieldSpec.push(["iod_ssr","writeUInt8",1]),O.prototype.fieldSpec.push(["iod","writeUInt8",1]),O.prototype.fieldSpec.push(["radial","writeInt32LE",4]),O.prototype.fieldSpec.push(["along","writeInt32LE",4]),O.prototype.fieldSpec.push(["cross","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_radial","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_along","writeInt32LE",4]),O.prototype.fieldSpec.push(["dot_cross","writeInt32LE",4]),O.prototype.fieldSpec.push(["c0","writeInt32LE",4]),O.prototype.fieldSpec.push(["c1","writeInt32LE",4]),O.prototype.fieldSpec.push(["c2","writeInt32LE",4]);let G=function(e,t){return r.call(this,e),this.messageType="STECHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(G.prototype=Object.create(r.prototype)).messageType="STECHeaderDepA",G.prototype.constructor=G,G.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint8("num_msgs").uint8("seq_num").uint8("update_interval").uint8("iod_atmo"),G.prototype.fieldSpec=[],G.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),G.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),G.prototype.fieldSpec.push(["seq_num","writeUInt8",1]),G.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),G.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]);let A=function(e,t){return r.call(this,e),this.messageType="GriddedCorrectionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(A.prototype=Object.create(r.prototype)).messageType="GriddedCorrectionHeaderDepA",A.prototype.constructor=A,A.prototype.parser=(new o).endianess("little").nest("time",{type:s.prototype.parser}).uint16("num_msgs").uint16("seq_num").uint8("update_interval").uint8("iod_atmo").uint8("tropo_quality_indicator"),A.prototype.fieldSpec=[],A.prototype.fieldSpec.push(["time",s.prototype.fieldSpec]),A.prototype.fieldSpec.push(["num_msgs","writeUInt16LE",2]),A.prototype.fieldSpec.push(["seq_num","writeUInt16LE",2]),A.prototype.fieldSpec.push(["update_interval","writeUInt8",1]),A.prototype.fieldSpec.push(["iod_atmo","writeUInt8",1]),A.prototype.fieldSpec.push(["tropo_quality_indicator","writeUInt8",1]);let C=function(e,t){return r.call(this,e),this.messageType="GridDefinitionHeaderDepA",this.fields=t||this.parser.parse(e.payload),this};(C.prototype=Object.create(r.prototype)).messageType="GridDefinitionHeaderDepA",C.prototype.constructor=C,C.prototype.parser=(new o).endianess("little").uint8("region_size_inverse").uint16("area_width").uint16("lat_nw_corner_enc").uint16("lon_nw_corner_enc").uint8("num_msgs").uint8("seq_num"),C.prototype.fieldSpec=[],C.prototype.fieldSpec.push(["region_size_inverse","writeUInt8",1]),C.prototype.fieldSpec.push(["area_width","writeUInt16LE",2]),C.prototype.fieldSpec.push(["lat_nw_corner_enc","writeUInt16LE",2]),C.prototype.fieldSpec.push(["lon_nw_corner_enc","writeUInt16LE",2]),C.prototype.fieldSpec.push(["num_msgs","writeUInt8",1]),C.prototype.fieldSpec.push(["seq_num","writeUInt8",1]);let R=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_STEC_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(R.prototype=Object.create(r.prototype)).messageType="MSG_SSR_STEC_CORRECTION_DEP_A",R.prototype.msg_type=1515,R.prototype.constructor=R,R.prototype.parser=(new o).endianess("little").nest("header",{type:G.prototype.parser}).array("stec_sat_list",{type:y.prototype.parser,readUntil:"eof"}),R.prototype.fieldSpec=[],R.prototype.fieldSpec.push(["header",G.prototype.fieldSpec]),R.prototype.fieldSpec.push(["stec_sat_list","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let P=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(P.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A",P.prototype.msg_type=1520,P.prototype.constructor=P,P.prototype.parser=(new o).endianess("little").nest("header",{type:A.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:h.prototype.parser}).array("stec_residuals",{type:d.prototype.parser,readUntil:"eof"}),P.prototype.fieldSpec=[],P.prototype.fieldSpec.push(["header",A.prototype.fieldSpec]),P.prototype.fieldSpec.push(["index","writeUInt16LE",2]),P.prototype.fieldSpec.push(["tropo_delay_correction",h.prototype.fieldSpec]),P.prototype.fieldSpec.push(["stec_residuals","array",d.prototype.fieldSpec,function(){return this.fields.array.length},null]);let N=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(N.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRIDDED_CORRECTION_DEP_A",N.prototype.msg_type=1530,N.prototype.constructor=N,N.prototype.parser=(new o).endianess("little").nest("header",{type:A.prototype.parser}).uint16("index").nest("tropo_delay_correction",{type:f.prototype.parser}).array("stec_residuals",{type:_.prototype.parser,readUntil:"eof"}),N.prototype.fieldSpec=[],N.prototype.fieldSpec.push(["header",A.prototype.fieldSpec]),N.prototype.fieldSpec.push(["index","writeUInt16LE",2]),N.prototype.fieldSpec.push(["tropo_delay_correction",f.prototype.fieldSpec]),N.prototype.fieldSpec.push(["stec_residuals","array",_.prototype.fieldSpec,function(){return this.fields.array.length},null]);let j=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_GRID_DEFINITION_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(j.prototype=Object.create(r.prototype)).messageType="MSG_SSR_GRID_DEFINITION_DEP_A",j.prototype.msg_type=1525,j.prototype.constructor=j,j.prototype.parser=(new o).endianess("little").nest("header",{type:C.prototype.parser}).array("rle_list",{type:"uint8",readUntil:"eof"}),j.prototype.fieldSpec=[],j.prototype.fieldSpec.push(["header",C.prototype.fieldSpec]),j.prototype.fieldSpec.push(["rle_list","array","writeUInt8",function(){return 1},null]);let x=function(e,t){return r.call(this,e),this.messageType="OrbitClockBound",this.fields=t||this.parser.parse(e.payload),this};(x.prototype=Object.create(r.prototype)).messageType="OrbitClockBound",x.prototype.constructor=x,x.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("orb_radial_bound_mu").uint8("orb_along_bound_mu").uint8("orb_cross_bound_mu").uint8("orb_radial_bound_sig").uint8("orb_along_bound_sig").uint8("orb_cross_bound_sig").uint8("clock_bound_mu").uint8("clock_bound_sig"),x.prototype.fieldSpec=[],x.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_radial_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_along_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_cross_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_radial_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_along_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["orb_cross_bound_sig","writeUInt8",1]),x.prototype.fieldSpec.push(["clock_bound_mu","writeUInt8",1]),x.prototype.fieldSpec.push(["clock_bound_sig","writeUInt8",1]);let k=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(k.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS",k.prototype.msg_type=1502,k.prototype.constructor=k,k.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats").array("orbit_clock_bounds",{type:x.prototype.parser,length:"n_sats"}),k.prototype.fieldSpec=[],k.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),k.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),k.prototype.fieldSpec.push(["const_id","writeUInt8",1]),k.prototype.fieldSpec.push(["n_sats","writeUInt8",1]),k.prototype.fieldSpec.push(["orbit_clock_bounds","array",x.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats"]);let F=function(e,t){return r.call(this,e),this.messageType="CodePhaseBiasesSatSig",this.fields=t||this.parser.parse(e.payload),this};(F.prototype=Object.create(r.prototype)).messageType="CodePhaseBiasesSatSig",F.prototype.constructor=F,F.prototype.parser=(new o).endianess("little").uint8("sat_id").uint8("signal_id").uint8("code_bias_bound_mu").uint8("code_bias_bound_sig").uint8("phase_bias_bound_mu").uint8("phase_bias_bound_sig"),F.prototype.fieldSpec=[],F.prototype.fieldSpec.push(["sat_id","writeUInt8",1]),F.prototype.fieldSpec.push(["signal_id","writeUInt8",1]),F.prototype.fieldSpec.push(["code_bias_bound_mu","writeUInt8",1]),F.prototype.fieldSpec.push(["code_bias_bound_sig","writeUInt8",1]),F.prototype.fieldSpec.push(["phase_bias_bound_mu","writeUInt8",1]),F.prototype.fieldSpec.push(["phase_bias_bound_sig","writeUInt8",1]);let B=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",this.fields=t||this.parser.parse(e.payload),this};(B.prototype=Object.create(r.prototype)).messageType="MSG_SSR_CODE_PHASE_BIASES_BOUNDS",B.prototype.msg_type=1516,B.prototype.constructor=B,B.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint8("n_sats_signals").array("satellites_signals",{type:F.prototype.parser,length:"n_sats_signals"}),B.prototype.fieldSpec=[],B.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),B.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),B.prototype.fieldSpec.push(["const_id","writeUInt8",1]),B.prototype.fieldSpec.push(["n_sats_signals","writeUInt8",1]),B.prototype.fieldSpec.push(["satellites_signals","array",F.prototype.fieldSpec,function(){return this.fields.array.length},"n_sats_signals"]);let q=function(e,t){return r.call(this,e),this.messageType="OrbitClockBoundDegradation",this.fields=t||this.parser.parse(e.payload),this};(q.prototype=Object.create(r.prototype)).messageType="OrbitClockBoundDegradation",q.prototype.constructor=q,q.prototype.parser=(new o).endianess("little").uint8("orb_radial_bound_mu_dot").uint8("orb_along_bound_mu_dot").uint8("orb_cross_bound_mu_dot").uint8("orb_radial_bound_sig_dot").uint8("orb_along_bound_sig_dot").uint8("orb_cross_bound_sig_dot").uint8("clock_bound_mu_dot").uint8("clock_bound_sig_dot"),q.prototype.fieldSpec=[],q.prototype.fieldSpec.push(["orb_radial_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_along_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_cross_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_radial_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_along_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["orb_cross_bound_sig_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["clock_bound_mu_dot","writeUInt8",1]),q.prototype.fieldSpec.push(["clock_bound_sig_dot","writeUInt8",1]);let z=function(e,t){return r.call(this,e),this.messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",this.fields=t||this.parser.parse(e.payload),this};(z.prototype=Object.create(r.prototype)).messageType="MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION",z.prototype.msg_type=1503,z.prototype.constructor=z,z.prototype.parser=(new o).endianess("little").nest("header",{type:m.prototype.parser}).uint8("ssr_iod").uint8("const_id").uint64("sat_bitmask").nest("orbit_clock_bounds_degradation",{type:q.prototype.parser}),z.prototype.fieldSpec=[],z.prototype.fieldSpec.push(["header",m.prototype.fieldSpec]),z.prototype.fieldSpec.push(["ssr_iod","writeUInt8",1]),z.prototype.fieldSpec.push(["const_id","writeUInt8",1]),z.prototype.fieldSpec.push(["sat_bitmask","writeUInt64LE",8]),z.prototype.fieldSpec.push(["orbit_clock_bounds_degradation",q.prototype.fieldSpec]),e.exports={CodeBiasesContent:a,PhaseBiasesContent:l,STECHeader:c,GriddedCorrectionHeader:u,STECSatElement:y,TroposphericDelayCorrectionNoStd:h,TroposphericDelayCorrection:f,STECResidualNoStd:d,STECResidual:_,1501:S,MsgSsrOrbitClock:S,1505:g,MsgSsrCodeBiases:g,1510:w,MsgSsrPhaseBiases:w,1531:E,MsgSsrStecCorrectionDep:E,BoundsHeader:m,1533:b,MsgSsrStecCorrection:b,1532:I,MsgSsrGriddedCorrection:I,STECSatElementIntegrity:L,1534:T,MsgSsrGriddedCorrectionBounds:T,1526:v,MsgSsrTileDefinitionDep:v,1527:U,MsgSsrTileDefinition:U,SatelliteAPC:M,1540:D,MsgSsrSatelliteApc:D,1500:O,MsgSsrOrbitClockDepA:O,STECHeaderDepA:G,GriddedCorrectionHeaderDepA:A,GridDefinitionHeaderDepA:C,1515:R,MsgSsrStecCorrectionDepA:R,1520:P,MsgSsrGriddedCorrectionNoStdDepA:P,1530:N,MsgSsrGriddedCorrectionDepA:N,1525:j,MsgSsrGridDefinitionDepA:j,OrbitClockBound:x,1502:k,MsgSsrOrbitClockBounds:k,CodePhaseBiasesSatSig:F,1516:B,MsgSsrCodePhaseBiasesBounds:B,OrbitClockBoundDegradation:q,1503:z,MsgSsrOrbitClockBoundsDegradation:z}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_STARTUP",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_STARTUP",i.prototype.msg_type=65280,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint8("cause").uint8("startup_type").uint16("reserved"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["cause","writeUInt8",1]),i.prototype.fieldSpec.push(["startup_type","writeUInt8",1]),i.prototype.fieldSpec.push(["reserved","writeUInt16LE",2]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_DGNSS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_DGNSS_STATUS",s.prototype.msg_type=65282,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint8("flags").uint16("latency").uint8("num_signals").string("source",{greedy:!0}),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["latency","writeUInt16LE",2]),s.prototype.fieldSpec.push(["num_signals","writeUInt8",1]),s.prototype.fieldSpec.push(["source","string",null]);let n=function(e,t){return r.call(this,e),this.messageType="MSG_HEARTBEAT",this.fields=t||this.parser.parse(e.payload),this};(n.prototype=Object.create(r.prototype)).messageType="MSG_HEARTBEAT",n.prototype.msg_type=65535,n.prototype.constructor=n,n.prototype.parser=(new o).endianess("little").uint32("flags"),n.prototype.fieldSpec=[],n.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let a=function(e,t){return r.call(this,e),this.messageType="SubSystemReport",this.fields=t||this.parser.parse(e.payload),this};(a.prototype=Object.create(r.prototype)).messageType="SubSystemReport",a.prototype.constructor=a,a.prototype.parser=(new o).endianess("little").uint16("component").uint8("generic").uint8("specific"),a.prototype.fieldSpec=[],a.prototype.fieldSpec.push(["component","writeUInt16LE",2]),a.prototype.fieldSpec.push(["generic","writeUInt8",1]),a.prototype.fieldSpec.push(["specific","writeUInt8",1]);let l=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_REPORT",this.fields=t||this.parser.parse(e.payload),this};(l.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_REPORT",l.prototype.msg_type=65534,l.prototype.constructor=l,l.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("sequence").uint32("uptime").array("status",{type:a.prototype.parser,readUntil:"eof"}),l.prototype.fieldSpec=[],l.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),l.prototype.fieldSpec.push(["sequence","writeUInt32LE",4]),l.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),l.prototype.fieldSpec.push(["status","array",a.prototype.fieldSpec,function(){return this.fields.array.length},null]);let c=function(e,t){return r.call(this,e),this.messageType="StatusJournalItem",this.fields=t||this.parser.parse(e.payload),this};(c.prototype=Object.create(r.prototype)).messageType="StatusJournalItem",c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint32("uptime").nest("report",{type:a.prototype.parser}),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["report",a.prototype.fieldSpec]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_STATUS_JOURNAL",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_STATUS_JOURNAL",u.prototype.msg_type=65533,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint16("reporting_system").uint16("sbp_version").uint32("total_status_reports").uint8("sequence_descriptor").array("journal",{type:c.prototype.parser,readUntil:"eof"}),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["reporting_system","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sbp_version","writeUInt16LE",2]),u.prototype.fieldSpec.push(["total_status_reports","writeUInt32LE",4]),u.prototype.fieldSpec.push(["sequence_descriptor","writeUInt8",1]),u.prototype.fieldSpec.push(["journal","array",c.prototype.fieldSpec,function(){return this.fields.array.length},null]);let y=function(e,t){return r.call(this,e),this.messageType="MSG_INS_STATUS",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="MSG_INS_STATUS",y.prototype.msg_type=65283,y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").uint32("flags"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY",h.prototype.msg_type=65284,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry",{greedy:!0}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["id","writeUInt8",1]),h.prototype.fieldSpec.push(["telemetry","string",null]);let f=function(e,t){return r.call(this,e),this.messageType="MSG_CSAC_TELEMETRY_LABELS",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MSG_CSAC_TELEMETRY_LABELS",f.prototype.msg_type=65285,f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").uint8("id").string("telemetry_labels",{greedy:!0}),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["id","writeUInt8",1]),f.prototype.fieldSpec.push(["telemetry_labels","string",null]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_INS_UPDATES",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_INS_UPDATES",d.prototype.msg_type=65286,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").uint32("tow").uint8("gnsspos").uint8("gnssvel").uint8("wheelticks").uint8("speed").uint8("nhc").uint8("zerovel"),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),d.prototype.fieldSpec.push(["gnsspos","writeUInt8",1]),d.prototype.fieldSpec.push(["gnssvel","writeUInt8",1]),d.prototype.fieldSpec.push(["wheelticks","writeUInt8",1]),d.prototype.fieldSpec.push(["speed","writeUInt8",1]),d.prototype.fieldSpec.push(["nhc","writeUInt8",1]),d.prototype.fieldSpec.push(["zerovel","writeUInt8",1]);let _=function(e,t){return r.call(this,e),this.messageType="MSG_GNSS_TIME_OFFSET",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="MSG_GNSS_TIME_OFFSET",_.prototype.msg_type=65287,_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("weeks").int32("milliseconds").int16("microseconds").uint8("flags"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["weeks","writeInt16LE",2]),_.prototype.fieldSpec.push(["milliseconds","writeInt32LE",4]),_.prototype.fieldSpec.push(["microseconds","writeInt16LE",2]),_.prototype.fieldSpec.push(["flags","writeUInt8",1]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_PPS_TIME",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_PPS_TIME",S.prototype.msg_type=65288,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags"),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["time","writeUInt64LE",8]),S.prototype.fieldSpec.push(["flags","writeUInt8",1]);let g=function(e,t){return r.call(this,e),this.messageType="MSG_SENSOR_AID_EVENT",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="MSG_SENSOR_AID_EVENT",g.prototype.msg_type=65289,g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").uint32("time").uint8("sensor_type").uint16("sensor_id").uint8("sensor_state").uint8("n_available_meas").uint8("n_attempted_meas").uint8("n_accepted_meas").uint32("flags"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["time","writeUInt32LE",4]),g.prototype.fieldSpec.push(["sensor_type","writeUInt8",1]),g.prototype.fieldSpec.push(["sensor_id","writeUInt16LE",2]),g.prototype.fieldSpec.push(["sensor_state","writeUInt8",1]),g.prototype.fieldSpec.push(["n_available_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_attempted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["n_accepted_meas","writeUInt8",1]),g.prototype.fieldSpec.push(["flags","writeUInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_GROUP_META",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_GROUP_META",w.prototype.msg_type=65290,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("group_id").uint8("flags").uint8("n_group_msgs").array("group_msgs",{type:"uint16le",length:"n_group_msgs"}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["group_id","writeUInt8",1]),w.prototype.fieldSpec.push(["flags","writeUInt8",1]),w.prototype.fieldSpec.push(["n_group_msgs","writeUInt8",1]),w.prototype.fieldSpec.push(["group_msgs","array","writeUInt16LE",function(){return 2},"n_group_msgs"]),e.exports={65280:i,MsgStartup:i,65282:s,MsgDgnssStatus:s,65535:n,MsgHeartbeat:n,SubSystemReport:a,65534:l,MsgStatusReport:l,StatusJournalItem:c,65533:u,MsgStatusJournal:u,65283:y,MsgInsStatus:y,65284:h,MsgCsacTelemetry:h,65285:f,MsgCsacTelemetryLabels:f,65286:d,MsgInsUpdates:d,65287:_,MsgGnssTimeOffset:_,65288:S,MsgPpsTime:S,65289:g,MsgSensorAidEvent:g,65290:w,MsgGroupMeta:w}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,p(0).CarrierPhase),s=p(0).GnssSignal,n=p(0).GnssSignalDep,a=p(0).GPSTime,l=p(0).GPSTimeDep,c=(p(0).GPSTimeSec,p(0).SvId,function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",this.fields=t||this.parser.parse(e.payload),this});(c.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP_A",c.prototype.msg_type=33,c.prototype.constructor=c,c.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:a.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:s.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),c.prototype.fieldSpec=[],c.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),c.prototype.fieldSpec.push(["tot",a.prototype.fieldSpec]),c.prototype.fieldSpec.push(["P","writeUInt32LE",4]),c.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),c.prototype.fieldSpec.push(["cn0","writeUInt8",1]),c.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),c.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),c.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),c.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),c.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),c.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),c.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),c.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),c.prototype.fieldSpec.push(["acceleration","writeInt8",1]),c.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),c.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let u=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DETAILED_DEP",this.fields=t||this.parser.parse(e.payload),this};(u.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DETAILED_DEP",u.prototype.msg_type=17,u.prototype.constructor=u,u.prototype.parser=(new o).endianess("little").uint64("recv_time").nest("tot",{type:l.prototype.parser}).uint32("P").uint16("P_std").nest("L",{type:i.prototype.parser}).uint8("cn0").uint16("lock").nest("sid",{type:n.prototype.parser}).int32("doppler").uint16("doppler_std").uint32("uptime").int16("clock_offset").int16("clock_drift").uint16("corr_spacing").int8("acceleration").uint8("sync_flags").uint8("tow_flags").uint8("track_flags").uint8("nav_flags").uint8("pset_flags").uint8("misc_flags"),u.prototype.fieldSpec=[],u.prototype.fieldSpec.push(["recv_time","writeUInt64LE",8]),u.prototype.fieldSpec.push(["tot",l.prototype.fieldSpec]),u.prototype.fieldSpec.push(["P","writeUInt32LE",4]),u.prototype.fieldSpec.push(["P_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["L",i.prototype.fieldSpec]),u.prototype.fieldSpec.push(["cn0","writeUInt8",1]),u.prototype.fieldSpec.push(["lock","writeUInt16LE",2]),u.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),u.prototype.fieldSpec.push(["doppler","writeInt32LE",4]),u.prototype.fieldSpec.push(["doppler_std","writeUInt16LE",2]),u.prototype.fieldSpec.push(["uptime","writeUInt32LE",4]),u.prototype.fieldSpec.push(["clock_offset","writeInt16LE",2]),u.prototype.fieldSpec.push(["clock_drift","writeInt16LE",2]),u.prototype.fieldSpec.push(["corr_spacing","writeUInt16LE",2]),u.prototype.fieldSpec.push(["acceleration","writeInt8",1]),u.prototype.fieldSpec.push(["sync_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["tow_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["track_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["nav_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["pset_flags","writeUInt8",1]),u.prototype.fieldSpec.push(["misc_flags","writeUInt8",1]);let y=function(e,t){return r.call(this,e),this.messageType="TrackingChannelState",this.fields=t||this.parser.parse(e.payload),this};(y.prototype=Object.create(r.prototype)).messageType="TrackingChannelState",y.prototype.constructor=y,y.prototype.parser=(new o).endianess("little").nest("sid",{type:s.prototype.parser}).uint8("fcn").uint8("cn0"),y.prototype.fieldSpec=[],y.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),y.prototype.fieldSpec.push(["fcn","writeUInt8",1]),y.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let h=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE",this.fields=t||this.parser.parse(e.payload),this};(h.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE",h.prototype.msg_type=65,h.prototype.constructor=h,h.prototype.parser=(new o).endianess("little").array("states",{type:y.prototype.parser,readUntil:"eof"}),h.prototype.fieldSpec=[],h.prototype.fieldSpec.push(["states","array",y.prototype.fieldSpec,function(){return this.fields.array.length},null]);let f=function(e,t){return r.call(this,e),this.messageType="MeasurementState",this.fields=t||this.parser.parse(e.payload),this};(f.prototype=Object.create(r.prototype)).messageType="MeasurementState",f.prototype.constructor=f,f.prototype.parser=(new o).endianess("little").nest("mesid",{type:s.prototype.parser}).uint8("cn0"),f.prototype.fieldSpec=[],f.prototype.fieldSpec.push(["mesid",s.prototype.fieldSpec]),f.prototype.fieldSpec.push(["cn0","writeUInt8",1]);let d=function(e,t){return r.call(this,e),this.messageType="MSG_MEASUREMENT_STATE",this.fields=t||this.parser.parse(e.payload),this};(d.prototype=Object.create(r.prototype)).messageType="MSG_MEASUREMENT_STATE",d.prototype.msg_type=97,d.prototype.constructor=d,d.prototype.parser=(new o).endianess("little").array("states",{type:f.prototype.parser,readUntil:"eof"}),d.prototype.fieldSpec=[],d.prototype.fieldSpec.push(["states","array",f.prototype.fieldSpec,function(){return this.fields.array.length},null]);let _=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelation",this.fields=t||this.parser.parse(e.payload),this};(_.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelation",_.prototype.constructor=_,_.prototype.parser=(new o).endianess("little").int16("I").int16("Q"),_.prototype.fieldSpec=[],_.prototype.fieldSpec.push(["I","writeInt16LE",2]),_.prototype.fieldSpec.push(["Q","writeInt16LE",2]);let S=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ",this.fields=t||this.parser.parse(e.payload),this};(S.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ",S.prototype.msg_type=45,S.prototype.constructor=S,S.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:_.prototype.parser}),S.prototype.fieldSpec=[],S.prototype.fieldSpec.push(["channel","writeUInt8",1]),S.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),S.prototype.fieldSpec.push(["corrs","array",_.prototype.fieldSpec,function(){return this.fields.array.length},3]);let g=function(e,t){return r.call(this,e),this.messageType="TrackingChannelCorrelationDep",this.fields=t||this.parser.parse(e.payload),this};(g.prototype=Object.create(r.prototype)).messageType="TrackingChannelCorrelationDep",g.prototype.constructor=g,g.prototype.parser=(new o).endianess("little").int32("I").int32("Q"),g.prototype.fieldSpec=[],g.prototype.fieldSpec.push(["I","writeInt32LE",4]),g.prototype.fieldSpec.push(["Q","writeInt32LE",4]);let w=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(w.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_B",w.prototype.msg_type=44,w.prototype.constructor=w,w.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:s.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),w.prototype.fieldSpec=[],w.prototype.fieldSpec.push(["channel","writeUInt8",1]),w.prototype.fieldSpec.push(["sid",s.prototype.fieldSpec]),w.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let E=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_IQ_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(E.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_IQ_DEP_A",E.prototype.msg_type=28,E.prototype.constructor=E,E.prototype.parser=(new o).endianess("little").uint8("channel").nest("sid",{type:n.prototype.parser}).array("corrs",{length:3,type:g.prototype.parser}),E.prototype.fieldSpec=[],E.prototype.fieldSpec.push(["channel","writeUInt8",1]),E.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),E.prototype.fieldSpec.push(["corrs","array",g.prototype.fieldSpec,function(){return this.fields.array.length},3]);let m=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepA",this.fields=t||this.parser.parse(e.payload),this};(m.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepA",m.prototype.constructor=m,m.prototype.parser=(new o).endianess("little").uint8("state").uint8("prn").floatle("cn0"),m.prototype.fieldSpec=[],m.prototype.fieldSpec.push(["state","writeUInt8",1]),m.prototype.fieldSpec.push(["prn","writeUInt8",1]),m.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let b=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_A",this.fields=t||this.parser.parse(e.payload),this};(b.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_A",b.prototype.msg_type=22,b.prototype.constructor=b,b.prototype.parser=(new o).endianess("little").array("states",{type:m.prototype.parser,readUntil:"eof"}),b.prototype.fieldSpec=[],b.prototype.fieldSpec.push(["states","array",m.prototype.fieldSpec,function(){return this.fields.array.length},null]);let I=function(e,t){return r.call(this,e),this.messageType="TrackingChannelStateDepB",this.fields=t||this.parser.parse(e.payload),this};(I.prototype=Object.create(r.prototype)).messageType="TrackingChannelStateDepB",I.prototype.constructor=I,I.prototype.parser=(new o).endianess("little").uint8("state").nest("sid",{type:n.prototype.parser}).floatle("cn0"),I.prototype.fieldSpec=[],I.prototype.fieldSpec.push(["state","writeUInt8",1]),I.prototype.fieldSpec.push(["sid",n.prototype.fieldSpec]),I.prototype.fieldSpec.push(["cn0","writeFloatLE",4]);let L=function(e,t){return r.call(this,e),this.messageType="MSG_TRACKING_STATE_DEP_B",this.fields=t||this.parser.parse(e.payload),this};(L.prototype=Object.create(r.prototype)).messageType="MSG_TRACKING_STATE_DEP_B",L.prototype.msg_type=19,L.prototype.constructor=L,L.prototype.parser=(new o).endianess("little").array("states",{type:I.prototype.parser,readUntil:"eof"}),L.prototype.fieldSpec=[],L.prototype.fieldSpec.push(["states","array",I.prototype.fieldSpec,function(){return this.fields.array.length},null]),e.exports={33:c,MsgTrackingStateDetailedDepA:c,17:u,MsgTrackingStateDetailedDep:u,TrackingChannelState:y,65:h,MsgTrackingState:h,MeasurementState:f,97:d,MsgMeasurementState:d,TrackingChannelCorrelation:_,45:S,MsgTrackingIq:S,TrackingChannelCorrelationDep:g,44:w,MsgTrackingIqDepB:w,28:E,MsgTrackingIqDepA:E,TrackingChannelStateDepA:m,22:b,MsgTrackingStateDepA:b,TrackingChannelStateDepB:I,19:L,MsgTrackingStateDepB:L}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_USER_DATA",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_USER_DATA",i.prototype.msg_type=2048,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").array("contents",{type:"uint8",readUntil:"eof"}),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["contents","array","writeUInt8",function(){return 1},null]),e.exports={2048:i,MsgUserData:i}},function(e,t,p){let r=p(2),o=p(4),i=(p(3),p(1).UINT64,function(e,t){return r.call(this,e),this.messageType="MSG_ODOMETRY",this.fields=t||this.parser.parse(e.payload),this});(i.prototype=Object.create(r.prototype)).messageType="MSG_ODOMETRY",i.prototype.msg_type=2307,i.prototype.constructor=i,i.prototype.parser=(new o).endianess("little").uint32("tow").int32("velocity").uint8("flags"),i.prototype.fieldSpec=[],i.prototype.fieldSpec.push(["tow","writeUInt32LE",4]),i.prototype.fieldSpec.push(["velocity","writeInt32LE",4]),i.prototype.fieldSpec.push(["flags","writeUInt8",1]);let s=function(e,t){return r.call(this,e),this.messageType="MSG_WHEELTICK",this.fields=t||this.parser.parse(e.payload),this};(s.prototype=Object.create(r.prototype)).messageType="MSG_WHEELTICK",s.prototype.msg_type=2308,s.prototype.constructor=s,s.prototype.parser=(new o).endianess("little").uint64("time").uint8("flags").uint8("source").int32("ticks"),s.prototype.fieldSpec=[],s.prototype.fieldSpec.push(["time","writeUInt64LE",8]),s.prototype.fieldSpec.push(["flags","writeUInt8",1]),s.prototype.fieldSpec.push(["source","writeUInt8",1]),s.prototype.fieldSpec.push(["ticks","writeInt32LE",4]),e.exports={2307:i,MsgOdometry:i,2308:s,MsgWheeltick:s}}]); \ No newline at end of file diff --git a/javascript/sbp/acquisition.js b/javascript/sbp/acquisition.js index ff9676762e..3ba1313e33 100644 --- a/javascript/sbp/acquisition.js +++ b/javascript/sbp/acquisition.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/acquisition.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/acquisition.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * Satellite acquisition messages from the device. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message MSG_ACQ_RESULT (0x002F). @@ -46,7 +46,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqResult = function (sbp, fields) { +let MsgAcqResult = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_RESULT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -82,7 +82,7 @@ MsgAcqResult.prototype.fieldSpec.push(['sid', GnssSignal.prototype.fieldSpec]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqResultDepC = function (sbp, fields) { +let MsgAcqResultDepC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_RESULT_DEP_C"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -119,7 +119,7 @@ MsgAcqResultDepC.prototype.fieldSpec.push(['sid', GnssSignalDep.prototype.fieldS * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqResultDepB = function (sbp, fields) { +let MsgAcqResultDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_RESULT_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -156,7 +156,7 @@ MsgAcqResultDepB.prototype.fieldSpec.push(['sid', GnssSignalDep.prototype.fieldS * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqResultDepA = function (sbp, fields) { +let MsgAcqResultDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_RESULT_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -202,7 +202,7 @@ MsgAcqResultDepA.prototype.fieldSpec.push(['prn', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var AcqSvProfile = function (sbp, fields) { +let AcqSvProfile = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "AcqSvProfile"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -261,7 +261,7 @@ AcqSvProfile.prototype.fieldSpec.push(['cp', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var AcqSvProfileDep = function (sbp, fields) { +let AcqSvProfileDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "AcqSvProfileDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -310,7 +310,7 @@ AcqSvProfileDep.prototype.fieldSpec.push(['cp', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqSvProfile = function (sbp, fields) { +let MsgAcqSvProfile = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_SV_PROFILE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -337,7 +337,7 @@ MsgAcqSvProfile.prototype.fieldSpec.push(['acq_sv_profile', 'array', AcqSvProfil * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAcqSvProfileDep = function (sbp, fields) { +let MsgAcqSvProfileDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ACQ_SV_PROFILE_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/bootload.js b/javascript/sbp/bootload.js index 34b1bd5ad2..49ff9ce858 100644 --- a/javascript/sbp/bootload.js +++ b/javascript/sbp/bootload.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/bootload.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/bootload.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -20,10 +20,10 @@ * message type ID for both the host request and the device response. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_BOOTLOADER_HANDSHAKE_REQ (0x00B3). @@ -34,7 +34,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBootloaderHandshakeReq = function (sbp, fields) { +let MsgBootloaderHandshakeReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BOOTLOADER_HANDSHAKE_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -63,7 +63,7 @@ MsgBootloaderHandshakeReq.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBootloaderHandshakeResp = function (sbp, fields) { +let MsgBootloaderHandshakeResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BOOTLOADER_HANDSHAKE_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -92,7 +92,7 @@ MsgBootloaderHandshakeResp.prototype.fieldSpec.push(['version', 'string', null]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBootloaderJumpToApp = function (sbp, fields) { +let MsgBootloaderJumpToApp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BOOTLOADER_JUMP_TO_APP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -120,7 +120,7 @@ MsgBootloaderJumpToApp.prototype.fieldSpec.push(['jump', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNapDeviceDnaReq = function (sbp, fields) { +let MsgNapDeviceDnaReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NAP_DEVICE_DNA_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -149,7 +149,7 @@ MsgNapDeviceDnaReq.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNapDeviceDnaResp = function (sbp, fields) { +let MsgNapDeviceDnaResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NAP_DEVICE_DNA_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -176,7 +176,7 @@ MsgNapDeviceDnaResp.prototype.fieldSpec.push(['dna', 'array', 'writeUInt8', func * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBootloaderHandshakeDepA = function (sbp, fields) { +let MsgBootloaderHandshakeDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BOOTLOADER_HANDSHAKE_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/ext_events.js b/javascript/sbp/ext_events.js index bb4f243d74..ca08c7b2ae 100644 --- a/javascript/sbp/ext_events.js +++ b/javascript/sbp/ext_events.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/ext_events.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/ext_events.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -19,10 +19,10 @@ * time. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_EXT_EVENT (0x0101). @@ -39,7 +39,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgExtEvent = function (sbp, fields) { +let MsgExtEvent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EXT_EVENT"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/file_io.js b/javascript/sbp/file_io.js index 89675818e8..9bcfc48264 100644 --- a/javascript/sbp/file_io.js +++ b/javascript/sbp/file_io.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/file_io.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/file_io.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -23,10 +23,10 @@ * request and the device response. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_FILEIO_READ_REQ (0x00A8). @@ -47,7 +47,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioReadReq = function (sbp, fields) { +let MsgFileioReadReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_READ_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -84,7 +84,7 @@ MsgFileioReadReq.prototype.fieldSpec.push(['filename', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioReadResp = function (sbp, fields) { +let MsgFileioReadResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_READ_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -122,7 +122,7 @@ MsgFileioReadResp.prototype.fieldSpec.push(['contents', 'array', 'writeUInt8', f * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioReadDirReq = function (sbp, fields) { +let MsgFileioReadDirReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_READ_DIR_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -158,7 +158,7 @@ MsgFileioReadDirReq.prototype.fieldSpec.push(['dirname', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioReadDirResp = function (sbp, fields) { +let MsgFileioReadDirResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_READ_DIR_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -190,7 +190,7 @@ MsgFileioReadDirResp.prototype.fieldSpec.push(['contents', 'array', 'writeUInt8' * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioRemove = function (sbp, fields) { +let MsgFileioRemove = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_REMOVE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -225,7 +225,7 @@ MsgFileioRemove.prototype.fieldSpec.push(['filename', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioWriteReq = function (sbp, fields) { +let MsgFileioWriteReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_WRITE_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -261,7 +261,7 @@ MsgFileioWriteReq.prototype.fieldSpec.push(['data', 'array', 'writeUInt8', funct * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioWriteResp = function (sbp, fields) { +let MsgFileioWriteResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_WRITE_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -290,7 +290,7 @@ MsgFileioWriteResp.prototype.fieldSpec.push(['sequence', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioConfigReq = function (sbp, fields) { +let MsgFileioConfigReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_CONFIG_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -322,7 +322,7 @@ MsgFileioConfigReq.prototype.fieldSpec.push(['sequence', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFileioConfigResp = function (sbp, fields) { +let MsgFileioConfigResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FILEIO_CONFIG_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/flash.js b/javascript/sbp/flash.js index 655af0856a..6a0ed40134 100644 --- a/javascript/sbp/flash.js +++ b/javascript/sbp/flash.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/flash.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/flash.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -21,10 +21,10 @@ * 2.3.1. This module does not apply to Piksi Multi. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_FLASH_PROGRAM (0x00E6). @@ -43,7 +43,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFlashProgram = function (sbp, fields) { +let MsgFlashProgram = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FLASH_PROGRAM"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -78,7 +78,7 @@ MsgFlashProgram.prototype.fieldSpec.push(['data', 'array', 'writeUInt8', functio * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFlashDone = function (sbp, fields) { +let MsgFlashDone = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FLASH_DONE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -111,7 +111,7 @@ MsgFlashDone.prototype.fieldSpec.push(['response', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFlashReadReq = function (sbp, fields) { +let MsgFlashReadReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FLASH_READ_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -148,7 +148,7 @@ MsgFlashReadReq.prototype.fieldSpec.push(['addr_len', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFlashReadResp = function (sbp, fields) { +let MsgFlashReadResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FLASH_READ_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -183,7 +183,7 @@ MsgFlashReadResp.prototype.fieldSpec.push(['addr_len', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFlashErase = function (sbp, fields) { +let MsgFlashErase = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FLASH_ERASE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -213,7 +213,7 @@ MsgFlashErase.prototype.fieldSpec.push(['sector_num', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStmFlashLockSector = function (sbp, fields) { +let MsgStmFlashLockSector = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STM_FLASH_LOCK_SECTOR"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -241,7 +241,7 @@ MsgStmFlashLockSector.prototype.fieldSpec.push(['sector', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStmFlashUnlockSector = function (sbp, fields) { +let MsgStmFlashUnlockSector = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STM_FLASH_UNLOCK_SECTOR"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -267,7 +267,7 @@ MsgStmFlashUnlockSector.prototype.fieldSpec.push(['sector', 'writeUInt32LE', 4]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStmUniqueIdReq = function (sbp, fields) { +let MsgStmUniqueIdReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STM_UNIQUE_ID_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -294,7 +294,7 @@ MsgStmUniqueIdReq.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStmUniqueIdResp = function (sbp, fields) { +let MsgStmUniqueIdResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STM_UNIQUE_ID_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -322,7 +322,7 @@ MsgStmUniqueIdResp.prototype.fieldSpec.push(['stm_id', 'array', 'writeUInt8', fu * * @param sbp An SBP object with a payload to be decoded. */ -var MsgM25FlashWriteStatus = function (sbp, fields) { +let MsgM25FlashWriteStatus = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_M25_FLASH_WRITE_STATUS"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/gnss.js b/javascript/sbp/gnss.js index cc1fe80fa7..de4ecc47d5 100644 --- a/javascript/sbp/gnss.js +++ b/javascript/sbp/gnss.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/gnss.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/gnss.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Various structs shared between modules ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message fragment GnssSignal @@ -35,7 +35,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var GnssSignal = function (sbp, fields) { +let GnssSignal = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GnssSignal"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -65,7 +65,7 @@ GnssSignal.prototype.fieldSpec.push(['code', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var SvId = function (sbp, fields) { +let SvId = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "SvId"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -97,7 +97,7 @@ SvId.prototype.fieldSpec.push(['constellation', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var GnssSignalDep = function (sbp, fields) { +let GnssSignalDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GnssSignalDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -129,7 +129,7 @@ GnssSignalDep.prototype.fieldSpec.push(['reserved', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var GPSTimeDep = function (sbp, fields) { +let GPSTimeDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GPSTimeDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -159,7 +159,7 @@ GPSTimeDep.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var GPSTimeSec = function (sbp, fields) { +let GPSTimeSec = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GPSTimeSec"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -191,7 +191,7 @@ GPSTimeSec.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var GPSTime = function (sbp, fields) { +let GPSTime = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GPSTime"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -224,7 +224,7 @@ GPSTime.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var CarrierPhase = function (sbp, fields) { +let CarrierPhase = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "CarrierPhase"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/imu.js b/javascript/sbp/imu.js index 4ef11b6114..be7f0b5536 100644 --- a/javascript/sbp/imu.js +++ b/javascript/sbp/imu.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/imu.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/imu.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Inertial Measurement Unit (IMU) messages. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_IMU_RAW (0x0900). @@ -48,7 +48,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgImuRaw = function (sbp, fields) { +let MsgImuRaw = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_IMU_RAW"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -93,7 +93,7 @@ MsgImuRaw.prototype.fieldSpec.push(['gyr_z', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgImuAux = function (sbp, fields) { +let MsgImuAux = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_IMU_AUX"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/integrity.js b/javascript/sbp/integrity.js index e64316dbc0..8544c4c13c 100644 --- a/javascript/sbp/integrity.js +++ b/javascript/sbp/integrity.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/integrity.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/integrity.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * Integrity flag messages ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message fragment IntegritySSRHeader @@ -45,7 +45,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var IntegritySSRHeader = function (sbp, fields) { +let IntegritySSRHeader = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "IntegritySSRHeader"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -95,7 +95,7 @@ IntegritySSRHeader.prototype.fieldSpec.push(['chain_id', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagHighLevel = function (sbp, fields) { +let MsgSsrFlagHighLevel = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_HIGH_LEVEL"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -154,7 +154,7 @@ MsgSsrFlagHighLevel.prototype.fieldSpec.push(['use_iono_grid_point_sat_los', 'wr * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagSatellites = function (sbp, fields) { +let MsgSsrFlagSatellites = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_SATELLITES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -196,7 +196,7 @@ MsgSsrFlagSatellites.prototype.fieldSpec.push(['faulty_sats', 'array', 'writeUIn * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagTropoGridPoints = function (sbp, fields) { +let MsgSsrFlagTropoGridPoints = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_TROPO_GRID_POINTS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -228,7 +228,7 @@ MsgSsrFlagTropoGridPoints.prototype.fieldSpec.push(['faulty_points', 'array', 'w * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagIonoGridPoints = function (sbp, fields) { +let MsgSsrFlagIonoGridPoints = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_IONO_GRID_POINTS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -260,7 +260,7 @@ MsgSsrFlagIonoGridPoints.prototype.fieldSpec.push(['faulty_points', 'array', 'wr * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagIonoTileSatLos = function (sbp, fields) { +let MsgSsrFlagIonoTileSatLos = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_IONO_TILE_SAT_LOS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -293,7 +293,7 @@ MsgSsrFlagIonoTileSatLos.prototype.fieldSpec.push(['faulty_los', 'array', SvId.p * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrFlagIonoGridPointSatLos = function (sbp, fields) { +let MsgSsrFlagIonoGridPointSatLos = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_FLAG_IONO_GRID_POINT_SAT_LOS"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/linux.js b/javascript/sbp/linux.js index 099e676077..2d6f66184b 100644 --- a/javascript/sbp/linux.js +++ b/javascript/sbp/linux.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/linux.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/linux.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Linux state monitoring. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_LINUX_CPU_STATE_DEP_A (0x7F00). @@ -38,7 +38,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxCpuStateDepA = function (sbp, fields) { +let MsgLinuxCpuStateDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_CPU_STATE_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -78,7 +78,7 @@ MsgLinuxCpuStateDepA.prototype.fieldSpec.push(['cmdline', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxMemStateDepA = function (sbp, fields) { +let MsgLinuxMemStateDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_MEM_STATE_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -118,7 +118,7 @@ MsgLinuxMemStateDepA.prototype.fieldSpec.push(['cmdline', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxSysStateDepA = function (sbp, fields) { +let MsgLinuxSysStateDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_SYS_STATE_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -164,7 +164,7 @@ MsgLinuxSysStateDepA.prototype.fieldSpec.push(['pid_count', 'writeUInt16LE', 2]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxProcessSocketCounts = function (sbp, fields) { +let MsgLinuxProcessSocketCounts = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_PROCESS_SOCKET_COUNTS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -213,7 +213,7 @@ MsgLinuxProcessSocketCounts.prototype.fieldSpec.push(['cmdline', 'string', null] * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxProcessSocketQueues = function (sbp, fields) { +let MsgLinuxProcessSocketQueues = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_PROCESS_SOCKET_QUEUES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -259,7 +259,7 @@ MsgLinuxProcessSocketQueues.prototype.fieldSpec.push(['cmdline', 'string', null] * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxSocketUsage = function (sbp, fields) { +let MsgLinuxSocketUsage = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_SOCKET_USAGE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -295,7 +295,7 @@ MsgLinuxSocketUsage.prototype.fieldSpec.push(['socket_type_counts', 'array', 'wr * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxProcessFdCount = function (sbp, fields) { +let MsgLinuxProcessFdCount = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_PROCESS_FD_COUNT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -332,7 +332,7 @@ MsgLinuxProcessFdCount.prototype.fieldSpec.push(['cmdline', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxProcessFdSummary = function (sbp, fields) { +let MsgLinuxProcessFdSummary = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_PROCESS_FD_SUMMARY"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -368,7 +368,7 @@ MsgLinuxProcessFdSummary.prototype.fieldSpec.push(['most_opened', 'string', null * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxCpuState = function (sbp, fields) { +let MsgLinuxCpuState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_CPU_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -414,7 +414,7 @@ MsgLinuxCpuState.prototype.fieldSpec.push(['cmdline', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxMemState = function (sbp, fields) { +let MsgLinuxMemState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_MEM_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -460,7 +460,7 @@ MsgLinuxMemState.prototype.fieldSpec.push(['cmdline', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLinuxSysState = function (sbp, fields) { +let MsgLinuxSysState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LINUX_SYS_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/logging.js b/javascript/sbp/logging.js index 0d7e9680c9..bf69cf9285 100644 --- a/javascript/sbp/logging.js +++ b/javascript/sbp/logging.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/logging.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/logging.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Logging and debugging messages from the device. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_LOG (0x0401). @@ -36,7 +36,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgLog = function (sbp, fields) { +let MsgLog = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_LOG"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -72,7 +72,7 @@ MsgLog.prototype.fieldSpec.push(['text', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFwd = function (sbp, fields) { +let MsgFwd = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FWD"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -103,7 +103,7 @@ MsgFwd.prototype.fieldSpec.push(['fwd_payload', 'array', 'writeUInt8', function * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPrintDep = function (sbp, fields) { +let MsgPrintDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_PRINT_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/mag.js b/javascript/sbp/mag.js index c89a206ec3..b56dca4229 100644 --- a/javascript/sbp/mag.js +++ b/javascript/sbp/mag.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/mag.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/mag.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Magnetometer (mag) messages. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_MAG_RAW (0x0902). @@ -38,7 +38,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgMagRaw = function (sbp, fields) { +let MsgMagRaw = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_MAG_RAW"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/navigation.js b/javascript/sbp/navigation.js index dfac76e112..637c808215 100644 --- a/javascript/sbp/navigation.js +++ b/javascript/sbp/navigation.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/navigation.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/navigation.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -35,10 +35,10 @@ * else), but not a Time of Measurement. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_GPS_TIME (0x0102). @@ -61,7 +61,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGpsTime = function (sbp, fields) { +let MsgGpsTime = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GPS_TIME"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -105,7 +105,7 @@ MsgGpsTime.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGpsTimeGnss = function (sbp, fields) { +let MsgGpsTimeGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GPS_TIME_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -147,7 +147,7 @@ MsgGpsTimeGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgUtcTime = function (sbp, fields) { +let MsgUtcTime = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_UTC_TIME"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -199,7 +199,7 @@ MsgUtcTime.prototype.fieldSpec.push(['ns', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgUtcTimeGnss = function (sbp, fields) { +let MsgUtcTimeGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_UTC_TIME_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -250,7 +250,7 @@ MsgUtcTimeGnss.prototype.fieldSpec.push(['ns', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgDops = function (sbp, fields) { +let MsgDops = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_DOPS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -300,7 +300,7 @@ MsgDops.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosEcef = function (sbp, fields) { +let MsgPosEcef = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_ECEF"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -357,7 +357,7 @@ MsgPosEcef.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosEcefCov = function (sbp, fields) { +let MsgPosEcefCov = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_ECEF_COV"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -418,7 +418,7 @@ MsgPosEcefCov.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlh = function (sbp, fields) { +let MsgPosLlh = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -476,7 +476,7 @@ MsgPosLlh.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlhCov = function (sbp, fields) { +let MsgPosLlhCov = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH_COV"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -529,7 +529,7 @@ MsgPosLlhCov.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var EstimatedHorizontalErrorEllipse = function (sbp, fields) { +let EstimatedHorizontalErrorEllipse = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "EstimatedHorizontalErrorEllipse"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -585,7 +585,7 @@ EstimatedHorizontalErrorEllipse.prototype.fieldSpec.push(['orientation', 'writeF * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlhAcc = function (sbp, fields) { +let MsgPosLlhAcc = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH_ACC"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -645,7 +645,7 @@ MsgPosLlhAcc.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineEcef = function (sbp, fields) { +let MsgBaselineEcef = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_ECEF"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -695,7 +695,7 @@ MsgBaselineEcef.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineNed = function (sbp, fields) { +let MsgBaselineNed = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_NED"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -744,7 +744,7 @@ MsgBaselineNed.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelEcef = function (sbp, fields) { +let MsgVelEcef = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_ECEF"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -796,7 +796,7 @@ MsgVelEcef.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelEcefCov = function (sbp, fields) { +let MsgVelEcefCov = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_ECEF_COV"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -855,7 +855,7 @@ MsgVelEcefCov.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelNed = function (sbp, fields) { +let MsgVelNed = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_NED"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -912,7 +912,7 @@ MsgVelNed.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelNedCov = function (sbp, fields) { +let MsgVelNedCov = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_NED_COV"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -972,7 +972,7 @@ MsgVelNedCov.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosEcefGnss = function (sbp, fields) { +let MsgPosEcefGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_ECEF_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1029,7 +1029,7 @@ MsgPosEcefGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosEcefCovGnss = function (sbp, fields) { +let MsgPosEcefCovGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_ECEF_COV_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1090,7 +1090,7 @@ MsgPosEcefCovGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlhGnss = function (sbp, fields) { +let MsgPosLlhGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1148,7 +1148,7 @@ MsgPosLlhGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlhCovGnss = function (sbp, fields) { +let MsgPosLlhCovGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH_COV_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1205,7 +1205,7 @@ MsgPosLlhCovGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelEcefGnss = function (sbp, fields) { +let MsgVelEcefGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_ECEF_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1257,7 +1257,7 @@ MsgVelEcefGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelEcefCovGnss = function (sbp, fields) { +let MsgVelEcefCovGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_ECEF_COV_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1316,7 +1316,7 @@ MsgVelEcefCovGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelNedGnss = function (sbp, fields) { +let MsgVelNedGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_NED_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1373,7 +1373,7 @@ MsgVelNedGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelNedCovGnss = function (sbp, fields) { +let MsgVelNedCovGnss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_NED_COV_GNSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1441,7 +1441,7 @@ MsgVelNedCovGnss.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelBody = function (sbp, fields) { +let MsgVelBody = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_BODY"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1506,7 +1506,7 @@ MsgVelBody.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelCog = function (sbp, fields) { +let MsgVelCog = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_COG"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1549,7 +1549,7 @@ MsgVelCog.prototype.fieldSpec.push(['flags', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAgeCorrections = function (sbp, fields) { +let MsgAgeCorrections = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_AGE_CORRECTIONS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1589,7 +1589,7 @@ MsgAgeCorrections.prototype.fieldSpec.push(['age', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGpsTimeDepA = function (sbp, fields) { +let MsgGpsTimeDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GPS_TIME_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1628,7 +1628,7 @@ MsgGpsTimeDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgDopsDepA = function (sbp, fields) { +let MsgDopsDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_DOPS_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1676,7 +1676,7 @@ MsgDopsDepA.prototype.fieldSpec.push(['vdop', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosEcefDepA = function (sbp, fields) { +let MsgPosEcefDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_ECEF_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1727,7 +1727,7 @@ MsgPosEcefDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPosLlhDepA = function (sbp, fields) { +let MsgPosLlhDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_POS_LLH_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1777,7 +1777,7 @@ MsgPosLlhDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineEcefDepA = function (sbp, fields) { +let MsgBaselineEcefDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_ECEF_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1827,7 +1827,7 @@ MsgBaselineEcefDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineNedDepA = function (sbp, fields) { +let MsgBaselineNedDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_NED_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1876,7 +1876,7 @@ MsgBaselineNedDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelEcefDepA = function (sbp, fields) { +let MsgVelEcefDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_ECEF_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1925,7 +1925,7 @@ MsgVelEcefDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgVelNedDepA = function (sbp, fields) { +let MsgVelNedDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_VEL_NED_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1971,7 +1971,7 @@ MsgVelNedDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineHeadingDepA = function (sbp, fields) { +let MsgBaselineHeadingDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_HEADING_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2012,7 +2012,7 @@ MsgBaselineHeadingDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgProtectionLevelDepA = function (sbp, fields) { +let MsgProtectionLevelDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_PROTECTION_LEVEL_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2075,7 +2075,7 @@ MsgProtectionLevelDepA.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgProtectionLevel = function (sbp, fields) { +let MsgProtectionLevel = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_PROTECTION_LEVEL"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2133,7 +2133,7 @@ MsgProtectionLevel.prototype.fieldSpec.push(['heading', 'writeInt32LE', 4]); MsgProtectionLevel.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); /** - * SBP class for message MSG_GPS_LEAP_SECOND (0x023A). + * SBP class for message MSG_UTC_LEAP_SECOND (0x023A). * * Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift * model parameters. @@ -2152,18 +2152,18 @@ MsgProtectionLevel.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGpsLeapSecond = function (sbp, fields) { +let MsgUtcLeapSecond = function (sbp, fields) { SBP.call(this, sbp); - this.messageType = "MSG_GPS_LEAP_SECOND"; + this.messageType = "MSG_UTC_LEAP_SECOND"; this.fields = (fields || this.parser.parse(sbp.payload)); return this; }; -MsgGpsLeapSecond.prototype = Object.create(SBP.prototype); -MsgGpsLeapSecond.prototype.messageType = "MSG_GPS_LEAP_SECOND"; -MsgGpsLeapSecond.prototype.msg_type = 0x023A; -MsgGpsLeapSecond.prototype.constructor = MsgGpsLeapSecond; -MsgGpsLeapSecond.prototype.parser = new Parser() +MsgUtcLeapSecond.prototype = Object.create(SBP.prototype); +MsgUtcLeapSecond.prototype.messageType = "MSG_UTC_LEAP_SECOND"; +MsgUtcLeapSecond.prototype.msg_type = 0x023A; +MsgUtcLeapSecond.prototype.constructor = MsgUtcLeapSecond; +MsgUtcLeapSecond.prototype.parser = new Parser() .endianess('little') .int16('bias_coeff') .int16('drift_coeff') @@ -2174,27 +2174,25 @@ MsgGpsLeapSecond.prototype.parser = new Parser() .uint16('ref_wn') .uint8('ref_dn') .int8('count_after'); -MsgGpsLeapSecond.prototype.fieldSpec = []; -MsgGpsLeapSecond.prototype.fieldSpec.push(['bias_coeff', 'writeInt16LE', 2]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['drift_coeff', 'writeInt16LE', 2]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['drift_rate_coeff', 'writeInt8', 1]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['count_before', 'writeInt8', 1]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['tow_s', 'writeUInt16LE', 2]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['ref_wn', 'writeUInt16LE', 2]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['ref_dn', 'writeUInt8', 1]); -MsgGpsLeapSecond.prototype.fieldSpec.push(['count_after', 'writeInt8', 1]); +MsgUtcLeapSecond.prototype.fieldSpec = []; +MsgUtcLeapSecond.prototype.fieldSpec.push(['bias_coeff', 'writeInt16LE', 2]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['drift_coeff', 'writeInt16LE', 2]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['drift_rate_coeff', 'writeInt8', 1]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['count_before', 'writeInt8', 1]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['tow_s', 'writeUInt16LE', 2]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['wn', 'writeUInt16LE', 2]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['ref_wn', 'writeUInt16LE', 2]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['ref_dn', 'writeUInt8', 1]); +MsgUtcLeapSecond.prototype.fieldSpec.push(['count_after', 'writeInt8', 1]); /** - * SBP class for message MSG_ITRF (0x0244). + * SBP class for message MSG_REFERENCE_FRAME_PARAM (0x0244). * * Fields in the SBP payload (`sbp.payload`): * @field ssr_iod number (unsigned 8-bit int, 1 byte) SSR IOD parameter. - * @field sn_counter_n number (unsigned 8-bit int, 1 byte) Source-Name Counter N. - * @field sn string Source-Name - * @field tn_counter_m number (unsigned 8-bit int, 1 byte) Target-Name Counter M. - * @field tn string Target-Name + * @field sn string Name of source coordinate-system using the EPSG identification code. + * @field tn string Name of target coordinate-system using the EPSG identification code. * @field sin number (unsigned 8-bit int, 1 byte) System Identification Number. * @field utn number (unsigned 16-bit int, 2 bytes) Utilized Transformation Message. * @field re_t0 number (unsigned 16-bit int, 2 bytes) Reference Epoch t0 for transformation parameter set given as Modified Julian Day @@ -2216,24 +2214,22 @@ MsgGpsLeapSecond.prototype.fieldSpec.push(['count_after', 'writeInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgItrf = function (sbp, fields) { +let MsgReferenceFrameParam = function (sbp, fields) { SBP.call(this, sbp); - this.messageType = "MSG_ITRF"; + this.messageType = "MSG_REFERENCE_FRAME_PARAM"; this.fields = (fields || this.parser.parse(sbp.payload)); return this; }; -MsgItrf.prototype = Object.create(SBP.prototype); -MsgItrf.prototype.messageType = "MSG_ITRF"; -MsgItrf.prototype.msg_type = 0x0244; -MsgItrf.prototype.constructor = MsgItrf; -MsgItrf.prototype.parser = new Parser() +MsgReferenceFrameParam.prototype = Object.create(SBP.prototype); +MsgReferenceFrameParam.prototype.messageType = "MSG_REFERENCE_FRAME_PARAM"; +MsgReferenceFrameParam.prototype.msg_type = 0x0244; +MsgReferenceFrameParam.prototype.constructor = MsgReferenceFrameParam; +MsgReferenceFrameParam.prototype.parser = new Parser() .endianess('little') .uint8('ssr_iod') - .uint8('sn_counter_n') - .string('sn', { length: 31 }) - .uint8('tn_counter_m') - .string('tn', { length: 31 }) + .string('sn', { length: 32 }) + .string('tn', { length: 32 }) .uint8('sin') .uint16('utn') .uint16('re_t0') @@ -2251,29 +2247,27 @@ MsgItrf.prototype.parser = new Parser() .int32('dot_theta_02') .int32('dot_theta_03') .int16('dot_scale'); -MsgItrf.prototype.fieldSpec = []; -MsgItrf.prototype.fieldSpec.push(['ssr_iod', 'writeUInt8', 1]); -MsgItrf.prototype.fieldSpec.push(['sn_counter_n', 'writeUInt8', 1]); -MsgItrf.prototype.fieldSpec.push(['sn', 'string', 31]); -MsgItrf.prototype.fieldSpec.push(['tn_counter_m', 'writeUInt8', 1]); -MsgItrf.prototype.fieldSpec.push(['tn', 'string', 31]); -MsgItrf.prototype.fieldSpec.push(['sin', 'writeUInt8', 1]); -MsgItrf.prototype.fieldSpec.push(['utn', 'writeUInt16LE', 2]); -MsgItrf.prototype.fieldSpec.push(['re_t0', 'writeUInt16LE', 2]); -MsgItrf.prototype.fieldSpec.push(['delta_X0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['delta_Y0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['delta_Z0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['theta_01', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['theta_02', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['theta_03', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['scale', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_delta_X0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_delta_Y0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_delta_Z0', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_theta_01', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_theta_02', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_theta_03', 'writeInt32LE', 4]); -MsgItrf.prototype.fieldSpec.push(['dot_scale', 'writeInt16LE', 2]); +MsgReferenceFrameParam.prototype.fieldSpec = []; +MsgReferenceFrameParam.prototype.fieldSpec.push(['ssr_iod', 'writeUInt8', 1]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['sn', 'string', 32]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['tn', 'string', 32]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['sin', 'writeUInt8', 1]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['utn', 'writeUInt16LE', 2]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['re_t0', 'writeUInt16LE', 2]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['delta_X0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['delta_Y0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['delta_Z0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['theta_01', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['theta_02', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['theta_03', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['scale', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_delta_X0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_delta_Y0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_delta_Z0', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_theta_01', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_theta_02', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_theta_03', 'writeInt32LE', 4]); +MsgReferenceFrameParam.prototype.fieldSpec.push(['dot_scale', 'writeInt16LE', 2]); module.exports = { 0x0102: MsgGpsTime, @@ -2353,8 +2347,8 @@ module.exports = { MsgProtectionLevelDepA: MsgProtectionLevelDepA, 0x0217: MsgProtectionLevel, MsgProtectionLevel: MsgProtectionLevel, - 0x023A: MsgGpsLeapSecond, - MsgGpsLeapSecond: MsgGpsLeapSecond, - 0x0244: MsgItrf, - MsgItrf: MsgItrf, + 0x023A: MsgUtcLeapSecond, + MsgUtcLeapSecond: MsgUtcLeapSecond, + 0x0244: MsgReferenceFrameParam, + MsgReferenceFrameParam: MsgReferenceFrameParam, } \ No newline at end of file diff --git a/javascript/sbp/ndb.js b/javascript/sbp/ndb.js index ae838185aa..6151df3e4f 100644 --- a/javascript/sbp/ndb.js +++ b/javascript/sbp/ndb.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/ndb.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/ndb.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * Messages for logging NDB events. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message MSG_NDB_EVENT (0x0400). @@ -53,7 +53,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNdbEvent = function (sbp, fields) { +let MsgNdbEvent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NDB_EVENT"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/observation.js b/javascript/sbp/observation.js index 3d5d01ec01..46d5e91f6d 100644 --- a/javascript/sbp/observation.js +++ b/javascript/sbp/observation.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/observation.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/observation.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -20,17 +20,17 @@ * Swift's cloud GNSS correction product. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message fragment ObservationHeader @@ -44,7 +44,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var ObservationHeader = function (sbp, fields) { +let ObservationHeader = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "ObservationHeader"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -75,7 +75,7 @@ ObservationHeader.prototype.fieldSpec.push(['n_obs', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var Doppler = function (sbp, fields) { +let Doppler = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "Doppler"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -119,7 +119,7 @@ Doppler.prototype.fieldSpec.push(['f', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var PackedObsContent = function (sbp, fields) { +let PackedObsContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PackedObsContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -168,7 +168,7 @@ PackedObsContent.prototype.fieldSpec.push(['sid', GnssSignal.prototype.fieldSpec * * @param sbp An SBP object with a payload to be decoded. */ -var PackedOsrContent = function (sbp, fields) { +let PackedOsrContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PackedOsrContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -214,7 +214,7 @@ PackedOsrContent.prototype.fieldSpec.push(['range_std', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgObs = function (sbp, fields) { +let MsgObs = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_OBS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -248,7 +248,7 @@ MsgObs.prototype.fieldSpec.push(['obs', 'array', PackedObsContent.prototype.fiel * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBasePosLlh = function (sbp, fields) { +let MsgBasePosLlh = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASE_POS_LLH"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -285,7 +285,7 @@ MsgBasePosLlh.prototype.fieldSpec.push(['height', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBasePosEcef = function (sbp, fields) { +let MsgBasePosEcef = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASE_POS_ECEF"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -321,7 +321,7 @@ MsgBasePosEcef.prototype.fieldSpec.push(['z', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var EphemerisCommonContent = function (sbp, fields) { +let EphemerisCommonContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "EphemerisCommonContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -362,7 +362,7 @@ EphemerisCommonContent.prototype.fieldSpec.push(['health_bits', 'writeUInt8', 1] * * @param sbp An SBP object with a payload to be decoded. */ -var EphemerisCommonContentDepB = function (sbp, fields) { +let EphemerisCommonContentDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "EphemerisCommonContentDepB"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -403,7 +403,7 @@ EphemerisCommonContentDepB.prototype.fieldSpec.push(['health_bits', 'writeUInt8' * * @param sbp An SBP object with a payload to be decoded. */ -var EphemerisCommonContentDepA = function (sbp, fields) { +let EphemerisCommonContentDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "EphemerisCommonContentDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -464,7 +464,7 @@ EphemerisCommonContentDepA.prototype.fieldSpec.push(['health_bits', 'writeUInt8' * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGpsDepE = function (sbp, fields) { +let MsgEphemerisGpsDepE = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GPS_DEP_E"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -558,7 +558,7 @@ MsgEphemerisGpsDepE.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGpsDepF = function (sbp, fields) { +let MsgEphemerisGpsDepF = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GPS_DEP_F"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -654,7 +654,7 @@ MsgEphemerisGpsDepF.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGps = function (sbp, fields) { +let MsgEphemerisGps = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GPS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -748,7 +748,7 @@ MsgEphemerisGps.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisQzss = function (sbp, fields) { +let MsgEphemerisQzss = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_QZSS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -847,7 +847,7 @@ MsgEphemerisQzss.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisBds = function (sbp, fields) { +let MsgEphemerisBds = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_BDS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -944,7 +944,7 @@ MsgEphemerisBds.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGalDepA = function (sbp, fields) { +let MsgEphemerisGalDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GAL_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1043,7 +1043,7 @@ MsgEphemerisGalDepA.prototype.fieldSpec.push(['iodc', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGal = function (sbp, fields) { +let MsgEphemerisGal = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GAL"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1122,7 +1122,7 @@ MsgEphemerisGal.prototype.fieldSpec.push(['source', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisSbasDepA = function (sbp, fields) { +let MsgEphemerisSbasDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_SBAS_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1167,7 +1167,7 @@ MsgEphemerisSbasDepA.prototype.fieldSpec.push(['a_gf1', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGloDepA = function (sbp, fields) { +let MsgEphemerisGloDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GLO_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1210,7 +1210,7 @@ MsgEphemerisGloDepA.prototype.fieldSpec.push(['acc', 'array', 'writeDoubleLE', f * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisSbasDepB = function (sbp, fields) { +let MsgEphemerisSbasDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_SBAS_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1251,7 +1251,7 @@ MsgEphemerisSbasDepB.prototype.fieldSpec.push(['a_gf1', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisSbas = function (sbp, fields) { +let MsgEphemerisSbas = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_SBAS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1296,7 +1296,7 @@ MsgEphemerisSbas.prototype.fieldSpec.push(['a_gf1', 'writeFloatLE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGloDepB = function (sbp, fields) { +let MsgEphemerisGloDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GLO_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1343,7 +1343,7 @@ MsgEphemerisGloDepB.prototype.fieldSpec.push(['acc', 'array', 'writeDoubleLE', f * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGloDepC = function (sbp, fields) { +let MsgEphemerisGloDepC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GLO_DEP_C"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1393,7 +1393,7 @@ MsgEphemerisGloDepC.prototype.fieldSpec.push(['fcn', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGloDepD = function (sbp, fields) { +let MsgEphemerisGloDepD = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GLO_DEP_D"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1447,7 +1447,7 @@ MsgEphemerisGloDepD.prototype.fieldSpec.push(['iod', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisGlo = function (sbp, fields) { +let MsgEphemerisGlo = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_GLO"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1521,7 +1521,7 @@ MsgEphemerisGlo.prototype.fieldSpec.push(['iod', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisDepD = function (sbp, fields) { +let MsgEphemerisDepD = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_DEP_D"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1629,7 +1629,7 @@ MsgEphemerisDepD.prototype.fieldSpec.push(['reserved', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisDepA = function (sbp, fields) { +let MsgEphemerisDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1732,7 +1732,7 @@ MsgEphemerisDepA.prototype.fieldSpec.push(['prn', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisDepB = function (sbp, fields) { +let MsgEphemerisDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1842,7 +1842,7 @@ MsgEphemerisDepB.prototype.fieldSpec.push(['iode', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgEphemerisDepC = function (sbp, fields) { +let MsgEphemerisDepC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_EPHEMERIS_DEP_C"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1927,7 +1927,7 @@ MsgEphemerisDepC.prototype.fieldSpec.push(['reserved', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var ObservationHeaderDep = function (sbp, fields) { +let ObservationHeaderDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "ObservationHeaderDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1959,7 +1959,7 @@ ObservationHeaderDep.prototype.fieldSpec.push(['n_obs', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var CarrierPhaseDepA = function (sbp, fields) { +let CarrierPhaseDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "CarrierPhaseDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1992,7 +1992,7 @@ CarrierPhaseDepA.prototype.fieldSpec.push(['f', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var PackedObsContentDepA = function (sbp, fields) { +let PackedObsContentDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PackedObsContentDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2032,7 +2032,7 @@ PackedObsContentDepA.prototype.fieldSpec.push(['prn', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var PackedObsContentDepB = function (sbp, fields) { +let PackedObsContentDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PackedObsContentDepB"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2073,7 +2073,7 @@ PackedObsContentDepB.prototype.fieldSpec.push(['sid', GnssSignalDep.prototype.fi * * @param sbp An SBP object with a payload to be decoded. */ -var PackedObsContentDepC = function (sbp, fields) { +let PackedObsContentDepC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PackedObsContentDepC"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2108,7 +2108,7 @@ PackedObsContentDepC.prototype.fieldSpec.push(['sid', GnssSignalDep.prototype.fi * * @param sbp An SBP object with a payload to be decoded. */ -var MsgObsDepA = function (sbp, fields) { +let MsgObsDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_OBS_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2141,7 +2141,7 @@ MsgObsDepA.prototype.fieldSpec.push(['obs', 'array', PackedObsContentDepA.protot * * @param sbp An SBP object with a payload to be decoded. */ -var MsgObsDepB = function (sbp, fields) { +let MsgObsDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_OBS_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2176,7 +2176,7 @@ MsgObsDepB.prototype.fieldSpec.push(['obs', 'array', PackedObsContentDepB.protot * * @param sbp An SBP object with a payload to be decoded. */ -var MsgObsDepC = function (sbp, fields) { +let MsgObsDepC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_OBS_DEP_C"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2215,7 +2215,7 @@ MsgObsDepC.prototype.fieldSpec.push(['obs', 'array', PackedObsContentDepC.protot * * @param sbp An SBP object with a payload to be decoded. */ -var MsgIono = function (sbp, fields) { +let MsgIono = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_IONO"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2259,7 +2259,7 @@ MsgIono.prototype.fieldSpec.push(['b3', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSvConfigurationGpsDep = function (sbp, fields) { +let MsgSvConfigurationGpsDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SV_CONFIGURATION_GPS_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2303,7 +2303,7 @@ MsgSvConfigurationGpsDep.prototype.fieldSpec.push(['l2c_mask', 'writeUInt32LE', * * @param sbp An SBP object with a payload to be decoded. */ -var GnssCapb = function (sbp, fields) { +let GnssCapb = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GnssCapb"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2357,7 +2357,7 @@ GnssCapb.prototype.fieldSpec.push(['gal_e5', 'writeUInt64LE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGnssCapb = function (sbp, fields) { +let MsgGnssCapb = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GNSS_CAPB"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2392,7 +2392,7 @@ MsgGnssCapb.prototype.fieldSpec.push(['gc', GnssCapb.prototype.fieldSpec]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGroupDelayDepA = function (sbp, fields) { +let MsgGroupDelayDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GROUP_DELAY_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2435,7 +2435,7 @@ MsgGroupDelayDepA.prototype.fieldSpec.push(['isc_l2c', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGroupDelayDepB = function (sbp, fields) { +let MsgGroupDelayDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GROUP_DELAY_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2478,7 +2478,7 @@ MsgGroupDelayDepB.prototype.fieldSpec.push(['isc_l2c', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGroupDelay = function (sbp, fields) { +let MsgGroupDelay = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GROUP_DELAY"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2527,7 +2527,7 @@ MsgGroupDelay.prototype.fieldSpec.push(['isc_l2c', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var AlmanacCommonContent = function (sbp, fields) { +let AlmanacCommonContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "AlmanacCommonContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2575,7 +2575,7 @@ AlmanacCommonContent.prototype.fieldSpec.push(['health_bits', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var AlmanacCommonContentDep = function (sbp, fields) { +let AlmanacCommonContentDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "AlmanacCommonContentDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2623,7 +2623,7 @@ AlmanacCommonContentDep.prototype.fieldSpec.push(['health_bits', 'writeUInt8', 1 * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAlmanacGpsDep = function (sbp, fields) { +let MsgAlmanacGpsDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ALMANAC_GPS_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2680,7 +2680,7 @@ MsgAlmanacGpsDep.prototype.fieldSpec.push(['af1', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAlmanacGps = function (sbp, fields) { +let MsgAlmanacGps = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ALMANAC_GPS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2734,7 +2734,7 @@ MsgAlmanacGps.prototype.fieldSpec.push(['af1', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAlmanacGloDep = function (sbp, fields) { +let MsgAlmanacGloDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ALMANAC_GLO_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2784,7 +2784,7 @@ MsgAlmanacGloDep.prototype.fieldSpec.push(['omega', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAlmanacGlo = function (sbp, fields) { +let MsgAlmanacGlo = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ALMANAC_GLO"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2831,7 +2831,7 @@ MsgAlmanacGlo.prototype.fieldSpec.push(['omega', 'writeDoubleLE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGloBiases = function (sbp, fields) { +let MsgGloBiases = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GLO_BIASES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2868,7 +2868,7 @@ MsgGloBiases.prototype.fieldSpec.push(['l2p_bias', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var SvAzEl = function (sbp, fields) { +let SvAzEl = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "SvAzEl"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2899,7 +2899,7 @@ SvAzEl.prototype.fieldSpec.push(['el', 'writeInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSvAzEl = function (sbp, fields) { +let MsgSvAzEl = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SV_AZ_EL"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -2927,7 +2927,7 @@ MsgSvAzEl.prototype.fieldSpec.push(['azel', 'array', SvAzEl.prototype.fieldSpec, * * @param sbp An SBP object with a payload to be decoded. */ -var MsgOsr = function (sbp, fields) { +let MsgOsr = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_OSR"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/orientation.js b/javascript/sbp/orientation.js index db067b7bc2..0fbe381871 100644 --- a/javascript/sbp/orientation.js +++ b/javascript/sbp/orientation.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/orientation.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/orientation.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Orientation Messages ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_BASELINE_HEADING (0x020F). @@ -39,7 +39,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgBaselineHeading = function (sbp, fields) { +let MsgBaselineHeading = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_BASELINE_HEADING"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -85,7 +85,7 @@ MsgBaselineHeading.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgOrientQuat = function (sbp, fields) { +let MsgOrientQuat = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ORIENT_QUAT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -141,7 +141,7 @@ MsgOrientQuat.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgOrientEuler = function (sbp, fields) { +let MsgOrientEuler = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ORIENT_EULER"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -194,7 +194,7 @@ MsgOrientEuler.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAngularRate = function (sbp, fields) { +let MsgAngularRate = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ANGULAR_RATE"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/piksi.js b/javascript/sbp/piksi.js index f1582a09f0..8e574db4bb 100644 --- a/javascript/sbp/piksi.js +++ b/javascript/sbp/piksi.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/piksi.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/piksi.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -19,17 +19,17 @@ * receiver, including a variety of legacy messages that may no longer be used. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message MSG_ALMANAC (0x0069). @@ -39,7 +39,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgAlmanac = function (sbp, fields) { +let MsgAlmanac = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ALMANAC"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -62,7 +62,7 @@ MsgAlmanac.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSetTime = function (sbp, fields) { +let MsgSetTime = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SET_TIME"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -87,7 +87,7 @@ MsgSetTime.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgReset = function (sbp, fields) { +let MsgReset = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_RESET"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -111,7 +111,7 @@ MsgReset.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgResetDep = function (sbp, fields) { +let MsgResetDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_RESET_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -134,7 +134,7 @@ MsgResetDep.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCwResults = function (sbp, fields) { +let MsgCwResults = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_CW_RESULTS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -157,7 +157,7 @@ MsgCwResults.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCwStart = function (sbp, fields) { +let MsgCwStart = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_CW_START"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -183,7 +183,7 @@ MsgCwStart.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgResetFilters = function (sbp, fields) { +let MsgResetFilters = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_RESET_FILTERS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -207,7 +207,7 @@ MsgResetFilters.prototype.fieldSpec.push(['filter', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgInitBaseDep = function (sbp, fields) { +let MsgInitBaseDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_INIT_BASE_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -237,7 +237,7 @@ MsgInitBaseDep.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgThreadState = function (sbp, fields) { +let MsgThreadState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_THREAD_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -274,7 +274,7 @@ MsgThreadState.prototype.fieldSpec.push(['stack_free', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var UARTChannel = function (sbp, fields) { +let UARTChannel = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "UARTChannel"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -317,7 +317,7 @@ UARTChannel.prototype.fieldSpec.push(['rx_buffer_level', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var Period = function (sbp, fields) { +let Period = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "Period"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -355,7 +355,7 @@ Period.prototype.fieldSpec.push(['current', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var Latency = function (sbp, fields) { +let Latency = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "Latency"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -397,7 +397,7 @@ Latency.prototype.fieldSpec.push(['current', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgUartState = function (sbp, fields) { +let MsgUartState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_UART_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -435,7 +435,7 @@ MsgUartState.prototype.fieldSpec.push(['obs_period', Period.prototype.fieldSpec] * * @param sbp An SBP object with a payload to be decoded. */ -var MsgUartStateDepa = function (sbp, fields) { +let MsgUartStateDepa = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_UART_STATE_DEPA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -470,7 +470,7 @@ MsgUartStateDepa.prototype.fieldSpec.push(['latency', Latency.prototype.fieldSpe * * @param sbp An SBP object with a payload to be decoded. */ -var MsgIarState = function (sbp, fields) { +let MsgIarState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_IAR_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -499,7 +499,7 @@ MsgIarState.prototype.fieldSpec.push(['num_hyps', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgMaskSatellite = function (sbp, fields) { +let MsgMaskSatellite = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_MASK_SATELLITE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -529,7 +529,7 @@ MsgMaskSatellite.prototype.fieldSpec.push(['sid', GnssSignal.prototype.fieldSpec * * @param sbp An SBP object with a payload to be decoded. */ -var MsgMaskSatelliteDep = function (sbp, fields) { +let MsgMaskSatelliteDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_MASK_SATELLITE_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -563,7 +563,7 @@ MsgMaskSatelliteDep.prototype.fieldSpec.push(['sid', GnssSignalDep.prototype.fie * * @param sbp An SBP object with a payload to be decoded. */ -var MsgDeviceMonitor = function (sbp, fields) { +let MsgDeviceMonitor = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_DEVICE_MONITOR"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -600,7 +600,7 @@ MsgDeviceMonitor.prototype.fieldSpec.push(['fe_temperature', 'writeInt16LE', 2]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCommandReq = function (sbp, fields) { +let MsgCommandReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_COMMAND_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -631,7 +631,7 @@ MsgCommandReq.prototype.fieldSpec.push(['command', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCommandResp = function (sbp, fields) { +let MsgCommandResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_COMMAND_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -663,7 +663,7 @@ MsgCommandResp.prototype.fieldSpec.push(['code', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCommandOutput = function (sbp, fields) { +let MsgCommandOutput = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_COMMAND_OUTPUT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -690,7 +690,7 @@ MsgCommandOutput.prototype.fieldSpec.push(['line', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNetworkStateReq = function (sbp, fields) { +let MsgNetworkStateReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NETWORK_STATE_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -723,7 +723,7 @@ MsgNetworkStateReq.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNetworkStateResp = function (sbp, fields) { +let MsgNetworkStateResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NETWORK_STATE_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -772,7 +772,7 @@ MsgNetworkStateResp.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var NetworkUsage = function (sbp, fields) { +let NetworkUsage = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "NetworkUsage"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -806,7 +806,7 @@ NetworkUsage.prototype.fieldSpec.push(['interface_name', 'string', 16]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgNetworkBandwidthUsage = function (sbp, fields) { +let MsgNetworkBandwidthUsage = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_NETWORK_BANDWIDTH_USAGE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -837,7 +837,7 @@ MsgNetworkBandwidthUsage.prototype.fieldSpec.push(['interfaces', 'array', Networ * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCellModemStatus = function (sbp, fields) { +let MsgCellModemStatus = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_CELL_MODEM_STATUS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -874,7 +874,7 @@ MsgCellModemStatus.prototype.fieldSpec.push(['reserved', 'array', 'writeUInt8', * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSpecanDep = function (sbp, fields) { +let MsgSpecanDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SPECAN_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -919,7 +919,7 @@ MsgSpecanDep.prototype.fieldSpec.push(['amplitude_value', 'array', 'writeUInt8', * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSpecan = function (sbp, fields) { +let MsgSpecan = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SPECAN"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -965,7 +965,7 @@ MsgSpecan.prototype.fieldSpec.push(['amplitude_value', 'array', 'writeUInt8', fu * * @param sbp An SBP object with a payload to be decoded. */ -var MsgFrontEndGain = function (sbp, fields) { +let MsgFrontEndGain = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_FRONT_END_GAIN"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/sbas.js b/javascript/sbp/sbas.js index d4839cf214..81af7557e2 100644 --- a/javascript/sbp/sbas.js +++ b/javascript/sbp/sbas.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/sbas.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/sbas.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * SBAS data ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message MSG_SBAS_RAW (0x7777). @@ -44,7 +44,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSbasRaw = function (sbp, fields) { +let MsgSbasRaw = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SBAS_RAW"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/settings.js b/javascript/sbp/settings.js index 3ff20cd6bd..a727cbb001 100644 --- a/javascript/sbp/settings.js +++ b/javascript/sbp/settings.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/settings.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/settings.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -38,10 +38,10 @@ * example. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_SETTINGS_SAVE (0x00A1). @@ -51,7 +51,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsSave = function (sbp, fields) { +let MsgSettingsSave = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_SAVE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -82,7 +82,7 @@ MsgSettingsSave.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsWrite = function (sbp, fields) { +let MsgSettingsWrite = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_WRITE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -116,7 +116,7 @@ MsgSettingsWrite.prototype.fieldSpec.push(['setting', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsWriteResp = function (sbp, fields) { +let MsgSettingsWriteResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_WRITE_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -152,7 +152,7 @@ MsgSettingsWriteResp.prototype.fieldSpec.push(['setting', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsReadReq = function (sbp, fields) { +let MsgSettingsReadReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_READ_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -184,7 +184,7 @@ MsgSettingsReadReq.prototype.fieldSpec.push(['setting', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsReadResp = function (sbp, fields) { +let MsgSettingsReadResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_READ_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -213,7 +213,7 @@ MsgSettingsReadResp.prototype.fieldSpec.push(['setting', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsReadByIndexReq = function (sbp, fields) { +let MsgSettingsReadByIndexReq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_READ_BY_INDEX_REQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -250,7 +250,7 @@ MsgSettingsReadByIndexReq.prototype.fieldSpec.push(['index', 'writeUInt16LE', 2] * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsReadByIndexResp = function (sbp, fields) { +let MsgSettingsReadByIndexResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_READ_BY_INDEX_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -276,7 +276,7 @@ MsgSettingsReadByIndexResp.prototype.fieldSpec.push(['setting', 'string', null]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsReadByIndexDone = function (sbp, fields) { +let MsgSettingsReadByIndexDone = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_READ_BY_INDEX_DONE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -304,7 +304,7 @@ MsgSettingsReadByIndexDone.prototype.fieldSpec = []; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsRegister = function (sbp, fields) { +let MsgSettingsRegister = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_REGISTER"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -337,7 +337,7 @@ MsgSettingsRegister.prototype.fieldSpec.push(['setting', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSettingsRegisterResp = function (sbp, fields) { +let MsgSettingsRegisterResp = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SETTINGS_REGISTER_RESP"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/solution_meta.js b/javascript/sbp/solution_meta.js index 23832d74bc..2ad6b4b9c8 100644 --- a/javascript/sbp/solution_meta.js +++ b/javascript/sbp/solution_meta.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/solution_meta.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/solution_meta.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Standardized Metadata messages for Fuzed Solution from Swift Navigation devices. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message fragment SolutionInputType @@ -39,7 +39,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var SolutionInputType = function (sbp, fields) { +let SolutionInputType = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "SolutionInputType"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -84,7 +84,7 @@ SolutionInputType.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSolnMetaDepA = function (sbp, fields) { +let MsgSolnMetaDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SOLN_META_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -147,7 +147,7 @@ MsgSolnMetaDepA.prototype.fieldSpec.push(['sol_in', 'array', SolutionInputType.p * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSolnMeta = function (sbp, fields) { +let MsgSolnMeta = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SOLN_META"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -187,7 +187,7 @@ MsgSolnMeta.prototype.fieldSpec.push(['sol_in', 'array', SolutionInputType.proto * * @param sbp An SBP object with a payload to be decoded. */ -var GNSSInputType = function (sbp, fields) { +let GNSSInputType = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GNSSInputType"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -214,7 +214,7 @@ GNSSInputType.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var IMUInputType = function (sbp, fields) { +let IMUInputType = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "IMUInputType"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -241,7 +241,7 @@ IMUInputType.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var OdoInputType = function (sbp, fields) { +let OdoInputType = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "OdoInputType"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/ssr.js b/javascript/sbp/ssr.js index 438a73cd29..af52e57181 100644 --- a/javascript/sbp/ssr.js +++ b/javascript/sbp/ssr.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/ssr.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/ssr.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * Precise State Space Representation (SSR) corrections format ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message fragment CodeBiasesContent @@ -42,7 +42,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var CodeBiasesContent = function (sbp, fields) { +let CodeBiasesContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "CodeBiasesContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -74,7 +74,7 @@ CodeBiasesContent.prototype.fieldSpec.push(['value', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var PhaseBiasesContent = function (sbp, fields) { +let PhaseBiasesContent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "PhaseBiasesContent"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -117,7 +117,7 @@ PhaseBiasesContent.prototype.fieldSpec.push(['bias', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var STECHeader = function (sbp, fields) { +let STECHeader = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECHeader"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -165,7 +165,7 @@ STECHeader.prototype.fieldSpec.push(['iod_atmo', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var GriddedCorrectionHeader = function (sbp, fields) { +let GriddedCorrectionHeader = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GriddedCorrectionHeader"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -209,7 +209,7 @@ GriddedCorrectionHeader.prototype.fieldSpec.push(['tropo_quality_indicator', 'wr * * @param sbp An SBP object with a payload to be decoded. */ -var STECSatElement = function (sbp, fields) { +let STECSatElement = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECSatElement"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -240,7 +240,7 @@ STECSatElement.prototype.fieldSpec.push(['stec_coeff', 'array', 'writeInt16LE', * * @param sbp An SBP object with a payload to be decoded. */ -var TroposphericDelayCorrectionNoStd = function (sbp, fields) { +let TroposphericDelayCorrectionNoStd = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TroposphericDelayCorrectionNoStd"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -271,7 +271,7 @@ TroposphericDelayCorrectionNoStd.prototype.fieldSpec.push(['wet', 'writeInt8', 1 * * @param sbp An SBP object with a payload to be decoded. */ -var TroposphericDelayCorrection = function (sbp, fields) { +let TroposphericDelayCorrection = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TroposphericDelayCorrection"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -302,7 +302,7 @@ TroposphericDelayCorrection.prototype.fieldSpec.push(['stddev', 'writeUInt8', 1] * * @param sbp An SBP object with a payload to be decoded. */ -var STECResidualNoStd = function (sbp, fields) { +let STECResidualNoStd = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECResidualNoStd"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -334,7 +334,7 @@ STECResidualNoStd.prototype.fieldSpec.push(['residual', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var STECResidual = function (sbp, fields) { +let STECResidual = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECResidual"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -381,7 +381,7 @@ STECResidual.prototype.fieldSpec.push(['stddev', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrOrbitClock = function (sbp, fields) { +let MsgSsrOrbitClock = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_ORBIT_CLOCK"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -442,7 +442,7 @@ MsgSsrOrbitClock.prototype.fieldSpec.push(['c2', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrCodeBiases = function (sbp, fields) { +let MsgSsrCodeBiases = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_CODE_BIASES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -490,7 +490,7 @@ MsgSsrCodeBiases.prototype.fieldSpec.push(['biases', 'array', CodeBiasesContent. * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrPhaseBiases = function (sbp, fields) { +let MsgSsrPhaseBiases = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_PHASE_BIASES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -538,7 +538,7 @@ MsgSsrPhaseBiases.prototype.fieldSpec.push(['biases', 'array', PhaseBiasesConten * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrStecCorrectionDep = function (sbp, fields) { +let MsgSsrStecCorrectionDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_STEC_CORRECTION_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -570,7 +570,7 @@ MsgSsrStecCorrectionDep.prototype.fieldSpec.push(['stec_sat_list', 'array', STEC * * @param sbp An SBP object with a payload to be decoded. */ -var BoundsHeader = function (sbp, fields) { +let BoundsHeader = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "BoundsHeader"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -608,7 +608,7 @@ BoundsHeader.prototype.fieldSpec.push(['sol_id', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrStecCorrection = function (sbp, fields) { +let MsgSsrStecCorrection = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_STEC_CORRECTION"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -649,7 +649,7 @@ MsgSsrStecCorrection.prototype.fieldSpec.push(['stec_sat_list', 'array', STECSat * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrGriddedCorrection = function (sbp, fields) { +let MsgSsrGriddedCorrection = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_GRIDDED_CORRECTION"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -681,12 +681,12 @@ MsgSsrGriddedCorrection.prototype.fieldSpec.push(['stec_residuals', 'array', STE * @field stec_residual STECResidual STEC residuals (mean, stddev) * @field stec_bound_mu number (unsigned 8-bit int, 1 byte) Error Bound Mean. See Note 1. * @field stec_bound_sig number (unsigned 8-bit int, 1 byte) Error Bound StDev. See Note 1. - * @field stec_bound_mu_dot number (unsigned 8-bit int, 1 byte) Error Bound Mean First derivative. Range: 0-0.01275 m/s - * @field stec_bound_sig_dot number (unsigned 8-bit int, 1 byte) Error Bound StDev First derivative. Range: 0-0.01275 m/s + * @field stec_bound_mu_dot number (unsigned 8-bit int, 1 byte) Error Bound Mean First derivative. + * @field stec_bound_sig_dot number (unsigned 8-bit int, 1 byte) Error Bound StDev First derivative. * * @param sbp An SBP object with a payload to be decoded. */ -var STECSatElementIntegrity = function (sbp, fields) { +let STECSatElementIntegrity = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECSatElementIntegrity"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -718,20 +718,22 @@ STECSatElementIntegrity.prototype.fieldSpec.push(['stec_bound_sig_dot', 'writeUI * * Fields in the SBP payload (`sbp.payload`): * @field header BoundsHeader Header of a bounds message. - * @field ssr_iod_atmo number (unsigned 8-bit int, 1 byte) IOD of the SSR atmospheric correction. - * @field tile_set_id number (unsigned 16-bit int, 2 bytes) Unique identifier of the set this tile belongs to. + * @field ssr_iod_atmo number (unsigned 8-bit int, 1 byte) IOD of the correction. + * @field tile_set_id number (unsigned 16-bit int, 2 bytes) Set this tile belongs to. * @field tile_id number (unsigned 16-bit int, 2 bytes) Unique identifier of this tile in the tile set. * @field tropo_qi number (unsigned 8-bit int, 1 byte) Tropo Quality Indicator. Similar to RTCM DF389. * @field grid_point_id number (unsigned 16-bit int, 2 bytes) Index of the Grid Point. * @field tropo_delay_correction TroposphericDelayCorrection Tropospheric delay at grid point. - * @field tropo_bound_mu number (unsigned 8-bit int, 1 byte) Troposphere Error Bound Mean. Range: 0-1.275 m - * @field tropo_bound_sig number (unsigned 8-bit int, 1 byte) Troposphere Error Bound StDev. Range: 0-1.275 m + * @field tropo_v_hydro_bound_mu number (unsigned 8-bit int, 1 byte) Vertical Hydrostatic Error Bound Mean. + * @field tropo_v_hydro_bound_sig number (unsigned 8-bit int, 1 byte) Vertical Hydrostatic Error Bound StDev. + * @field tropo_v_wet_bound_mu number (unsigned 8-bit int, 1 byte) Vertical Wet Error Bound Mean. + * @field tropo_v_wet_bound_sig number (unsigned 8-bit int, 1 byte) Vertical Wet Error Bound StDev. * @field n_sats number (unsigned 8-bit int, 1 byte) Number of satellites. * @field stec_sat_list array Array of STEC polynomial coefficients and its bounds for each space vehicle. * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrGriddedCorrectionBounds = function (sbp, fields) { +let MsgSsrGriddedCorrectionBounds = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_GRIDDED_CORRECTION_BOUNDS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -751,8 +753,10 @@ MsgSsrGriddedCorrectionBounds.prototype.parser = new Parser() .uint8('tropo_qi') .uint16('grid_point_id') .nest('tropo_delay_correction', { type: TroposphericDelayCorrection.prototype.parser }) - .uint8('tropo_bound_mu') - .uint8('tropo_bound_sig') + .uint8('tropo_v_hydro_bound_mu') + .uint8('tropo_v_hydro_bound_sig') + .uint8('tropo_v_wet_bound_mu') + .uint8('tropo_v_wet_bound_sig') .uint8('n_sats') .array('stec_sat_list', { type: STECSatElementIntegrity.prototype.parser, length: 'n_sats' }); MsgSsrGriddedCorrectionBounds.prototype.fieldSpec = []; @@ -763,8 +767,10 @@ MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tile_id', 'writeUInt16L MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_qi', 'writeUInt8', 1]); MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['grid_point_id', 'writeUInt16LE', 2]); MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_delay_correction', TroposphericDelayCorrection.prototype.fieldSpec]); -MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_bound_mu', 'writeUInt8', 1]); -MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_bound_sig', 'writeUInt8', 1]); +MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_v_hydro_bound_mu', 'writeUInt8', 1]); +MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_v_hydro_bound_sig', 'writeUInt8', 1]); +MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_v_wet_bound_mu', 'writeUInt8', 1]); +MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['tropo_v_wet_bound_sig', 'writeUInt8', 1]); MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['n_sats', 'writeUInt8', 1]); MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['stec_sat_list', 'array', STECSatElementIntegrity.prototype.fieldSpec, function () { return this.fields.array.length; }, 'n_sats']); @@ -808,7 +814,7 @@ MsgSsrGriddedCorrectionBounds.prototype.fieldSpec.push(['stec_sat_list', 'array' * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrTileDefinitionDep = function (sbp, fields) { +let MsgSsrTileDefinitionDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_TILE_DEFINITION_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -882,7 +888,7 @@ MsgSsrTileDefinitionDep.prototype.fieldSpec.push(['bitmask', 'writeUInt64LE', 8] * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrTileDefinition = function (sbp, fields) { +let MsgSsrTileDefinition = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_TILE_DEFINITION"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -935,7 +941,7 @@ MsgSsrTileDefinition.prototype.fieldSpec.push(['bitmask', 'writeUInt64LE', 8]); * * @param sbp An SBP object with a payload to be decoded. */ -var SatelliteAPC = function (sbp, fields) { +let SatelliteAPC = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "SatelliteAPC"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -968,7 +974,7 @@ SatelliteAPC.prototype.fieldSpec.push(['pcv', 'array', 'writeInt8', function () * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrSatelliteApc = function (sbp, fields) { +let MsgSsrSatelliteApc = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_SATELLITE_APC"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1009,7 +1015,7 @@ MsgSsrSatelliteApc.prototype.fieldSpec.push(['apc', 'array', SatelliteAPC.protot * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrOrbitClockDepA = function (sbp, fields) { +let MsgSsrOrbitClockDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_ORBIT_CLOCK_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1069,7 +1075,7 @@ MsgSsrOrbitClockDepA.prototype.fieldSpec.push(['c2', 'writeInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var STECHeaderDepA = function (sbp, fields) { +let STECHeaderDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "STECHeaderDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1111,7 +1117,7 @@ STECHeaderDepA.prototype.fieldSpec.push(['iod_atmo', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var GriddedCorrectionHeaderDepA = function (sbp, fields) { +let GriddedCorrectionHeaderDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GriddedCorrectionHeaderDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1154,7 +1160,7 @@ GriddedCorrectionHeaderDepA.prototype.fieldSpec.push(['tropo_quality_indicator', * * @param sbp An SBP object with a payload to be decoded. */ -var GridDefinitionHeaderDepA = function (sbp, fields) { +let GridDefinitionHeaderDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "GridDefinitionHeaderDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1190,7 +1196,7 @@ GridDefinitionHeaderDepA.prototype.fieldSpec.push(['seq_num', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrStecCorrectionDepA = function (sbp, fields) { +let MsgSsrStecCorrectionDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_STEC_CORRECTION_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1221,7 +1227,7 @@ MsgSsrStecCorrectionDepA.prototype.fieldSpec.push(['stec_sat_list', 'array', STE * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrGriddedCorrectionNoStdDepA = function (sbp, fields) { +let MsgSsrGriddedCorrectionNoStdDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_GRIDDED_CORRECTION_NO_STD_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1256,7 +1262,7 @@ MsgSsrGriddedCorrectionNoStdDepA.prototype.fieldSpec.push(['stec_residuals', 'ar * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrGriddedCorrectionDepA = function (sbp, fields) { +let MsgSsrGriddedCorrectionDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_GRIDDED_CORRECTION_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1292,7 +1298,7 @@ MsgSsrGriddedCorrectionDepA.prototype.fieldSpec.push(['stec_residuals', 'array', * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrGridDefinitionDepA = function (sbp, fields) { +let MsgSsrGridDefinitionDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_GRID_DEFINITION_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1322,15 +1328,15 @@ MsgSsrGridDefinitionDepA.prototype.fieldSpec.push(['rle_list', 'array', 'writeUI * @field orb_radial_bound_mu number (unsigned 8-bit int, 1 byte) Mean Radial. See Note 1. * @field orb_along_bound_mu number (unsigned 8-bit int, 1 byte) Mean Along-Track. See Note 1. * @field orb_cross_bound_mu number (unsigned 8-bit int, 1 byte) Mean Cross-Track. See Note 1. - * @field orb_radial_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Radial. See Note 1. - * @field orb_along_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Along-Track. See Note 1. - * @field orb_cross_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Cross-Track. See Note 1. + * @field orb_radial_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Radial. See Note 2. + * @field orb_along_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Along-Track. See Note 2. + * @field orb_cross_bound_sig number (unsigned 8-bit int, 1 byte) Standard Deviation Cross-Track. See Note 2. * @field clock_bound_mu number (unsigned 8-bit int, 1 byte) Clock Bound Mean. See Note 1. - * @field clock_bound_sig number (unsigned 8-bit int, 1 byte) Clock Bound Standard Deviation. See Note 1. + * @field clock_bound_sig number (unsigned 8-bit int, 1 byte) Clock Bound Standard Deviation. See Note 2. * * @param sbp An SBP object with a payload to be decoded. */ -var OrbitClockBound = function (sbp, fields) { +let OrbitClockBound = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "OrbitClockBound"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1365,8 +1371,9 @@ OrbitClockBound.prototype.fieldSpec.push(['clock_bound_sig', 'writeUInt8', 1]); /** * SBP class for message MSG_SSR_ORBIT_CLOCK_BOUNDS (0x05DE). * - * Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + * Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). Note 2: Range: 0-17.5 m. i<=200, std=0.01i; + * 200230, std=5+0.5(i-230). * * Fields in the SBP payload (`sbp.payload`): * @field header BoundsHeader Header of a bounds message. @@ -1377,7 +1384,7 @@ OrbitClockBound.prototype.fieldSpec.push(['clock_bound_sig', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrOrbitClockBounds = function (sbp, fields) { +let MsgSsrOrbitClockBounds = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_ORBIT_CLOCK_BOUNDS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1418,7 +1425,7 @@ MsgSsrOrbitClockBounds.prototype.fieldSpec.push(['orbit_clock_bounds', 'array', * * @param sbp An SBP object with a payload to be decoded. */ -var CodePhaseBiasesSatSig = function (sbp, fields) { +let CodePhaseBiasesSatSig = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "CodePhaseBiasesSatSig"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1457,7 +1464,7 @@ CodePhaseBiasesSatSig.prototype.fieldSpec.push(['phase_bias_bound_sig', 'writeUI * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrCodePhaseBiasesBounds = function (sbp, fields) { +let MsgSsrCodePhaseBiasesBounds = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_CODE_PHASE_BIASES_BOUNDS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1499,7 +1506,7 @@ MsgSsrCodePhaseBiasesBounds.prototype.fieldSpec.push(['satellites_signals', 'arr * * @param sbp An SBP object with a payload to be decoded. */ -var OrbitClockBoundDegradation = function (sbp, fields) { +let OrbitClockBoundDegradation = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "OrbitClockBoundDegradation"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -1538,12 +1545,13 @@ OrbitClockBoundDegradation.prototype.fieldSpec.push(['clock_bound_sig_dot', 'wri * @field ssr_iod number (unsigned 8-bit int, 1 byte) IOD of the SSR bound degradation parameter. * @field const_id number (unsigned 8-bit int, 1 byte) Constellation ID to which the SVs belong. * @field sat_bitmask number (unsigned 64-bit int, 8 bytes) Satellite Bit Mask. Put 1 for each satellite where the following degradation - * parameters are applicable, 0 otherwise. + * parameters are applicable, 0 otherwise. Encoded following RTCM DF394 + * specification. * @field orbit_clock_bounds_degradation OrbitClockBoundDegradation Orbit and Clock Bounds Degradation Parameters * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSsrOrbitClockBoundsDegradation = function (sbp, fields) { +let MsgSsrOrbitClockBoundsDegradation = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SSR_ORBIT_CLOCK_BOUNDS_DEGRADATION"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/system.js b/javascript/sbp/system.js index 207acb045f..9dd768ca91 100644 --- a/javascript/sbp/system.js +++ b/javascript/sbp/system.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/system.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/system.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Standardized system messages from Swift Navigation devices. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_STARTUP (0xFF00). @@ -37,7 +37,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStartup = function (sbp, fields) { +let MsgStartup = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STARTUP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -72,7 +72,7 @@ MsgStartup.prototype.fieldSpec.push(['reserved', 'writeUInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgDgnssStatus = function (sbp, fields) { +let MsgDgnssStatus = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_DGNSS_STATUS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -111,7 +111,7 @@ MsgDgnssStatus.prototype.fieldSpec.push(['source', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgHeartbeat = function (sbp, fields) { +let MsgHeartbeat = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_HEARTBEAT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -141,7 +141,7 @@ MsgHeartbeat.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var SubSystemReport = function (sbp, fields) { +let SubSystemReport = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "SubSystemReport"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -181,7 +181,7 @@ SubSystemReport.prototype.fieldSpec.push(['specific', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStatusReport = function (sbp, fields) { +let MsgStatusReport = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STATUS_REPORT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -219,7 +219,7 @@ MsgStatusReport.prototype.fieldSpec.push(['status', 'array', SubSystemReport.pro * * @param sbp An SBP object with a payload to be decoded. */ -var StatusJournalItem = function (sbp, fields) { +let StatusJournalItem = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "StatusJournalItem"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -253,7 +253,7 @@ StatusJournalItem.prototype.fieldSpec.push(['report', SubSystemReport.prototype. * * @param sbp An SBP object with a payload to be decoded. */ -var MsgStatusJournal = function (sbp, fields) { +let MsgStatusJournal = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_STATUS_JOURNAL"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -289,7 +289,7 @@ MsgStatusJournal.prototype.fieldSpec.push(['journal', 'array', StatusJournalItem * * @param sbp An SBP object with a payload to be decoded. */ -var MsgInsStatus = function (sbp, fields) { +let MsgInsStatus = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_INS_STATUS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -319,7 +319,7 @@ MsgInsStatus.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCsacTelemetry = function (sbp, fields) { +let MsgCsacTelemetry = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_CSAC_TELEMETRY"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -351,7 +351,7 @@ MsgCsacTelemetry.prototype.fieldSpec.push(['telemetry', 'string', null]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgCsacTelemetryLabels = function (sbp, fields) { +let MsgCsacTelemetryLabels = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_CSAC_TELEMETRY_LABELS"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -388,7 +388,7 @@ MsgCsacTelemetryLabels.prototype.fieldSpec.push(['telemetry_labels', 'string', n * * @param sbp An SBP object with a payload to be decoded. */ -var MsgInsUpdates = function (sbp, fields) { +let MsgInsUpdates = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_INS_UPDATES"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -432,7 +432,7 @@ MsgInsUpdates.prototype.fieldSpec.push(['zerovel', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGnssTimeOffset = function (sbp, fields) { +let MsgGnssTimeOffset = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GNSS_TIME_OFFSET"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -474,7 +474,7 @@ MsgGnssTimeOffset.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgPpsTime = function (sbp, fields) { +let MsgPpsTime = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_PPS_TIME"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -513,7 +513,7 @@ MsgPpsTime.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgSensorAidEvent = function (sbp, fields) { +let MsgSensorAidEvent = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_SENSOR_AID_EVENT"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -560,7 +560,7 @@ MsgSensorAidEvent.prototype.fieldSpec.push(['flags', 'writeUInt32LE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgGroupMeta = function (sbp, fields) { +let MsgGroupMeta = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_GROUP_META"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/tracking.js b/javascript/sbp/tracking.js index 3e5e83f4ee..f38bd38d22 100644 --- a/javascript/sbp/tracking.js +++ b/javascript/sbp/tracking.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/tracking.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/tracking.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,17 +18,17 @@ * Satellite code and carrier-phase tracking messages from the device. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; -var CarrierPhase = require("./gnss").CarrierPhase; -var GnssSignal = require("./gnss").GnssSignal; -var GnssSignalDep = require("./gnss").GnssSignalDep; -var GPSTime = require("./gnss").GPSTime; -var GPSTimeDep = require("./gnss").GPSTimeDep; -var GPSTimeSec = require("./gnss").GPSTimeSec; -var SvId = require("./gnss").SvId; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; +let CarrierPhase = require("./gnss").CarrierPhase; +let GnssSignal = require("./gnss").GnssSignal; +let GnssSignalDep = require("./gnss").GnssSignalDep; +let GPSTime = require("./gnss").GPSTime; +let GPSTimeDep = require("./gnss").GPSTimeDep; +let GPSTimeSec = require("./gnss").GPSTimeSec; +let SvId = require("./gnss").SvId; /** * SBP class for message MSG_TRACKING_STATE_DETAILED_DEP_A (0x0021). @@ -66,7 +66,7 @@ var SvId = require("./gnss").SvId; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingStateDetailedDepA = function (sbp, fields) { +let MsgTrackingStateDetailedDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_STATE_DETAILED_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -158,7 +158,7 @@ MsgTrackingStateDetailedDepA.prototype.fieldSpec.push(['misc_flags', 'writeUInt8 * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingStateDetailedDep = function (sbp, fields) { +let MsgTrackingStateDetailedDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_STATE_DETAILED_DEP"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -228,7 +228,7 @@ MsgTrackingStateDetailedDep.prototype.fieldSpec.push(['misc_flags', 'writeUInt8' * * @param sbp An SBP object with a payload to be decoded. */ -var TrackingChannelState = function (sbp, fields) { +let TrackingChannelState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TrackingChannelState"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -260,7 +260,7 @@ TrackingChannelState.prototype.fieldSpec.push(['cn0', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingState = function (sbp, fields) { +let MsgTrackingState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -291,7 +291,7 @@ MsgTrackingState.prototype.fieldSpec.push(['states', 'array', TrackingChannelSta * * @param sbp An SBP object with a payload to be decoded. */ -var MeasurementState = function (sbp, fields) { +let MeasurementState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MeasurementState"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -321,7 +321,7 @@ MeasurementState.prototype.fieldSpec.push(['cn0', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgMeasurementState = function (sbp, fields) { +let MsgMeasurementState = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_MEASUREMENT_STATE"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -349,7 +349,7 @@ MsgMeasurementState.prototype.fieldSpec.push(['states', 'array', MeasurementStat * * @param sbp An SBP object with a payload to be decoded. */ -var TrackingChannelCorrelation = function (sbp, fields) { +let TrackingChannelCorrelation = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TrackingChannelCorrelation"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -380,7 +380,7 @@ TrackingChannelCorrelation.prototype.fieldSpec.push(['Q', 'writeInt16LE', 2]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingIq = function (sbp, fields) { +let MsgTrackingIq = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_IQ"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -412,7 +412,7 @@ MsgTrackingIq.prototype.fieldSpec.push(['corrs', 'array', TrackingChannelCorrela * * @param sbp An SBP object with a payload to be decoded. */ -var TrackingChannelCorrelationDep = function (sbp, fields) { +let TrackingChannelCorrelationDep = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TrackingChannelCorrelationDep"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -443,7 +443,7 @@ TrackingChannelCorrelationDep.prototype.fieldSpec.push(['Q', 'writeInt32LE', 4]) * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingIqDepB = function (sbp, fields) { +let MsgTrackingIqDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_IQ_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -476,7 +476,7 @@ MsgTrackingIqDepB.prototype.fieldSpec.push(['corrs', 'array', TrackingChannelCor * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingIqDepA = function (sbp, fields) { +let MsgTrackingIqDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_IQ_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -509,7 +509,7 @@ MsgTrackingIqDepA.prototype.fieldSpec.push(['corrs', 'array', TrackingChannelCor * * @param sbp An SBP object with a payload to be decoded. */ -var TrackingChannelStateDepA = function (sbp, fields) { +let TrackingChannelStateDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TrackingChannelStateDepA"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -539,7 +539,7 @@ TrackingChannelStateDepA.prototype.fieldSpec.push(['cn0', 'writeFloatLE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingStateDepA = function (sbp, fields) { +let MsgTrackingStateDepA = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_STATE_DEP_A"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -568,7 +568,7 @@ MsgTrackingStateDepA.prototype.fieldSpec.push(['states', 'array', TrackingChanne * * @param sbp An SBP object with a payload to be decoded. */ -var TrackingChannelStateDepB = function (sbp, fields) { +let TrackingChannelStateDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "TrackingChannelStateDepB"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -598,7 +598,7 @@ TrackingChannelStateDepB.prototype.fieldSpec.push(['cn0', 'writeFloatLE', 4]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgTrackingStateDepB = function (sbp, fields) { +let MsgTrackingStateDepB = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_TRACKING_STATE_DEP_B"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/user.js b/javascript/sbp/user.js index cdf56847e0..f10faf4315 100644 --- a/javascript/sbp/user.js +++ b/javascript/sbp/user.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/user.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/user.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Messages reserved for use by the user. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_USER_DATA (0x0800). @@ -34,7 +34,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgUserData = function (sbp, fields) { +let MsgUserData = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_USER_DATA"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/javascript/sbp/vehicle.js b/javascript/sbp/vehicle.js index 79bf68093e..44a84b2a78 100644 --- a/javascript/sbp/vehicle.js +++ b/javascript/sbp/vehicle.js @@ -10,7 +10,7 @@ */ /********************** - * Automatically generated from piksi/yaml/swiftnav/sbp/vehicle.yaml with generate.py. + * Automatically generated from spec/yaml/swiftnav/sbp/vehicle.yaml with generate.py. * Don't edit this by hand! ********************** * Package description: @@ -18,10 +18,10 @@ * Messages from a vehicle. ***********************/ -var SBP = require('./sbp'); -var Parser = require('./parser'); -var Int64 = require('node-int64'); -var UInt64 = require('cuint').UINT64; +let SBP = require('./sbp'); +let Parser = require('./parser'); +let Int64 = require('node-int64'); +let UInt64 = require('cuint').UINT64; /** * SBP class for message MSG_ODOMETRY (0x0903). @@ -44,7 +44,7 @@ var UInt64 = require('cuint').UINT64; * * @param sbp An SBP object with a payload to be decoded. */ -var MsgOdometry = function (sbp, fields) { +let MsgOdometry = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_ODOMETRY"; this.fields = (fields || this.parser.parse(sbp.payload)); @@ -91,7 +91,7 @@ MsgOdometry.prototype.fieldSpec.push(['flags', 'writeUInt8', 1]); * * @param sbp An SBP object with a payload to be decoded. */ -var MsgWheeltick = function (sbp, fields) { +let MsgWheeltick = function (sbp, fields) { SBP.call(this, sbp); this.messageType = "MSG_WHEELTICK"; this.fields = (fields || this.parser.parse(sbp.payload)); diff --git a/jsonschema/MsgItrf.json b/jsonschema/MsgReferenceFrameParam.json similarity index 91% rename from jsonschema/MsgItrf.json rename to jsonschema/MsgReferenceFrameParam.json index 58c7d85a9a..6ec19a4118 100644 --- a/jsonschema/MsgItrf.json +++ b/jsonschema/MsgReferenceFrameParam.json @@ -11,15 +11,13 @@ "WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE." ], "$schema": "http://json-schema.org/draft-06/schema#", - "$id": "#MsgItrf", - "title":"MsgItrf", + "$id": "#MsgReferenceFrameParam", + "title":"MsgReferenceFrameParam", "description":"", "type": "object", "properties": { "ssr_iod": {"type": "integer"}, - "sn_counter_n": {"type": "integer"}, "sn": {"type": "string"}, - "tn_counter_m": {"type": "integer"}, "tn": {"type": "string"}, "sin": {"type": "integer"}, "utn": {"type": "integer"}, @@ -41,9 +39,7 @@ }, "required": [ "ssr_iod", - "sn_counter_n", "sn", - "tn_counter_m", "tn", "sin", "utn", diff --git a/jsonschema/MsgSsrGriddedCorrectionBounds.json b/jsonschema/MsgSsrGriddedCorrectionBounds.json index 7d35e65ee1..1a4952610b 100644 --- a/jsonschema/MsgSsrGriddedCorrectionBounds.json +++ b/jsonschema/MsgSsrGriddedCorrectionBounds.json @@ -23,8 +23,10 @@ "tropo_qi": {"type": "integer"}, "grid_point_id": {"type": "integer"}, "tropo_delay_correction": {"$ref": "TroposphericDelayCorrection.json"}, - "tropo_bound_mu": {"type": "integer"}, - "tropo_bound_sig": {"type": "integer"}, + "tropo_v_hydro_bound_mu": {"type": "integer"}, + "tropo_v_hydro_bound_sig": {"type": "integer"}, + "tropo_v_wet_bound_mu": {"type": "integer"}, + "tropo_v_wet_bound_sig": {"type": "integer"}, "n_sats": {"type": "integer"}, "stec_sat_list": {"type": "array", "items": {"$ref": "STECSatElementIntegrity.json"}} }, @@ -36,8 +38,10 @@ "tropo_qi", "grid_point_id", "tropo_delay_correction", - "tropo_bound_mu", - "tropo_bound_sig", + "tropo_v_hydro_bound_mu", + "tropo_v_hydro_bound_sig", + "tropo_v_wet_bound_mu", + "tropo_v_wet_bound_sig", "n_sats", "stec_sat_list" ] diff --git a/jsonschema/MsgSsrOrbitClockBounds.json b/jsonschema/MsgSsrOrbitClockBounds.json index 80753ff7bf..9065401059 100644 --- a/jsonschema/MsgSsrOrbitClockBounds.json +++ b/jsonschema/MsgSsrOrbitClockBounds.json @@ -13,7 +13,7 @@ "$schema": "http://json-schema.org/draft-06/schema#", "$id": "#MsgSsrOrbitClockBounds", "title":"MsgSsrOrbitClockBounds", - "description":"Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240).\n", + "description":"Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230).,\n,\nNote 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230).\n", "type": "object", "properties": { "header": {"$ref": "BoundsHeader.json"}, diff --git a/jsonschema/MsgGPSLeapSecond.json b/jsonschema/MsgUtcLeapSecond.json similarity index 95% rename from jsonschema/MsgGPSLeapSecond.json rename to jsonschema/MsgUtcLeapSecond.json index 3aafff0ae3..19acc642ee 100644 --- a/jsonschema/MsgGPSLeapSecond.json +++ b/jsonschema/MsgUtcLeapSecond.json @@ -11,8 +11,8 @@ "WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE." ], "$schema": "http://json-schema.org/draft-06/schema#", - "$id": "#MsgGPSLeapSecond", - "title":"MsgGPSLeapSecond", + "$id": "#MsgUtcLeapSecond", + "title":"MsgUtcLeapSecond", "description":"Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model parameters.\n", "type": "object", "properties": { diff --git a/proto/navigation.proto b/proto/navigation.proto index 99410a96d7..ec1e8a4d13 100644 --- a/proto/navigation.proto +++ b/proto/navigation.proto @@ -655,7 +655,7 @@ message MsgProtectionLevel { * Emulates the GPS CNAV message, reserving bytes for future broadcast of the * drift model parameters. */ -message MsgGpsLeapSecond { +message MsgUtcLeapSecond { sint32 bias_coeff = 1; sint32 drift_coeff = 2; sint32 drift_rate_coeff = 3; @@ -667,31 +667,29 @@ message MsgGpsLeapSecond { sint32 count_after = 9; } -/** Reference Frame Transformation Parameter +/** Reference Frame Transformation Parameters * None */ -message MsgItrf { +message MsgReferenceFrameParam { uint32 ssr_iod = 1; - uint32 sn_counter_n = 2; - string sn = 3; - uint32 tn_counter_m = 4; - string tn = 5; - uint32 sin = 6; - uint32 utn = 7; - uint32 re_t0 = 8; - sint32 delta_X0 = 9; - sint32 delta_Y0 = 10; - sint32 delta_Z0 = 11; - sint32 theta_01 = 12; - sint32 theta_02 = 13; - sint32 theta_03 = 14; - sint32 scale = 15; - sint32 dot_delta_X0 = 16; - sint32 dot_delta_Y0 = 17; - sint32 dot_delta_Z0 = 18; - sint32 dot_theta_01 = 19; - sint32 dot_theta_02 = 20; - sint32 dot_theta_03 = 21; - sint32 dot_scale = 22; + string sn = 2; + string tn = 3; + uint32 sin = 4; + uint32 utn = 5; + uint32 re_t0 = 6; + sint32 delta_X0 = 7; + sint32 delta_Y0 = 8; + sint32 delta_Z0 = 9; + sint32 theta_01 = 10; + sint32 theta_02 = 11; + sint32 theta_03 = 12; + sint32 scale = 13; + sint32 dot_delta_X0 = 14; + sint32 dot_delta_Y0 = 15; + sint32 dot_delta_Z0 = 16; + sint32 dot_theta_01 = 17; + sint32 dot_theta_02 = 18; + sint32 dot_theta_03 = 19; + sint32 dot_scale = 20; } \ No newline at end of file diff --git a/proto/ssr.proto b/proto/ssr.proto index ca8f3f775f..e513991b80 100644 --- a/proto/ssr.proto +++ b/proto/ssr.proto @@ -245,10 +245,12 @@ message MsgSsrGriddedCorrectionBounds { uint32 tropo_qi = 5; uint32 grid_point_id = 6; TroposphericDelayCorrection tropo_delay_correction = 7; - uint32 tropo_bound_mu = 8; - uint32 tropo_bound_sig = 9; - uint32 n_sats = 10; - repeated STECSatElementIntegrity stec_sat_list = 11; + uint32 tropo_v_hydro_bound_mu = 8; + uint32 tropo_v_hydro_bound_sig = 9; + uint32 tropo_v_wet_bound_mu = 10; + uint32 tropo_v_wet_bound_sig = 11; + uint32 n_sats = 12; + repeated STECSatElementIntegrity stec_sat_list = 13; } /** Definition of a SSR atmospheric correction tile. @@ -314,8 +316,11 @@ message OrbitClockBound { /** Combined Orbit and Clock Bound * - * Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + * Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). + * + * Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230). */ message MsgSsrOrbitClockBounds { BoundsHeader header = 1; diff --git a/python/docs/source/conf.py b/python/docs/source/conf.py index f4ed848e28..50c0ed3c5b 100644 --- a/python/docs/source/conf.py +++ b/python/docs/source/conf.py @@ -78,7 +78,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: diff --git a/python/sbp/navigation.py b/python/sbp/navigation.py index ba88f64f38..1ccdb9d276 100755 --- a/python/sbp/navigation.py +++ b/python/sbp/navigation.py @@ -5105,11 +5105,11 @@ def to_json_dict(self): d.update(j) return d -SBP_MSG_GPS_LEAP_SECOND = 0x023A -class MsgGPSLeapSecond(SBP): - """SBP class for message MSG_GPS_LEAP_SECOND (0x023A). +SBP_MSG_UTC_LEAP_SECOND = 0x023A +class MsgUtcLeapSecond(SBP): + """SBP class for message MSG_UTC_LEAP_SECOND (0x023A). - You can have MSG_GPS_LEAP_SECOND inherit its fields directly + You can have MSG_UTC_LEAP_SECOND inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields. @@ -5170,13 +5170,13 @@ class MsgGPSLeapSecond(SBP): def __init__(self, sbp=None, **kwargs): if sbp: - super( MsgGPSLeapSecond, + super( MsgUtcLeapSecond, self).__init__(sbp.msg_type, sbp.sender, sbp.length, sbp.payload, sbp.crc) self.from_binary(sbp.payload) else: - super( MsgGPSLeapSecond, self).__init__() - self.msg_type = SBP_MSG_GPS_LEAP_SECOND + super( MsgUtcLeapSecond, self).__init__() + self.msg_type = SBP_MSG_UTC_LEAP_SECOND self.sender = kwargs.pop('sender', SENDER_ID) self.bias_coeff = kwargs.pop('bias_coeff') self.drift_coeff = kwargs.pop('drift_coeff') @@ -5197,12 +5197,12 @@ def from_json(s): """ d = json.loads(s) - return MsgGPSLeapSecond.from_json_dict(d) + return MsgUtcLeapSecond.from_json_dict(d) @staticmethod def from_json_dict(d): sbp = SBP.from_json_dict(d) - return MsgGPSLeapSecond(sbp, **d) + return MsgUtcLeapSecond(sbp, **d) def from_binary(self, d): @@ -5210,7 +5210,7 @@ def from_binary(self, d): the message. """ - p = MsgGPSLeapSecond._parser.parse(d) + p = MsgUtcLeapSecond._parser.parse(d) for n in self.__class__.__slots__: setattr(self, n, getattr(p, n)) @@ -5219,7 +5219,7 @@ def to_binary(self): """ c = containerize(exclude_fields(self)) - self.payload = MsgGPSLeapSecond._parser.build(c) + self.payload = MsgUtcLeapSecond._parser.build(c) return self.pack() def into_buffer(self, buf, offset): @@ -5227,22 +5227,22 @@ def into_buffer(self, buf, offset): """ self.payload = containerize(exclude_fields(self)) - self.parser = MsgGPSLeapSecond._parser + self.parser = MsgUtcLeapSecond._parser self.stream_payload.reset(buf, offset) return self.pack_into(buf, offset, self._build_payload) def to_json_dict(self): self.to_binary() - d = super( MsgGPSLeapSecond, self).to_json_dict() + d = super( MsgUtcLeapSecond, self).to_json_dict() j = walk_json_dict(exclude_fields(self)) d.update(j) return d -SBP_MSG_ITRF = 0x0244 -class MsgItrf(SBP): - """SBP class for message MSG_ITRF (0x0244). +SBP_MSG_REFERENCE_FRAME_PARAM = 0x0244 +class MsgReferenceFrameParam(SBP): + """SBP class for message MSG_REFERENCE_FRAME_PARAM (0x0244). - You can have MSG_ITRF inherit its fields directly + You can have MSG_REFERENCE_FRAME_PARAM inherit its fields directly from an inherited SBP object, or construct it inline using a dict of its fields. @@ -5254,14 +5254,10 @@ class MsgItrf(SBP): SBP parent object to inherit from. ssr_iod : int SSR IOD parameter. - sn_counter_n : int - Source-Name Counter N. sn : string - Source-Name - tn_counter_m : int - Target-Name Counter M. + Name of source coordinate-system using the EPSG identification code. tn : string - Target-Name + Name of target coordinate-system using the EPSG identification code. sin : int System Identification Number. utn : int @@ -5303,10 +5299,8 @@ class MsgItrf(SBP): """ _parser = construct.Struct( 'ssr_iod' / construct.Int8ul, - 'sn_counter_n' / construct.Int8ul, - 'sn'/ construct.Bytes(31), - 'tn_counter_m' / construct.Int8ul, - 'tn'/ construct.Bytes(31), + 'sn'/ construct.Bytes(32), + 'tn'/ construct.Bytes(32), 'sin' / construct.Int8ul, 'utn' / construct.Int16ul, 're_t0' / construct.Int16ul, @@ -5326,9 +5320,7 @@ class MsgItrf(SBP): 'dot_scale' / construct.Int16sl,) __slots__ = [ 'ssr_iod', - 'sn_counter_n', 'sn', - 'tn_counter_m', 'tn', 'sin', 'utn', @@ -5351,18 +5343,16 @@ class MsgItrf(SBP): def __init__(self, sbp=None, **kwargs): if sbp: - super( MsgItrf, + super( MsgReferenceFrameParam, self).__init__(sbp.msg_type, sbp.sender, sbp.length, sbp.payload, sbp.crc) self.from_binary(sbp.payload) else: - super( MsgItrf, self).__init__() - self.msg_type = SBP_MSG_ITRF + super( MsgReferenceFrameParam, self).__init__() + self.msg_type = SBP_MSG_REFERENCE_FRAME_PARAM self.sender = kwargs.pop('sender', SENDER_ID) self.ssr_iod = kwargs.pop('ssr_iod') - self.sn_counter_n = kwargs.pop('sn_counter_n') self.sn = kwargs.pop('sn') - self.tn_counter_m = kwargs.pop('tn_counter_m') self.tn = kwargs.pop('tn') self.sin = kwargs.pop('sin') self.utn = kwargs.pop('utn') @@ -5391,12 +5381,12 @@ def from_json(s): """ d = json.loads(s) - return MsgItrf.from_json_dict(d) + return MsgReferenceFrameParam.from_json_dict(d) @staticmethod def from_json_dict(d): sbp = SBP.from_json_dict(d) - return MsgItrf(sbp, **d) + return MsgReferenceFrameParam(sbp, **d) def from_binary(self, d): @@ -5404,7 +5394,7 @@ def from_binary(self, d): the message. """ - p = MsgItrf._parser.parse(d) + p = MsgReferenceFrameParam._parser.parse(d) for n in self.__class__.__slots__: setattr(self, n, getattr(p, n)) @@ -5413,7 +5403,7 @@ def to_binary(self): """ c = containerize(exclude_fields(self)) - self.payload = MsgItrf._parser.build(c) + self.payload = MsgReferenceFrameParam._parser.build(c) return self.pack() def into_buffer(self, buf, offset): @@ -5421,13 +5411,13 @@ def into_buffer(self, buf, offset): """ self.payload = containerize(exclude_fields(self)) - self.parser = MsgItrf._parser + self.parser = MsgReferenceFrameParam._parser self.stream_payload.reset(buf, offset) return self.pack_into(buf, offset, self._build_payload) def to_json_dict(self): self.to_binary() - d = super( MsgItrf, self).to_json_dict() + d = super( MsgReferenceFrameParam, self).to_json_dict() j = walk_json_dict(exclude_fields(self)) d.update(j) return d @@ -5472,6 +5462,6 @@ def to_json_dict(self): 0x0207: MsgBaselineHeadingDepA, 0x0216: MsgProtectionLevelDepA, 0x0217: MsgProtectionLevel, - 0x023A: MsgGPSLeapSecond, - 0x0244: MsgItrf, + 0x023A: MsgUtcLeapSecond, + 0x0244: MsgReferenceFrameParam, } \ No newline at end of file diff --git a/python/sbp/ssr.py b/python/sbp/ssr.py index 50d1f21518..cc1a595e83 100644 --- a/python/sbp/ssr.py +++ b/python/sbp/ssr.py @@ -514,9 +514,9 @@ class STECSatElementIntegrity(object): stec_bound_sig : int Error Bound StDev. See Note 1. stec_bound_mu_dot : int - Error Bound Mean First derivative. Range: 0-0.01275 m/s + Error Bound Mean First derivative. stec_bound_sig_dot : int - Error Bound StDev First derivative. Range: 0-0.01275 m/s + Error Bound StDev First derivative. """ _parser = construct.Struct( @@ -794,15 +794,15 @@ class OrbitClockBound(object): orb_cross_bound_mu : int Mean Cross-Track. See Note 1. orb_radial_bound_sig : int - Standard Deviation Radial. See Note 1. + Standard Deviation Radial. See Note 2. orb_along_bound_sig : int - Standard Deviation Along-Track. See Note 1. + Standard Deviation Along-Track. See Note 2. orb_cross_bound_sig : int - Standard Deviation Cross-Track. See Note 1. + Standard Deviation Cross-Track. See Note 2. clock_bound_mu : int Clock Bound Mean. See Note 1. clock_bound_sig : int - Clock Bound Standard Deviation. See Note 1. + Clock Bound Standard Deviation. See Note 2. """ _parser = construct.Struct( @@ -1717,9 +1717,9 @@ class MsgSsrGriddedCorrectionBounds(SBP): header : BoundsHeader Header of a bounds message. ssr_iod_atmo : int - IOD of the SSR atmospheric correction. + IOD of the correction. tile_set_id : int - Unique identifier of the set this tile belongs to. + Set this tile belongs to. tile_id : int Unique identifier of this tile in the tile set. tropo_qi : int @@ -1728,10 +1728,14 @@ class MsgSsrGriddedCorrectionBounds(SBP): Index of the Grid Point. tropo_delay_correction : TroposphericDelayCorrection Tropospheric delay at grid point. - tropo_bound_mu : int - Troposphere Error Bound Mean. Range: 0-1.275 m - tropo_bound_sig : int - Troposphere Error Bound StDev. Range: 0-1.275 m + tropo_v_hydro_bound_mu : int + Vertical Hydrostatic Error Bound Mean. + tropo_v_hydro_bound_sig : int + Vertical Hydrostatic Error Bound StDev. + tropo_v_wet_bound_mu : int + Vertical Wet Error Bound Mean. + tropo_v_wet_bound_sig : int + Vertical Wet Error Bound StDev. n_sats : int Number of satellites. stec_sat_list : array @@ -1749,8 +1753,10 @@ class MsgSsrGriddedCorrectionBounds(SBP): 'tropo_qi' / construct.Int8ul, 'grid_point_id' / construct.Int16ul, 'tropo_delay_correction' / TroposphericDelayCorrection._parser, - 'tropo_bound_mu' / construct.Int8ul, - 'tropo_bound_sig' / construct.Int8ul, + 'tropo_v_hydro_bound_mu' / construct.Int8ul, + 'tropo_v_hydro_bound_sig' / construct.Int8ul, + 'tropo_v_wet_bound_mu' / construct.Int8ul, + 'tropo_v_wet_bound_sig' / construct.Int8ul, 'n_sats' / construct.Int8ul, 'stec_sat_list' / construct.GreedyRange(STECSatElementIntegrity._parser),) __slots__ = [ @@ -1761,8 +1767,10 @@ class MsgSsrGriddedCorrectionBounds(SBP): 'tropo_qi', 'grid_point_id', 'tropo_delay_correction', - 'tropo_bound_mu', - 'tropo_bound_sig', + 'tropo_v_hydro_bound_mu', + 'tropo_v_hydro_bound_sig', + 'tropo_v_wet_bound_mu', + 'tropo_v_wet_bound_sig', 'n_sats', 'stec_sat_list', ] @@ -1784,8 +1792,10 @@ def __init__(self, sbp=None, **kwargs): self.tropo_qi = kwargs.pop('tropo_qi') self.grid_point_id = kwargs.pop('grid_point_id') self.tropo_delay_correction = kwargs.pop('tropo_delay_correction') - self.tropo_bound_mu = kwargs.pop('tropo_bound_mu') - self.tropo_bound_sig = kwargs.pop('tropo_bound_sig') + self.tropo_v_hydro_bound_mu = kwargs.pop('tropo_v_hydro_bound_mu') + self.tropo_v_hydro_bound_sig = kwargs.pop('tropo_v_hydro_bound_sig') + self.tropo_v_wet_bound_mu = kwargs.pop('tropo_v_wet_bound_mu') + self.tropo_v_wet_bound_sig = kwargs.pop('tropo_v_wet_bound_sig') self.n_sats = kwargs.pop('n_sats') self.stec_sat_list = kwargs.pop('stec_sat_list') @@ -2835,8 +2845,11 @@ class MsgSsrOrbitClockBounds(SBP): of its fields. - Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). + + Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230). Parameters ---------- @@ -3066,7 +3079,8 @@ class MsgSsrOrbitClockBoundsDegradation(SBP): Constellation ID to which the SVs belong. sat_bitmask : int Satellite Bit Mask. Put 1 for each satellite where the following - degradation parameters are applicable, 0 otherwise. + degradation parameters are applicable, 0 otherwise. Encoded following RTCM + DF394 specification. orbit_clock_bounds_degradation : OrbitClockBoundDegradation Orbit and Clock Bounds Degradation Parameters sender : int diff --git a/rust/sbp/src/messages/mod.rs b/rust/sbp/src/messages/mod.rs index abefb54bf4..a06354d85f 100644 --- a/rust/sbp/src/messages/mod.rs +++ b/rust/sbp/src/messages/mod.rs @@ -96,11 +96,9 @@ use self::navigation::msg_baseline_ned::MsgBaselineNed; use self::navigation::msg_baseline_ned_dep_a::MsgBaselineNedDepA; use self::navigation::msg_dops::MsgDops; use self::navigation::msg_dops_dep_a::MsgDopsDepA; -use self::navigation::msg_gps_leap_second::MsgGpsLeapSecond; use self::navigation::msg_gps_time::MsgGpsTime; use self::navigation::msg_gps_time_dep_a::MsgGpsTimeDepA; use self::navigation::msg_gps_time_gnss::MsgGpsTimeGnss; -use self::navigation::msg_itrf::MsgItrf; use self::navigation::msg_pos_ecef::MsgPosEcef; use self::navigation::msg_pos_ecef_cov::MsgPosEcefCov; use self::navigation::msg_pos_ecef_cov_gnss::MsgPosEcefCovGnss; @@ -114,6 +112,8 @@ use self::navigation::msg_pos_llh_dep_a::MsgPosLlhDepA; use self::navigation::msg_pos_llh_gnss::MsgPosLlhGnss; use self::navigation::msg_protection_level::MsgProtectionLevel; use self::navigation::msg_protection_level_dep_a::MsgProtectionLevelDepA; +use self::navigation::msg_reference_frame_param::MsgReferenceFrameParam; +use self::navigation::msg_utc_leap_second::MsgUtcLeapSecond; use self::navigation::msg_utc_time::MsgUtcTime; use self::navigation::msg_utc_time_gnss::MsgUtcTimeGnss; use self::navigation::msg_vel_body::MsgVelBody; @@ -652,9 +652,9 @@ pub enum Sbp { /// GNSS-only Velocity in ECEF MsgVelEcefCovGnss(MsgVelEcefCovGnss), /// Leap second SBP message. - MsgGpsLeapSecond(MsgGpsLeapSecond), - /// Reference Frame Transformation Parameter - MsgItrf(MsgItrf), + MsgUtcLeapSecond(MsgUtcLeapSecond), + /// Reference Frame Transformation Parameters + MsgReferenceFrameParam(MsgReferenceFrameParam), /// Navigation DataBase Event MsgNdbEvent(MsgNdbEvent), /// Plaintext logging messages with levels @@ -1583,15 +1583,15 @@ impl Sbp { msg.set_sender_id(frame.sender_id); Ok(Sbp::MsgVelEcefCovGnss(msg)) } - MsgGpsLeapSecond::MESSAGE_TYPE => { - let mut msg = MsgGpsLeapSecond::parse(&mut frame.payload)?; + MsgUtcLeapSecond::MESSAGE_TYPE => { + let mut msg = MsgUtcLeapSecond::parse(&mut frame.payload)?; msg.set_sender_id(frame.sender_id); - Ok(Sbp::MsgGpsLeapSecond(msg)) + Ok(Sbp::MsgUtcLeapSecond(msg)) } - MsgItrf::MESSAGE_TYPE => { - let mut msg = MsgItrf::parse(&mut frame.payload)?; + MsgReferenceFrameParam::MESSAGE_TYPE => { + let mut msg = MsgReferenceFrameParam::parse(&mut frame.payload)?; msg.set_sender_id(frame.sender_id); - Ok(Sbp::MsgItrf(msg)) + Ok(Sbp::MsgReferenceFrameParam(msg)) } MsgNdbEvent::MESSAGE_TYPE => { let mut msg = MsgNdbEvent::parse(&mut frame.payload)?; @@ -2074,8 +2074,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.message_name(), Sbp::MsgPosEcefCovGnss(msg) => msg.message_name(), Sbp::MsgVelEcefCovGnss(msg) => msg.message_name(), - Sbp::MsgGpsLeapSecond(msg) => msg.message_name(), - Sbp::MsgItrf(msg) => msg.message_name(), + Sbp::MsgUtcLeapSecond(msg) => msg.message_name(), + Sbp::MsgReferenceFrameParam(msg) => msg.message_name(), Sbp::MsgNdbEvent(msg) => msg.message_name(), Sbp::MsgLog(msg) => msg.message_name(), Sbp::MsgFwd(msg) => msg.message_name(), @@ -2299,8 +2299,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.message_type(), Sbp::MsgPosEcefCovGnss(msg) => msg.message_type(), Sbp::MsgVelEcefCovGnss(msg) => msg.message_type(), - Sbp::MsgGpsLeapSecond(msg) => msg.message_type(), - Sbp::MsgItrf(msg) => msg.message_type(), + Sbp::MsgUtcLeapSecond(msg) => msg.message_type(), + Sbp::MsgReferenceFrameParam(msg) => msg.message_type(), Sbp::MsgNdbEvent(msg) => msg.message_type(), Sbp::MsgLog(msg) => msg.message_type(), Sbp::MsgFwd(msg) => msg.message_type(), @@ -2524,8 +2524,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.sender_id(), Sbp::MsgPosEcefCovGnss(msg) => msg.sender_id(), Sbp::MsgVelEcefCovGnss(msg) => msg.sender_id(), - Sbp::MsgGpsLeapSecond(msg) => msg.sender_id(), - Sbp::MsgItrf(msg) => msg.sender_id(), + Sbp::MsgUtcLeapSecond(msg) => msg.sender_id(), + Sbp::MsgReferenceFrameParam(msg) => msg.sender_id(), Sbp::MsgNdbEvent(msg) => msg.sender_id(), Sbp::MsgLog(msg) => msg.sender_id(), Sbp::MsgFwd(msg) => msg.sender_id(), @@ -2749,8 +2749,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.set_sender_id(new_id), Sbp::MsgPosEcefCovGnss(msg) => msg.set_sender_id(new_id), Sbp::MsgVelEcefCovGnss(msg) => msg.set_sender_id(new_id), - Sbp::MsgGpsLeapSecond(msg) => msg.set_sender_id(new_id), - Sbp::MsgItrf(msg) => msg.set_sender_id(new_id), + Sbp::MsgUtcLeapSecond(msg) => msg.set_sender_id(new_id), + Sbp::MsgReferenceFrameParam(msg) => msg.set_sender_id(new_id), Sbp::MsgNdbEvent(msg) => msg.set_sender_id(new_id), Sbp::MsgLog(msg) => msg.set_sender_id(new_id), Sbp::MsgFwd(msg) => msg.set_sender_id(new_id), @@ -2974,8 +2974,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.encoded_len(), Sbp::MsgPosEcefCovGnss(msg) => msg.encoded_len(), Sbp::MsgVelEcefCovGnss(msg) => msg.encoded_len(), - Sbp::MsgGpsLeapSecond(msg) => msg.encoded_len(), - Sbp::MsgItrf(msg) => msg.encoded_len(), + Sbp::MsgUtcLeapSecond(msg) => msg.encoded_len(), + Sbp::MsgReferenceFrameParam(msg) => msg.encoded_len(), Sbp::MsgNdbEvent(msg) => msg.encoded_len(), Sbp::MsgLog(msg) => msg.encoded_len(), Sbp::MsgFwd(msg) => msg.encoded_len(), @@ -3202,8 +3202,8 @@ impl SbpMessage for Sbp { Sbp::MsgVelNedCovGnss(msg) => msg.gps_time(), Sbp::MsgPosEcefCovGnss(msg) => msg.gps_time(), Sbp::MsgVelEcefCovGnss(msg) => msg.gps_time(), - Sbp::MsgGpsLeapSecond(msg) => msg.gps_time(), - Sbp::MsgItrf(msg) => msg.gps_time(), + Sbp::MsgUtcLeapSecond(msg) => msg.gps_time(), + Sbp::MsgReferenceFrameParam(msg) => msg.gps_time(), Sbp::MsgNdbEvent(msg) => msg.gps_time(), Sbp::MsgLog(msg) => msg.gps_time(), Sbp::MsgFwd(msg) => msg.gps_time(), @@ -3435,8 +3435,8 @@ impl WireFormat for Sbp { Sbp::MsgVelNedCovGnss(msg) => WireFormat::write(msg, buf), Sbp::MsgPosEcefCovGnss(msg) => WireFormat::write(msg, buf), Sbp::MsgVelEcefCovGnss(msg) => WireFormat::write(msg, buf), - Sbp::MsgGpsLeapSecond(msg) => WireFormat::write(msg, buf), - Sbp::MsgItrf(msg) => WireFormat::write(msg, buf), + Sbp::MsgUtcLeapSecond(msg) => WireFormat::write(msg, buf), + Sbp::MsgReferenceFrameParam(msg) => WireFormat::write(msg, buf), Sbp::MsgNdbEvent(msg) => WireFormat::write(msg, buf), Sbp::MsgLog(msg) => WireFormat::write(msg, buf), Sbp::MsgFwd(msg) => WireFormat::write(msg, buf), @@ -3660,8 +3660,8 @@ impl WireFormat for Sbp { Sbp::MsgVelNedCovGnss(msg) => WireFormat::len(msg), Sbp::MsgPosEcefCovGnss(msg) => WireFormat::len(msg), Sbp::MsgVelEcefCovGnss(msg) => WireFormat::len(msg), - Sbp::MsgGpsLeapSecond(msg) => WireFormat::len(msg), - Sbp::MsgItrf(msg) => WireFormat::len(msg), + Sbp::MsgUtcLeapSecond(msg) => WireFormat::len(msg), + Sbp::MsgReferenceFrameParam(msg) => WireFormat::len(msg), Sbp::MsgNdbEvent(msg) => WireFormat::len(msg), Sbp::MsgLog(msg) => WireFormat::len(msg), Sbp::MsgFwd(msg) => WireFormat::len(msg), @@ -4654,15 +4654,15 @@ impl From for Sbp { } } -impl From for Sbp { - fn from(msg: MsgGpsLeapSecond) -> Self { - Sbp::MsgGpsLeapSecond(msg) +impl From for Sbp { + fn from(msg: MsgUtcLeapSecond) -> Self { + Sbp::MsgUtcLeapSecond(msg) } } -impl From for Sbp { - fn from(msg: MsgItrf) -> Self { - Sbp::MsgItrf(msg) +impl From for Sbp { + fn from(msg: MsgReferenceFrameParam) -> Self { + Sbp::MsgReferenceFrameParam(msg) } } diff --git a/rust/sbp/src/messages/navigation.rs b/rust/sbp/src/messages/navigation.rs index f6e79a53e5..087a0d39e3 100644 --- a/rust/sbp/src/messages/navigation.rs +++ b/rust/sbp/src/messages/navigation.rs @@ -45,11 +45,9 @@ pub use msg_baseline_ned::MsgBaselineNed; pub use msg_baseline_ned_dep_a::MsgBaselineNedDepA; pub use msg_dops::MsgDops; pub use msg_dops_dep_a::MsgDopsDepA; -pub use msg_gps_leap_second::MsgGpsLeapSecond; pub use msg_gps_time::MsgGpsTime; pub use msg_gps_time_dep_a::MsgGpsTimeDepA; pub use msg_gps_time_gnss::MsgGpsTimeGnss; -pub use msg_itrf::MsgItrf; pub use msg_pos_ecef::MsgPosEcef; pub use msg_pos_ecef_cov::MsgPosEcefCov; pub use msg_pos_ecef_cov_gnss::MsgPosEcefCovGnss; @@ -63,6 +61,8 @@ pub use msg_pos_llh_dep_a::MsgPosLlhDepA; pub use msg_pos_llh_gnss::MsgPosLlhGnss; pub use msg_protection_level::MsgProtectionLevel; pub use msg_protection_level_dep_a::MsgProtectionLevelDepA; +pub use msg_reference_frame_param::MsgReferenceFrameParam; +pub use msg_utc_leap_second::MsgUtcLeapSecond; pub use msg_utc_time::MsgUtcTime; pub use msg_utc_time_gnss::MsgUtcTimeGnss; pub use msg_vel_body::MsgVelBody; @@ -1686,138 +1686,6 @@ pub mod msg_dops_dep_a { } } -pub mod msg_gps_leap_second { - #![allow(unused_imports)] - - use super::*; - use crate::messages::lib::*; - - /// Leap second SBP message. - - /// - /// Emulates the GPS CNAV message, reserving bytes for future broadcast of the - /// drift model parameters. - /// - #[cfg_attr(feature = "serde", derive(serde::Serialize))] - #[derive(Debug, Clone)] - pub struct MsgGpsLeapSecond { - /// The message sender_id - #[cfg_attr(feature = "serde", serde(skip_serializing))] - pub sender_id: Option, - /// Reserved. Bias coefficient of GPS time scale with respect to UTC drift - /// model. - #[cfg_attr(feature = "serde", serde(rename(serialize = "bias_coeff")))] - pub bias_coeff: i16, - /// Reserved. Drift coefficient of GPS time scale with respect to UTC drift - /// model. - #[cfg_attr(feature = "serde", serde(rename(serialize = "drift_coeff")))] - pub drift_coeff: i16, - /// Reserved. Drift rate correction coefficient of GPS time scale with - /// respect to UTC drift model. - #[cfg_attr(feature = "serde", serde(rename(serialize = "drift_rate_coeff")))] - pub drift_rate_coeff: i8, - /// Leap second count before insertion. - #[cfg_attr(feature = "serde", serde(rename(serialize = "count_before")))] - pub count_before: i8, - /// Reserved. Drift model reference week second. - #[cfg_attr(feature = "serde", serde(rename(serialize = "tow_s")))] - pub tow_s: u16, - /// Reserved. Drift model reference week number. - #[cfg_attr(feature = "serde", serde(rename(serialize = "wn")))] - pub wn: u16, - /// Leap second reference week number. - #[cfg_attr(feature = "serde", serde(rename(serialize = "ref_wn")))] - pub ref_wn: u16, - /// Leap second reference day number. - #[cfg_attr(feature = "serde", serde(rename(serialize = "ref_dn")))] - pub ref_dn: u8, - /// Leap second count after insertion. - #[cfg_attr(feature = "serde", serde(rename(serialize = "count_after")))] - pub count_after: i8, - } - - impl ConcreteMessage for MsgGpsLeapSecond { - const MESSAGE_TYPE: u16 = 570; - const MESSAGE_NAME: &'static str = "MSG_GPS_LEAP_SECOND"; - } - - impl SbpMessage for MsgGpsLeapSecond { - fn message_name(&self) -> &'static str { - ::MESSAGE_NAME - } - fn message_type(&self) -> u16 { - ::MESSAGE_TYPE - } - fn sender_id(&self) -> Option { - self.sender_id - } - fn set_sender_id(&mut self, new_id: u16) { - self.sender_id = Some(new_id); - } - fn encoded_len(&self) -> usize { - WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN - } - } - - impl TryFrom for MsgGpsLeapSecond { - type Error = TryFromSbpError; - fn try_from(msg: Sbp) -> Result { - match msg { - Sbp::MsgGpsLeapSecond(m) => Ok(m), - _ => Err(TryFromSbpError), - } - } - } - - impl WireFormat for MsgGpsLeapSecond { - const MIN_LEN: usize = ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN; - fn len(&self) -> usize { - WireFormat::len(&self.bias_coeff) - + WireFormat::len(&self.drift_coeff) - + WireFormat::len(&self.drift_rate_coeff) - + WireFormat::len(&self.count_before) - + WireFormat::len(&self.tow_s) - + WireFormat::len(&self.wn) - + WireFormat::len(&self.ref_wn) - + WireFormat::len(&self.ref_dn) - + WireFormat::len(&self.count_after) - } - fn write(&self, buf: &mut B) { - WireFormat::write(&self.bias_coeff, buf); - WireFormat::write(&self.drift_coeff, buf); - WireFormat::write(&self.drift_rate_coeff, buf); - WireFormat::write(&self.count_before, buf); - WireFormat::write(&self.tow_s, buf); - WireFormat::write(&self.wn, buf); - WireFormat::write(&self.ref_wn, buf); - WireFormat::write(&self.ref_dn, buf); - WireFormat::write(&self.count_after, buf); - } - fn parse_unchecked(buf: &mut B) -> Self { - MsgGpsLeapSecond { - sender_id: None, - bias_coeff: WireFormat::parse_unchecked(buf), - drift_coeff: WireFormat::parse_unchecked(buf), - drift_rate_coeff: WireFormat::parse_unchecked(buf), - count_before: WireFormat::parse_unchecked(buf), - tow_s: WireFormat::parse_unchecked(buf), - wn: WireFormat::parse_unchecked(buf), - ref_wn: WireFormat::parse_unchecked(buf), - ref_dn: WireFormat::parse_unchecked(buf), - count_after: WireFormat::parse_unchecked(buf), - } - } - } -} - pub mod msg_gps_time { #![allow(unused_imports)] @@ -2271,288 +2139,73 @@ pub mod msg_gps_time_gnss { } } -pub mod msg_itrf { +pub mod msg_pos_ecef { #![allow(unused_imports)] use super::*; use crate::messages::lib::*; - /// Reference Frame Transformation Parameter + + /// Single-point position in ECEF + /// + /// The position solution message reports absolute Earth Centered Earth Fixed + /// (ECEF) coordinates and the status (single point vs pseudo-absolute RTK) of + /// the position solution. If the rover receiver knows the surveyed position + /// of the base station and has an RTK solution, this reports a pseudo- + /// absolute position solution using the base station position and the rover's + /// RTK baseline vector. The full GPS time is given by the preceding + /// MSG_GPS_TIME with the matching time-of-week (tow). + /// #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[derive(Debug, Clone)] - pub struct MsgItrf { + pub struct MsgPosEcef { /// The message sender_id #[cfg_attr(feature = "serde", serde(skip_serializing))] pub sender_id: Option, - /// SSR IOD parameter. - #[cfg_attr(feature = "serde", serde(rename(serialize = "ssr_iod")))] - pub ssr_iod: u8, - /// Source-Name Counter N. - #[cfg_attr(feature = "serde", serde(rename(serialize = "sn_counter_n")))] - pub sn_counter_n: u8, - /// Source-Name - #[cfg_attr(feature = "serde", serde(rename(serialize = "sn")))] - pub sn: SbpString<[u8; 31], Unterminated>, - /// Target-Name Counter M. - #[cfg_attr(feature = "serde", serde(rename(serialize = "tn_counter_m")))] - pub tn_counter_m: u8, - /// Target-Name - #[cfg_attr(feature = "serde", serde(rename(serialize = "tn")))] - pub tn: SbpString<[u8; 31], Unterminated>, - /// System Identification Number. - #[cfg_attr(feature = "serde", serde(rename(serialize = "sin")))] - pub sin: u8, - /// Utilized Transformation Message. - #[cfg_attr(feature = "serde", serde(rename(serialize = "utn")))] - pub utn: u16, - /// Reference Epoch t0 for transformation parameter set given as Modified - /// Julian Day (MDJ) Number minus 44244 days. - #[cfg_attr(feature = "serde", serde(rename(serialize = "re_t0")))] - pub re_t0: u16, - /// Translation in X for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_X0")))] - pub delta_x0: i32, - /// Translation in Y for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_Y0")))] - pub delta_y0: i32, - /// Translation in Z for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_Z0")))] - pub delta_z0: i32, - /// Rotation around the X-axis for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_01")))] - pub theta_01: i32, - /// Rotation around the Y-axis for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_02")))] - pub theta_02: i32, - /// Rotation around the Z-axis for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_03")))] - pub theta_03: i32, - /// Scale correction for Reference Epoch t0. - #[cfg_attr(feature = "serde", serde(rename(serialize = "scale")))] - pub scale: i32, - /// Rate of change of translation in X. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_X0")))] - pub dot_delta_x0: i32, - /// Rate of change of translation in Y. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_Y0")))] - pub dot_delta_y0: i32, - /// Rate of change of translation in Z. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_Z0")))] - pub dot_delta_z0: i32, - /// Rate of change of rotation around the X-axis. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_01")))] - pub dot_theta_01: i32, - /// Rate of change of rotation around the Y-axis. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_02")))] - pub dot_theta_02: i32, - /// Rate of change of rotation around the Z-axis. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_03")))] - pub dot_theta_03: i32, - /// Rate of change of scale correction. - #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_scale")))] - pub dot_scale: i16, - } - - impl ConcreteMessage for MsgItrf { - const MESSAGE_TYPE: u16 = 580; - const MESSAGE_NAME: &'static str = "MSG_ITRF"; + /// GPS Time of Week + #[cfg_attr(feature = "serde", serde(rename(serialize = "tow")))] + pub tow: u32, + /// ECEF X coordinate + #[cfg_attr(feature = "serde", serde(rename(serialize = "x")))] + pub x: f64, + /// ECEF Y coordinate + #[cfg_attr(feature = "serde", serde(rename(serialize = "y")))] + pub y: f64, + /// ECEF Z coordinate + #[cfg_attr(feature = "serde", serde(rename(serialize = "z")))] + pub z: f64, + /// Position estimated standard deviation + #[cfg_attr(feature = "serde", serde(rename(serialize = "accuracy")))] + pub accuracy: u16, + /// Number of satellites used in solution + #[cfg_attr(feature = "serde", serde(rename(serialize = "n_sats")))] + pub n_sats: u8, + /// Status flags + #[cfg_attr(feature = "serde", serde(rename(serialize = "flags")))] + pub flags: u8, } - impl SbpMessage for MsgItrf { - fn message_name(&self) -> &'static str { - ::MESSAGE_NAME - } - fn message_type(&self) -> u16 { - ::MESSAGE_TYPE - } - fn sender_id(&self) -> Option { - self.sender_id - } - fn set_sender_id(&mut self, new_id: u16) { - self.sender_id = Some(new_id); + impl MsgPosEcef { + /// Gets the [TowType][self::TowType] stored in the `flags` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `TowType` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `TowType` were added. + pub fn tow_type(&self) -> Result { + get_bit_range!(self.flags, u8, u8, 5, 5).try_into() } - fn encoded_len(&self) -> usize { - WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN + + /// Set the bitrange corresponding to the [TowType][TowType] of the `flags` bitfield. + pub fn set_tow_type(&mut self, tow_type: TowType) { + set_bit_range!(&mut self.flags, tow_type, u8, u8, 5, 5); } - } - impl TryFrom for MsgItrf { - type Error = TryFromSbpError; - fn try_from(msg: Sbp) -> Result { - match msg { - Sbp::MsgItrf(m) => Ok(m), - _ => Err(TryFromSbpError), - } - } - } - - impl WireFormat for MsgItrf { - const MIN_LEN: usize = ::MIN_LEN - + ::MIN_LEN - + as WireFormat>::MIN_LEN - + ::MIN_LEN - + as WireFormat>::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN - + ::MIN_LEN; - fn len(&self) -> usize { - WireFormat::len(&self.ssr_iod) - + WireFormat::len(&self.sn_counter_n) - + WireFormat::len(&self.sn) - + WireFormat::len(&self.tn_counter_m) - + WireFormat::len(&self.tn) - + WireFormat::len(&self.sin) - + WireFormat::len(&self.utn) - + WireFormat::len(&self.re_t0) - + WireFormat::len(&self.delta_x0) - + WireFormat::len(&self.delta_y0) - + WireFormat::len(&self.delta_z0) - + WireFormat::len(&self.theta_01) - + WireFormat::len(&self.theta_02) - + WireFormat::len(&self.theta_03) - + WireFormat::len(&self.scale) - + WireFormat::len(&self.dot_delta_x0) - + WireFormat::len(&self.dot_delta_y0) - + WireFormat::len(&self.dot_delta_z0) - + WireFormat::len(&self.dot_theta_01) - + WireFormat::len(&self.dot_theta_02) - + WireFormat::len(&self.dot_theta_03) - + WireFormat::len(&self.dot_scale) - } - fn write(&self, buf: &mut B) { - WireFormat::write(&self.ssr_iod, buf); - WireFormat::write(&self.sn_counter_n, buf); - WireFormat::write(&self.sn, buf); - WireFormat::write(&self.tn_counter_m, buf); - WireFormat::write(&self.tn, buf); - WireFormat::write(&self.sin, buf); - WireFormat::write(&self.utn, buf); - WireFormat::write(&self.re_t0, buf); - WireFormat::write(&self.delta_x0, buf); - WireFormat::write(&self.delta_y0, buf); - WireFormat::write(&self.delta_z0, buf); - WireFormat::write(&self.theta_01, buf); - WireFormat::write(&self.theta_02, buf); - WireFormat::write(&self.theta_03, buf); - WireFormat::write(&self.scale, buf); - WireFormat::write(&self.dot_delta_x0, buf); - WireFormat::write(&self.dot_delta_y0, buf); - WireFormat::write(&self.dot_delta_z0, buf); - WireFormat::write(&self.dot_theta_01, buf); - WireFormat::write(&self.dot_theta_02, buf); - WireFormat::write(&self.dot_theta_03, buf); - WireFormat::write(&self.dot_scale, buf); - } - fn parse_unchecked(buf: &mut B) -> Self { - MsgItrf { - sender_id: None, - ssr_iod: WireFormat::parse_unchecked(buf), - sn_counter_n: WireFormat::parse_unchecked(buf), - sn: WireFormat::parse_unchecked(buf), - tn_counter_m: WireFormat::parse_unchecked(buf), - tn: WireFormat::parse_unchecked(buf), - sin: WireFormat::parse_unchecked(buf), - utn: WireFormat::parse_unchecked(buf), - re_t0: WireFormat::parse_unchecked(buf), - delta_x0: WireFormat::parse_unchecked(buf), - delta_y0: WireFormat::parse_unchecked(buf), - delta_z0: WireFormat::parse_unchecked(buf), - theta_01: WireFormat::parse_unchecked(buf), - theta_02: WireFormat::parse_unchecked(buf), - theta_03: WireFormat::parse_unchecked(buf), - scale: WireFormat::parse_unchecked(buf), - dot_delta_x0: WireFormat::parse_unchecked(buf), - dot_delta_y0: WireFormat::parse_unchecked(buf), - dot_delta_z0: WireFormat::parse_unchecked(buf), - dot_theta_01: WireFormat::parse_unchecked(buf), - dot_theta_02: WireFormat::parse_unchecked(buf), - dot_theta_03: WireFormat::parse_unchecked(buf), - dot_scale: WireFormat::parse_unchecked(buf), - } - } - } -} - -pub mod msg_pos_ecef { - #![allow(unused_imports)] - - use super::*; - use crate::messages::lib::*; - - /// Single-point position in ECEF - /// - /// The position solution message reports absolute Earth Centered Earth Fixed - /// (ECEF) coordinates and the status (single point vs pseudo-absolute RTK) of - /// the position solution. If the rover receiver knows the surveyed position - /// of the base station and has an RTK solution, this reports a pseudo- - /// absolute position solution using the base station position and the rover's - /// RTK baseline vector. The full GPS time is given by the preceding - /// MSG_GPS_TIME with the matching time-of-week (tow). - /// - #[cfg_attr(feature = "serde", derive(serde::Serialize))] - #[derive(Debug, Clone)] - pub struct MsgPosEcef { - /// The message sender_id - #[cfg_attr(feature = "serde", serde(skip_serializing))] - pub sender_id: Option, - /// GPS Time of Week - #[cfg_attr(feature = "serde", serde(rename(serialize = "tow")))] - pub tow: u32, - /// ECEF X coordinate - #[cfg_attr(feature = "serde", serde(rename(serialize = "x")))] - pub x: f64, - /// ECEF Y coordinate - #[cfg_attr(feature = "serde", serde(rename(serialize = "y")))] - pub y: f64, - /// ECEF Z coordinate - #[cfg_attr(feature = "serde", serde(rename(serialize = "z")))] - pub z: f64, - /// Position estimated standard deviation - #[cfg_attr(feature = "serde", serde(rename(serialize = "accuracy")))] - pub accuracy: u16, - /// Number of satellites used in solution - #[cfg_attr(feature = "serde", serde(rename(serialize = "n_sats")))] - pub n_sats: u8, - /// Status flags - #[cfg_attr(feature = "serde", serde(rename(serialize = "flags")))] - pub flags: u8, - } - - impl MsgPosEcef { - /// Gets the [TowType][self::TowType] stored in the `flags` bitfield. - /// - /// Returns `Ok` if the bitrange contains a known `TowType` variant. - /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, - /// or because new variants of `TowType` were added. - pub fn tow_type(&self) -> Result { - get_bit_range!(self.flags, u8, u8, 5, 5).try_into() - } - - /// Set the bitrange corresponding to the [TowType][TowType] of the `flags` bitfield. - pub fn set_tow_type(&mut self, tow_type: TowType) { - set_bit_range!(&mut self.flags, tow_type, u8, u8, 5, 5); - } - - /// Gets the [InertialNavigationMode][self::InertialNavigationMode] stored in the `flags` bitfield. - /// - /// Returns `Ok` if the bitrange contains a known `InertialNavigationMode` variant. - /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, - /// or because new variants of `InertialNavigationMode` were added. - pub fn inertial_navigation_mode(&self) -> Result { - get_bit_range!(self.flags, u8, u8, 4, 3).try_into() + /// Gets the [InertialNavigationMode][self::InertialNavigationMode] stored in the `flags` bitfield. + /// + /// Returns `Ok` if the bitrange contains a known `InertialNavigationMode` variant. + /// Otherwise the value of the bitrange is returned as an `Err(u8)`. This may be because of a malformed message, + /// or because new variants of `InertialNavigationMode` were added. + pub fn inertial_navigation_mode(&self) -> Result { + get_bit_range!(self.flags, u8, u8, 4, 3).try_into() } /// Set the bitrange corresponding to the [InertialNavigationMode][InertialNavigationMode] of the `flags` bitfield. @@ -6341,6 +5994,339 @@ pub mod msg_protection_level_dep_a { } } +pub mod msg_reference_frame_param { + #![allow(unused_imports)] + + use super::*; + use crate::messages::lib::*; + /// Reference Frame Transformation Parameters + #[cfg_attr(feature = "serde", derive(serde::Serialize))] + #[derive(Debug, Clone)] + pub struct MsgReferenceFrameParam { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing))] + pub sender_id: Option, + /// SSR IOD parameter. + #[cfg_attr(feature = "serde", serde(rename(serialize = "ssr_iod")))] + pub ssr_iod: u8, + /// Name of source coordinate-system using the EPSG identification code. + #[cfg_attr(feature = "serde", serde(rename(serialize = "sn")))] + pub sn: SbpString<[u8; 32], NullTerminated>, + /// Name of target coordinate-system using the EPSG identification code. + #[cfg_attr(feature = "serde", serde(rename(serialize = "tn")))] + pub tn: SbpString<[u8; 32], NullTerminated>, + /// System Identification Number. + #[cfg_attr(feature = "serde", serde(rename(serialize = "sin")))] + pub sin: u8, + /// Utilized Transformation Message. + #[cfg_attr(feature = "serde", serde(rename(serialize = "utn")))] + pub utn: u16, + /// Reference Epoch t0 for transformation parameter set given as Modified + /// Julian Day (MDJ) Number minus 44244 days. + #[cfg_attr(feature = "serde", serde(rename(serialize = "re_t0")))] + pub re_t0: u16, + /// Translation in X for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_X0")))] + pub delta_x0: i32, + /// Translation in Y for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_Y0")))] + pub delta_y0: i32, + /// Translation in Z for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "delta_Z0")))] + pub delta_z0: i32, + /// Rotation around the X-axis for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_01")))] + pub theta_01: i32, + /// Rotation around the Y-axis for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_02")))] + pub theta_02: i32, + /// Rotation around the Z-axis for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "theta_03")))] + pub theta_03: i32, + /// Scale correction for Reference Epoch t0. + #[cfg_attr(feature = "serde", serde(rename(serialize = "scale")))] + pub scale: i32, + /// Rate of change of translation in X. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_X0")))] + pub dot_delta_x0: i32, + /// Rate of change of translation in Y. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_Y0")))] + pub dot_delta_y0: i32, + /// Rate of change of translation in Z. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_delta_Z0")))] + pub dot_delta_z0: i32, + /// Rate of change of rotation around the X-axis. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_01")))] + pub dot_theta_01: i32, + /// Rate of change of rotation around the Y-axis. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_02")))] + pub dot_theta_02: i32, + /// Rate of change of rotation around the Z-axis. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_theta_03")))] + pub dot_theta_03: i32, + /// Rate of change of scale correction. + #[cfg_attr(feature = "serde", serde(rename(serialize = "dot_scale")))] + pub dot_scale: i16, + } + + impl ConcreteMessage for MsgReferenceFrameParam { + const MESSAGE_TYPE: u16 = 580; + const MESSAGE_NAME: &'static str = "MSG_REFERENCE_FRAME_PARAM"; + } + + impl SbpMessage for MsgReferenceFrameParam { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> u16 { + ::MESSAGE_TYPE + } + fn sender_id(&self) -> Option { + self.sender_id + } + fn set_sender_id(&mut self, new_id: u16) { + self.sender_id = Some(new_id); + } + fn encoded_len(&self) -> usize { + WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN + } + } + + impl TryFrom for MsgReferenceFrameParam { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgReferenceFrameParam(m) => Ok(m), + _ => Err(TryFromSbpError), + } + } + } + + impl WireFormat for MsgReferenceFrameParam { + const MIN_LEN: usize = ::MIN_LEN + + as WireFormat>::MIN_LEN + + as WireFormat>::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.ssr_iod) + + WireFormat::len(&self.sn) + + WireFormat::len(&self.tn) + + WireFormat::len(&self.sin) + + WireFormat::len(&self.utn) + + WireFormat::len(&self.re_t0) + + WireFormat::len(&self.delta_x0) + + WireFormat::len(&self.delta_y0) + + WireFormat::len(&self.delta_z0) + + WireFormat::len(&self.theta_01) + + WireFormat::len(&self.theta_02) + + WireFormat::len(&self.theta_03) + + WireFormat::len(&self.scale) + + WireFormat::len(&self.dot_delta_x0) + + WireFormat::len(&self.dot_delta_y0) + + WireFormat::len(&self.dot_delta_z0) + + WireFormat::len(&self.dot_theta_01) + + WireFormat::len(&self.dot_theta_02) + + WireFormat::len(&self.dot_theta_03) + + WireFormat::len(&self.dot_scale) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.ssr_iod, buf); + WireFormat::write(&self.sn, buf); + WireFormat::write(&self.tn, buf); + WireFormat::write(&self.sin, buf); + WireFormat::write(&self.utn, buf); + WireFormat::write(&self.re_t0, buf); + WireFormat::write(&self.delta_x0, buf); + WireFormat::write(&self.delta_y0, buf); + WireFormat::write(&self.delta_z0, buf); + WireFormat::write(&self.theta_01, buf); + WireFormat::write(&self.theta_02, buf); + WireFormat::write(&self.theta_03, buf); + WireFormat::write(&self.scale, buf); + WireFormat::write(&self.dot_delta_x0, buf); + WireFormat::write(&self.dot_delta_y0, buf); + WireFormat::write(&self.dot_delta_z0, buf); + WireFormat::write(&self.dot_theta_01, buf); + WireFormat::write(&self.dot_theta_02, buf); + WireFormat::write(&self.dot_theta_03, buf); + WireFormat::write(&self.dot_scale, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgReferenceFrameParam { + sender_id: None, + ssr_iod: WireFormat::parse_unchecked(buf), + sn: WireFormat::parse_unchecked(buf), + tn: WireFormat::parse_unchecked(buf), + sin: WireFormat::parse_unchecked(buf), + utn: WireFormat::parse_unchecked(buf), + re_t0: WireFormat::parse_unchecked(buf), + delta_x0: WireFormat::parse_unchecked(buf), + delta_y0: WireFormat::parse_unchecked(buf), + delta_z0: WireFormat::parse_unchecked(buf), + theta_01: WireFormat::parse_unchecked(buf), + theta_02: WireFormat::parse_unchecked(buf), + theta_03: WireFormat::parse_unchecked(buf), + scale: WireFormat::parse_unchecked(buf), + dot_delta_x0: WireFormat::parse_unchecked(buf), + dot_delta_y0: WireFormat::parse_unchecked(buf), + dot_delta_z0: WireFormat::parse_unchecked(buf), + dot_theta_01: WireFormat::parse_unchecked(buf), + dot_theta_02: WireFormat::parse_unchecked(buf), + dot_theta_03: WireFormat::parse_unchecked(buf), + dot_scale: WireFormat::parse_unchecked(buf), + } + } + } +} + +pub mod msg_utc_leap_second { + #![allow(unused_imports)] + + use super::*; + use crate::messages::lib::*; + + /// Leap second SBP message. + + /// + /// Emulates the GPS CNAV message, reserving bytes for future broadcast of the + /// drift model parameters. + /// + #[cfg_attr(feature = "serde", derive(serde::Serialize))] + #[derive(Debug, Clone)] + pub struct MsgUtcLeapSecond { + /// The message sender_id + #[cfg_attr(feature = "serde", serde(skip_serializing))] + pub sender_id: Option, + /// Reserved. Bias coefficient of GPS time scale with respect to UTC drift + /// model. + #[cfg_attr(feature = "serde", serde(rename(serialize = "bias_coeff")))] + pub bias_coeff: i16, + /// Reserved. Drift coefficient of GPS time scale with respect to UTC drift + /// model. + #[cfg_attr(feature = "serde", serde(rename(serialize = "drift_coeff")))] + pub drift_coeff: i16, + /// Reserved. Drift rate correction coefficient of GPS time scale with + /// respect to UTC drift model. + #[cfg_attr(feature = "serde", serde(rename(serialize = "drift_rate_coeff")))] + pub drift_rate_coeff: i8, + /// Leap second count before insertion. + #[cfg_attr(feature = "serde", serde(rename(serialize = "count_before")))] + pub count_before: i8, + /// Reserved. Drift model reference week second. + #[cfg_attr(feature = "serde", serde(rename(serialize = "tow_s")))] + pub tow_s: u16, + /// Reserved. Drift model reference week number. + #[cfg_attr(feature = "serde", serde(rename(serialize = "wn")))] + pub wn: u16, + /// Leap second reference week number. + #[cfg_attr(feature = "serde", serde(rename(serialize = "ref_wn")))] + pub ref_wn: u16, + /// Leap second reference day number. + #[cfg_attr(feature = "serde", serde(rename(serialize = "ref_dn")))] + pub ref_dn: u8, + /// Leap second count after insertion. + #[cfg_attr(feature = "serde", serde(rename(serialize = "count_after")))] + pub count_after: i8, + } + + impl ConcreteMessage for MsgUtcLeapSecond { + const MESSAGE_TYPE: u16 = 570; + const MESSAGE_NAME: &'static str = "MSG_UTC_LEAP_SECOND"; + } + + impl SbpMessage for MsgUtcLeapSecond { + fn message_name(&self) -> &'static str { + ::MESSAGE_NAME + } + fn message_type(&self) -> u16 { + ::MESSAGE_TYPE + } + fn sender_id(&self) -> Option { + self.sender_id + } + fn set_sender_id(&mut self, new_id: u16) { + self.sender_id = Some(new_id); + } + fn encoded_len(&self) -> usize { + WireFormat::len(self) + crate::HEADER_LEN + crate::CRC_LEN + } + } + + impl TryFrom for MsgUtcLeapSecond { + type Error = TryFromSbpError; + fn try_from(msg: Sbp) -> Result { + match msg { + Sbp::MsgUtcLeapSecond(m) => Ok(m), + _ => Err(TryFromSbpError), + } + } + } + + impl WireFormat for MsgUtcLeapSecond { + const MIN_LEN: usize = ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN; + fn len(&self) -> usize { + WireFormat::len(&self.bias_coeff) + + WireFormat::len(&self.drift_coeff) + + WireFormat::len(&self.drift_rate_coeff) + + WireFormat::len(&self.count_before) + + WireFormat::len(&self.tow_s) + + WireFormat::len(&self.wn) + + WireFormat::len(&self.ref_wn) + + WireFormat::len(&self.ref_dn) + + WireFormat::len(&self.count_after) + } + fn write(&self, buf: &mut B) { + WireFormat::write(&self.bias_coeff, buf); + WireFormat::write(&self.drift_coeff, buf); + WireFormat::write(&self.drift_rate_coeff, buf); + WireFormat::write(&self.count_before, buf); + WireFormat::write(&self.tow_s, buf); + WireFormat::write(&self.wn, buf); + WireFormat::write(&self.ref_wn, buf); + WireFormat::write(&self.ref_dn, buf); + WireFormat::write(&self.count_after, buf); + } + fn parse_unchecked(buf: &mut B) -> Self { + MsgUtcLeapSecond { + sender_id: None, + bias_coeff: WireFormat::parse_unchecked(buf), + drift_coeff: WireFormat::parse_unchecked(buf), + drift_rate_coeff: WireFormat::parse_unchecked(buf), + count_before: WireFormat::parse_unchecked(buf), + tow_s: WireFormat::parse_unchecked(buf), + wn: WireFormat::parse_unchecked(buf), + ref_wn: WireFormat::parse_unchecked(buf), + ref_dn: WireFormat::parse_unchecked(buf), + count_after: WireFormat::parse_unchecked(buf), + } + } + } +} + pub mod msg_utc_time { #![allow(unused_imports)] diff --git a/rust/sbp/src/messages/ssr.rs b/rust/sbp/src/messages/ssr.rs index 6b1292ea6e..8e19bbf76e 100644 --- a/rust/sbp/src/messages/ssr.rs +++ b/rust/sbp/src/messages/ssr.rs @@ -774,10 +774,10 @@ pub mod msg_ssr_gridded_correction_bounds { /// Header of a bounds message. #[cfg_attr(feature = "serde", serde(rename(serialize = "header")))] pub header: BoundsHeader, - /// IOD of the SSR atmospheric correction. + /// IOD of the correction. #[cfg_attr(feature = "serde", serde(rename(serialize = "ssr_iod_atmo")))] pub ssr_iod_atmo: u8, - /// Unique identifier of the set this tile belongs to. + /// Set this tile belongs to. #[cfg_attr(feature = "serde", serde(rename(serialize = "tile_set_id")))] pub tile_set_id: u16, /// Unique identifier of this tile in the tile set. @@ -792,12 +792,21 @@ pub mod msg_ssr_gridded_correction_bounds { /// Tropospheric delay at grid point. #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_delay_correction")))] pub tropo_delay_correction: TroposphericDelayCorrection, - /// Troposphere Error Bound Mean. Range: 0-1.275 m - #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_bound_mu")))] - pub tropo_bound_mu: u8, - /// Troposphere Error Bound StDev. Range: 0-1.275 m - #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_bound_sig")))] - pub tropo_bound_sig: u8, + /// Vertical Hydrostatic Error Bound Mean. + #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_v_hydro_bound_mu")))] + pub tropo_v_hydro_bound_mu: u8, + /// Vertical Hydrostatic Error Bound StDev. + #[cfg_attr( + feature = "serde", + serde(rename(serialize = "tropo_v_hydro_bound_sig")) + )] + pub tropo_v_hydro_bound_sig: u8, + /// Vertical Wet Error Bound Mean. + #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_v_wet_bound_mu")))] + pub tropo_v_wet_bound_mu: u8, + /// Vertical Wet Error Bound StDev. + #[cfg_attr(feature = "serde", serde(rename(serialize = "tropo_v_wet_bound_sig")))] + pub tropo_v_wet_bound_sig: u8, /// Number of satellites. #[cfg_attr(feature = "serde", serde(rename(serialize = "n_sats")))] pub n_sats: u8, @@ -851,6 +860,8 @@ pub mod msg_ssr_gridded_correction_bounds { + ::MIN_LEN + ::MIN_LEN + ::MIN_LEN + + ::MIN_LEN + + ::MIN_LEN + as WireFormat>::MIN_LEN; fn len(&self) -> usize { WireFormat::len(&self.header) @@ -860,8 +871,10 @@ pub mod msg_ssr_gridded_correction_bounds { + WireFormat::len(&self.tropo_qi) + WireFormat::len(&self.grid_point_id) + WireFormat::len(&self.tropo_delay_correction) - + WireFormat::len(&self.tropo_bound_mu) - + WireFormat::len(&self.tropo_bound_sig) + + WireFormat::len(&self.tropo_v_hydro_bound_mu) + + WireFormat::len(&self.tropo_v_hydro_bound_sig) + + WireFormat::len(&self.tropo_v_wet_bound_mu) + + WireFormat::len(&self.tropo_v_wet_bound_sig) + WireFormat::len(&self.n_sats) + WireFormat::len(&self.stec_sat_list) } @@ -873,8 +886,10 @@ pub mod msg_ssr_gridded_correction_bounds { WireFormat::write(&self.tropo_qi, buf); WireFormat::write(&self.grid_point_id, buf); WireFormat::write(&self.tropo_delay_correction, buf); - WireFormat::write(&self.tropo_bound_mu, buf); - WireFormat::write(&self.tropo_bound_sig, buf); + WireFormat::write(&self.tropo_v_hydro_bound_mu, buf); + WireFormat::write(&self.tropo_v_hydro_bound_sig, buf); + WireFormat::write(&self.tropo_v_wet_bound_mu, buf); + WireFormat::write(&self.tropo_v_wet_bound_sig, buf); WireFormat::write(&self.n_sats, buf); WireFormat::write(&self.stec_sat_list, buf); } @@ -888,8 +903,10 @@ pub mod msg_ssr_gridded_correction_bounds { tropo_qi: WireFormat::parse_unchecked(buf), grid_point_id: WireFormat::parse_unchecked(buf), tropo_delay_correction: WireFormat::parse_unchecked(buf), - tropo_bound_mu: WireFormat::parse_unchecked(buf), - tropo_bound_sig: WireFormat::parse_unchecked(buf), + tropo_v_hydro_bound_mu: WireFormat::parse_unchecked(buf), + tropo_v_hydro_bound_sig: WireFormat::parse_unchecked(buf), + tropo_v_wet_bound_mu: WireFormat::parse_unchecked(buf), + tropo_v_wet_bound_sig: WireFormat::parse_unchecked(buf), n_sats: WireFormat::parse_unchecked(buf), stec_sat_list: WireFormat::parse_unchecked(buf), } @@ -1328,8 +1345,11 @@ pub mod msg_ssr_orbit_clock_bounds { /// Combined Orbit and Clock Bound /// - /// Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, mean=25+2(i-240). + /// Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, mean=5+0.5(i-230). + /// + /// Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, std=5+0.5(i-230). /// #[cfg_attr(feature = "serde", derive(serde::Serialize))] #[derive(Debug, Clone)] @@ -1443,7 +1463,8 @@ pub mod msg_ssr_orbit_clock_bounds_degradation { #[cfg_attr(feature = "serde", serde(rename(serialize = "const_id")))] pub const_id: u8, /// Satellite Bit Mask. Put 1 for each satellite where the following - /// degradation parameters are applicable, 0 otherwise. + /// degradation parameters are applicable, 0 otherwise. Encoded following + /// RTCM DF394 specification. #[cfg_attr(feature = "serde", serde(rename(serialize = "sat_bitmask")))] pub sat_bitmask: u64, /// Orbit and Clock Bounds Degradation Parameters @@ -2521,19 +2542,19 @@ pub mod orbit_clock_bound { /// Mean Cross-Track. See Note 1. #[cfg_attr(feature = "serde", serde(rename(serialize = "orb_cross_bound_mu")))] pub orb_cross_bound_mu: u8, - /// Standard Deviation Radial. See Note 1. + /// Standard Deviation Radial. See Note 2. #[cfg_attr(feature = "serde", serde(rename(serialize = "orb_radial_bound_sig")))] pub orb_radial_bound_sig: u8, - /// Standard Deviation Along-Track. See Note 1. + /// Standard Deviation Along-Track. See Note 2. #[cfg_attr(feature = "serde", serde(rename(serialize = "orb_along_bound_sig")))] pub orb_along_bound_sig: u8, - /// Standard Deviation Cross-Track. See Note 1. + /// Standard Deviation Cross-Track. See Note 2. #[cfg_attr(feature = "serde", serde(rename(serialize = "orb_cross_bound_sig")))] pub orb_cross_bound_sig: u8, /// Clock Bound Mean. See Note 1. #[cfg_attr(feature = "serde", serde(rename(serialize = "clock_bound_mu")))] pub clock_bound_mu: u8, - /// Clock Bound Standard Deviation. See Note 1. + /// Clock Bound Standard Deviation. See Note 2. #[cfg_attr(feature = "serde", serde(rename(serialize = "clock_bound_sig")))] pub clock_bound_sig: u8, } @@ -3064,10 +3085,10 @@ pub mod stec_sat_element_integrity { /// Error Bound StDev. See Note 1. #[cfg_attr(feature = "serde", serde(rename(serialize = "stec_bound_sig")))] pub stec_bound_sig: u8, - /// Error Bound Mean First derivative. Range: 0-0.01275 m/s + /// Error Bound Mean First derivative. #[cfg_attr(feature = "serde", serde(rename(serialize = "stec_bound_mu_dot")))] pub stec_bound_mu_dot: u8, - /// Error Bound StDev First derivative. Range: 0-0.01275 m/s + /// Error Bound StDev First derivative. #[cfg_attr(feature = "serde", serde(rename(serialize = "stec_bound_sig_dot")))] pub stec_bound_sig_dot: u8, } diff --git a/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_itrf.rs b/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_reference_frame_param.rs similarity index 83% rename from rust/sbp/tests/integration/auto_check_sbp_navigation_msg_itrf.rs rename to rust/sbp/tests/integration/auto_check_sbp_navigation_msg_reference_frame_param.rs index 0a001b9642..f2571b1aca 100644 Binary files a/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_itrf.rs and b/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_reference_frame_param.rs differ diff --git a/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_gps_leap_second.rs b/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_utc_leap_second.rs similarity index 93% rename from rust/sbp/tests/integration/auto_check_sbp_navigation_msg_gps_leap_second.rs rename to rust/sbp/tests/integration/auto_check_sbp_navigation_msg_utc_leap_second.rs index b8790f7f31..50b8f91b32 100644 --- a/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_gps_leap_second.rs +++ b/rust/sbp/tests/integration/auto_check_sbp_navigation_msg_utc_leap_second.rs @@ -9,12 +9,12 @@ // EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. -// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml by generate.py. Do not modify by hand! +// This file was auto-generated from spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml by generate.py. Do not modify by hand! use crate::*; #[test] -fn test_auto_check_sbp_navigation_msg_gps_leap_second() { +fn test_auto_check_sbp_navigation_msg_utc_leap_second() { { let mut payload = Cursor::new(vec![ 85, 58, 2, 66, 0, 14, 1, 0, 2, 0, 3, 4, 5, 0, 6, 0, 7, 0, 8, 9, 50, 232, @@ -28,7 +28,7 @@ fn test_auto_check_sbp_navigation_msg_gps_leap_second() { .expect("failed to parse message") }; match &sbp_msg { - sbp::messages::Sbp::MsgGpsLeapSecond(msg) => { + sbp::messages::Sbp::MsgUtcLeapSecond(msg) => { assert_eq!( msg.message_type(), 570, @@ -87,7 +87,7 @@ fn test_auto_check_sbp_navigation_msg_gps_leap_second() { msg.wn ); } - _ => panic!("Invalid message type! Expected a MsgGPSLeapSecond"), + _ => panic!("Invalid message type! Expected a MsgUtcLeapSecond"), }; let frame = sbp::to_vec(&sbp_msg).unwrap(); assert_eq!(frame, payload.into_inner()); diff --git a/rust/sbp/tests/integration/auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds.rs b/rust/sbp/tests/integration/auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds.rs index 511027ffab..53882576e2 100644 --- a/rust/sbp/tests/integration/auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds.rs +++ b/rust/sbp/tests/integration/auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds.rs @@ -17,9 +17,9 @@ use crate::*; fn test_auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds() { { let mut payload = Cursor::new(vec![ - 85, 254, 5, 66, 0, 43, 180, 0, 0, 0, 3, 0, 1, 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, - 244, 1, 100, 200, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, 6, 10, 22, 0, 23, 24, - 25, 26, 27, 112, 145, + 85, 254, 5, 66, 0, 45, 180, 0, 0, 0, 3, 0, 1, 1, 10, 0, 15, 1, 0, 10, 0, 39, 232, 3, + 244, 1, 100, 200, 150, 100, 150, 100, 2, 5, 10, 16, 0, 17, 18, 19, 20, 21, 6, 10, 22, + 0, 23, 24, 25, 26, 27, 119, 82, ]); // Test the round trip payload parsing @@ -154,16 +154,6 @@ fn test_auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds() { "incorrect value for tile_set_id, expected 1, is {}", msg.tile_set_id ); - assert_eq!( - msg.tropo_bound_mu, 150, - "incorrect value for tropo_bound_mu, expected 150, is {}", - msg.tropo_bound_mu - ); - assert_eq!( - msg.tropo_bound_sig, 100, - "incorrect value for tropo_bound_sig, expected 100, is {}", - msg.tropo_bound_sig - ); assert_eq!( msg.tropo_delay_correction.hydro, 500, "incorrect value for tropo_delay_correction.hydro, expected 500, is {}", @@ -184,6 +174,26 @@ fn test_auto_check_sbp_ssr_msg_ssr_gridded_correction_bounds() { "incorrect value for tropo_qi, expected 39, is {}", msg.tropo_qi ); + assert_eq!( + msg.tropo_v_hydro_bound_mu, 150, + "incorrect value for tropo_v_hydro_bound_mu, expected 150, is {}", + msg.tropo_v_hydro_bound_mu + ); + assert_eq!( + msg.tropo_v_hydro_bound_sig, 100, + "incorrect value for tropo_v_hydro_bound_sig, expected 100, is {}", + msg.tropo_v_hydro_bound_sig + ); + assert_eq!( + msg.tropo_v_wet_bound_mu, 150, + "incorrect value for tropo_v_wet_bound_mu, expected 150, is {}", + msg.tropo_v_wet_bound_mu + ); + assert_eq!( + msg.tropo_v_wet_bound_sig, 100, + "incorrect value for tropo_v_wet_bound_sig, expected 100, is {}", + msg.tropo_v_wet_bound_sig + ); } _ => panic!("Invalid message type! Expected a MsgSsrGriddedCorrectionBounds"), }; diff --git a/rust/sbp/tests/integration/main.rs b/rust/sbp/tests/integration/main.rs index 1ccc5b3dbc..b0f8b2e455 100644 --- a/rust/sbp/tests/integration/main.rs +++ b/rust/sbp/tests/integration/main.rs @@ -34,11 +34,9 @@ mod auto_check_sbp_navigation_msg_baseline_ned; mod auto_check_sbp_navigation_msg_baseline_ned_dep_a; mod auto_check_sbp_navigation_msg_dops; mod auto_check_sbp_navigation_msg_dops_dep_a; -mod auto_check_sbp_navigation_msg_gps_leap_second; mod auto_check_sbp_navigation_msg_gps_time; mod auto_check_sbp_navigation_msg_gps_time_dep_a; mod auto_check_sbp_navigation_msg_gps_time_gnss; -mod auto_check_sbp_navigation_msg_itrf; mod auto_check_sbp_navigation_msg_pos_ecef; mod auto_check_sbp_navigation_msg_pos_ecef_cov; mod auto_check_sbp_navigation_msg_pos_ecef_cov_gnss; @@ -50,6 +48,8 @@ mod auto_check_sbp_navigation_msg_pos_llh_cov_gnss; mod auto_check_sbp_navigation_msg_pos_llh_dep_a; mod auto_check_sbp_navigation_msg_pos_llh_gnss; mod auto_check_sbp_navigation_msg_protection_level; +mod auto_check_sbp_navigation_msg_reference_frame_param; +mod auto_check_sbp_navigation_msg_utc_leap_second; mod auto_check_sbp_navigation_msg_utc_time; mod auto_check_sbp_navigation_msg_utc_time_gnss; mod auto_check_sbp_navigation_msg_vel_body; diff --git a/sbpjson/elm/SbpJson.elm b/sbpjson/elm/SbpJson.elm index f92192b5ca..d18b0494df 100644 --- a/sbpjson/elm/SbpJson.elm +++ b/sbpjson/elm/SbpJson.elm @@ -5,7 +5,7 @@ -- add these imports -- -- import Json.Decode exposing (decodeString)`); --- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcqResult, msgAcqSvProfile, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSLeapSecond, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgItrf, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPpsTime, msgProtectionLevel, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel) +-- import SbpJson exposing (acqSvProfile, almanacCommonContent, boundsHeader, carrierPhase, codeBiasesContent, codePhaseBiasesSatSig, doppler, ephemerisCommonContent, estimatedHorizontalErrorEllipse, gnssInputType, gnssCapb, gnssSignal, gpsTime, gpsTimeSEC, gridElement, gridElementNoStd, griddedCorrectionHeader, imuInputType, integritySSRHeader, latency, measurementState, msgAcqResult, msgAcqSvProfile, msgAgeCorrections, msgAlmanac, msgAlmanacGPS, msgAlmanacGlo, msgAngularRate, msgBasePosECEF, msgBasePosLLH, msgBaselineECEF, msgBaselineHeading, msgBaselineNED, msgBootloaderHandshakeReq, msgBootloaderHandshakeResp, msgBootloaderJumpToApp, msgCellModemStatus, msgCommandOutput, msgCommandReq, msgCommandResp, msgCsacTelemetry, msgCsacTelemetryLabels, msgCwResults, msgCwStart, msgDeviceMonitor, msgDgnssStatus, msgDops, msgEphemerisBds, msgEphemerisGPS, msgEphemerisGal, msgEphemerisGlo, msgEphemerisQzss, msgEphemerisSbas, msgEXTEvent, msgFileioConfigReq, msgFileioConfigResp, msgFileioReadDirReq, msgFileioReadDirResp, msgFileioReadReq, msgFileioReadResp, msgFileioRemove, msgFileioWriteReq, msgFileioWriteResp, msgFlashDone, msgFlashErase, msgFlashProgram, msgFlashReadReq, msgFlashReadResp, msgFrontEndGain, msgFwd, msgGPSTime, msgGPSTimeGnss, msgGloBiases, msgGnssCapb, msgGnssTimeOffset, msgGroupDelay, msgGroupMeta, msgHeartbeat, msgIarState, msgImuAux, msgImuRaw, msgInsStatus, msgInsUpdates, msgIono, msgLinuxCPUState, msgLinuxMemState, msgLinuxProcessFdCount, msgLinuxProcessFdSummary, msgLinuxProcessSocketCounts, msgLinuxProcessSocketQueues, msgLinuxSocketUsage, msgLinuxSysState, msgLog, msgM25FlashWriteStatus, msgMagRaw, msgMaskSatellite, msgMeasurementState, msgNapDeviceDnaReq, msgNapDeviceDnaResp, msgNdbEvent, msgNetworkBandwidthUsage, msgNetworkStateReq, msgNetworkStateResp, msgObs, msgOdometry, msgOrientEuler, msgOrientQuat, msgOsr, msgPosECEF, msgPosECEFCov, msgPosECEFCovGnss, msgPosECEFGnss, msgPosLLH, msgPosLLHAcc, msgPosLLHCov, msgPosLLHCovGnss, msgPosLLHGnss, msgPpsTime, msgProtectionLevel, msgReferenceFrameParam, msgReset, msgResetFilters, msgSbasRaw, msgSensorAidEvent, msgSetTime, msgSettingsReadByIndexDone, msgSettingsReadByIndexReq, msgSettingsReadByIndexResp, msgSettingsReadReq, msgSettingsReadResp, msgSettingsRegister, msgSettingsRegisterResp, msgSettingsSave, msgSettingsWrite, msgSettingsWriteResp, msgSolnMeta, msgSpecan, msgSsrCodeBiases, msgSsrCodePhaseBiasesBounds, msgSsrFlagHighLevel, msgSsrFlagIonoGridPointSatLos, msgSsrFlagIonoGridPoints, msgSsrFlagIonoTileSatLos, msgSsrFlagSatellites, msgSsrFlagTropoGridPoints, msgSsrGriddedCorrection, msgSsrGriddedCorrectionBounds, msgSsrOrbitClock, msgSsrOrbitClockBounds, msgSsrOrbitClockBoundsDegradation, msgSsrPhaseBiases, msgSsrSatelliteApc, msgSsrStecCorrection, msgSsrTileDefinition, msgStartup, msgStatusJournal, msgStatusReport, msgStmFlashLockSector, msgStmFlashUnlockSector, msgStmUniqueIDReq, msgStmUniqueIDResp, msgSvAzEl, msgThreadState, msgTrackingIq, msgTrackingState, msgUARTState, msgUserData, msgUTCLeapSecond, msgUTCTime, msgUTCTimeGnss, msgVelBody, msgVelCog, msgVelECEF, msgVelECEFCov, msgVelECEFCovGnss, msgVelECEFGnss, msgVelNED, msgVelNEDCov, msgVelNEDCovGnss, msgVelNEDGnss, msgWheeltick, networkUsage, observationHeader, odoInputType, orbitClockBound, orbitClockBoundDegradation, packedObsContent, packedOsrContent, period, phaseBiasesContent, stecHeader, stecResidual, stecResidualNoStd, stecSatElement, stecSatElementIntegrity, satelliteAPC, solutionInputType, statusJournalItem, subSystemReport, svAzEl, svID, trackingChannelCorrelation, trackingChannelState, troposphericDelayCorrection, troposphericDelayCorrectionNoStd, uartChannel) -- -- and you're off to the races with -- @@ -79,7 +79,6 @@ -- decodeString msgFlashReadResp myJsonString -- decodeString msgFrontEndGain myJsonString -- decodeString msgFwd myJsonString --- decodeString msgGPSLeapSecond myJsonString -- decodeString msgGPSTime myJsonString -- decodeString msgGPSTimeGnss myJsonString -- decodeString msgGloBiases myJsonString @@ -94,7 +93,6 @@ -- decodeString msgInsStatus myJsonString -- decodeString msgInsUpdates myJsonString -- decodeString msgIono myJsonString --- decodeString msgItrf myJsonString -- decodeString msgLinuxCPUState myJsonString -- decodeString msgLinuxMemState myJsonString -- decodeString msgLinuxProcessFdCount myJsonString @@ -130,6 +128,7 @@ -- decodeString msgPosLLHGnss myJsonString -- decodeString msgPpsTime myJsonString -- decodeString msgProtectionLevel myJsonString +-- decodeString msgReferenceFrameParam myJsonString -- decodeString msgReset myJsonString -- decodeString msgResetFilters myJsonString -- decodeString msgSbasRaw myJsonString @@ -177,6 +176,7 @@ -- decodeString msgTrackingState myJsonString -- decodeString msgUARTState myJsonString -- decodeString msgUserData myJsonString +-- decodeString msgUTCLeapSecond myJsonString -- decodeString msgUTCTime myJsonString -- decodeString msgUTCTimeGnss myJsonString -- decodeString msgVelBody myJsonString @@ -427,9 +427,6 @@ module SbpJson exposing , MsgFwd , msgFwdToString , msgFwd - , MsgGPSLeapSecond - , msgGPSLeapSecondToString - , msgGPSLeapSecond , MsgGPSTime , msgGPSTimeToString , msgGPSTime @@ -472,9 +469,6 @@ module SbpJson exposing , MsgIono , msgIonoToString , msgIono - , MsgItrf - , msgItrfToString - , msgItrf , MsgLinuxCPUState , msgLinuxCPUStateToString , msgLinuxCPUState @@ -580,6 +574,9 @@ module SbpJson exposing , MsgProtectionLevel , msgProtectionLevelToString , msgProtectionLevel + , MsgReferenceFrameParam + , msgReferenceFrameParamToString + , msgReferenceFrameParam , MsgReset , msgResetToString , msgReset @@ -721,6 +718,9 @@ module SbpJson exposing , MsgUserData , msgUserDataToString , msgUserData + , MsgUTCLeapSecond + , msgUTCLeapSecondToString + , msgUTCLeapSecond , MsgUTCTime , msgUTCTimeToString , msgUTCTime @@ -1553,21 +1553,6 @@ type alias MsgFwd = , source : Int } -{-| Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model -parameters. --} -type alias MsgGPSLeapSecond = - { biasCoeff : Int - , countAfter : Int - , countBefore : Int - , driftCoeff : Int - , driftRateCoeff : Int - , refDN : Int - , refWn : Int - , towS : Int - , wn : Int - } - {-| This message reports the GPS time, representing the time since the GPS epoch began on midnight January 6, 1980 UTC. GPS time counts the weeks and seconds of the week. The weeks begin at the Saturday/Sunday transition. GPS week 0 began at the beginning of the @@ -1758,31 +1743,6 @@ type alias MsgIono = , tNmct : GpsTimeSEC } -type alias MsgItrf = - { deltaX0 : Int - , deltaY0 : Int - , deltaZ0 : Int - , dotDeltaX0 : Int - , dotDeltaY0 : Int - , dotDeltaZ0 : Int - , dotScale : Int - , dotTheta01 : Int - , dotTheta02 : Int - , dotTheta03 : Int - , reT0 : Int - , scale : Int - , sin : Int - , sn : String - , snCounterN : Int - , ssrIod : Int - , theta01 : Int - , theta02 : Int - , theta03 : Int - , tn : String - , tnCounterM : Int - , utn : Int - } - {-| This message indicates the process state of the top 10 heaviest consumers of CPU on the system, including a timestamp. -} @@ -2336,6 +2296,29 @@ type alias MsgProtectionLevel = , wn : Int } +type alias MsgReferenceFrameParam = + { deltaX0 : Int + , deltaY0 : Int + , deltaZ0 : Int + , dotDeltaX0 : Int + , dotDeltaY0 : Int + , dotDeltaZ0 : Int + , dotScale : Int + , dotTheta01 : Int + , dotTheta02 : Int + , dotTheta03 : Int + , reT0 : Int + , scale : Int + , sin : Int + , sn : String + , ssrIod : Int + , theta01 : Int + , theta02 : Int + , theta03 : Int + , tn : String + , utn : Int + } + {-| This message from the host resets the Piksi back into the bootloader. -} type alias MsgReset = { flags : Int @@ -2640,10 +2623,12 @@ type alias MsgSsrGriddedCorrectionBounds = , stecSatList : Array STECSatElementIntegrity , tileID : Int , tileSetID : Int - , tropoBoundMu : Int - , tropoBoundSig : Int , tropoDelayCorrection : TroposphericDelayCorrection , tropoQi : Int + , tropoVHydroBoundMu : Int + , tropoVHydroBoundSig : Int + , tropoVWetBoundMu : Int + , tropoVWetBoundSig : Int } {-| STEC polynomial and bounds for the given satellite. -} @@ -2675,8 +2660,11 @@ type alias MsgSsrOrbitClock = , updateInterval : Int } -{-| Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, -mean=25+2(i-240). +{-| Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, +mean=5+0.5(i-230)., +, +Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, +std=5+0.5(i-230). -} type alias MsgSsrOrbitClockBounds = { constID : Int @@ -2982,6 +2970,21 @@ type alias MsgUserData = { contents : Array Int } +{-| Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model +parameters. +-} +type alias MsgUTCLeapSecond = + { biasCoeff : Int + , countAfter : Int + , countBefore : Int + , driftCoeff : Int + , driftRateCoeff : Int + , refDN : Int + , refWn : Int + , towS : Int + , wn : Int + } + {-| This message reports the Universal Coordinated Time (UTC). Note the flags which indicate the source of the UTC offset value and source of the time fix. -} @@ -3455,9 +3458,6 @@ msgFrontEndGainToString r = Jenc.encode 0 (encodeMsgFrontEndGain r) msgFwdToString : MsgFwd -> String msgFwdToString r = Jenc.encode 0 (encodeMsgFwd r) -msgGPSLeapSecondToString : MsgGPSLeapSecond -> String -msgGPSLeapSecondToString r = Jenc.encode 0 (encodeMsgGPSLeapSecond r) - msgGPSTimeToString : MsgGPSTime -> String msgGPSTimeToString r = Jenc.encode 0 (encodeMsgGPSTime r) @@ -3500,9 +3500,6 @@ msgInsUpdatesToString r = Jenc.encode 0 (encodeMsgInsUpdates r) msgIonoToString : MsgIono -> String msgIonoToString r = Jenc.encode 0 (encodeMsgIono r) -msgItrfToString : MsgItrf -> String -msgItrfToString r = Jenc.encode 0 (encodeMsgItrf r) - msgLinuxCPUStateToString : MsgLinuxCPUState -> String msgLinuxCPUStateToString r = Jenc.encode 0 (encodeMsgLinuxCPUState r) @@ -3614,6 +3611,9 @@ msgPpsTimeToString r = Jenc.encode 0 (encodeMsgPpsTime r) msgProtectionLevelToString : MsgProtectionLevel -> String msgProtectionLevelToString r = Jenc.encode 0 (encodeMsgProtectionLevel r) +msgReferenceFrameParamToString : MsgReferenceFrameParam -> String +msgReferenceFrameParamToString r = Jenc.encode 0 (encodeMsgReferenceFrameParam r) + msgResetToString : MsgReset -> String msgResetToString r = Jenc.encode 0 (encodeMsgReset r) @@ -3767,6 +3767,9 @@ msgUARTStateToString r = Jenc.encode 0 (encodeMsgUARTState r) msgUserDataToString : MsgUserData -> String msgUserDataToString r = Jenc.encode 0 (encodeMsgUserData r) +msgUTCLeapSecondToString : MsgUTCLeapSecond -> String +msgUTCLeapSecondToString r = Jenc.encode 0 (encodeMsgUTCLeapSecond r) + msgUTCTimeToString : MsgUTCTime -> String msgUTCTimeToString r = Jenc.encode 0 (encodeMsgUTCTime r) @@ -4990,33 +4993,6 @@ encodeMsgFwd x = , ("source", Jenc.int x.source) ] -msgGPSLeapSecond : Jdec.Decoder MsgGPSLeapSecond -msgGPSLeapSecond = - Jpipe.decode MsgGPSLeapSecond - |> Jpipe.required "bias_coeff" Jdec.int - |> Jpipe.required "count_after" Jdec.int - |> Jpipe.required "count_before" Jdec.int - |> Jpipe.required "drift_coeff" Jdec.int - |> Jpipe.required "drift_rate_coeff" Jdec.int - |> Jpipe.required "ref_dn" Jdec.int - |> Jpipe.required "ref_wn" Jdec.int - |> Jpipe.required "tow_s" Jdec.int - |> Jpipe.required "wn" Jdec.int - -encodeMsgGPSLeapSecond : MsgGPSLeapSecond -> Jenc.Value -encodeMsgGPSLeapSecond x = - Jenc.object - [ ("bias_coeff", Jenc.int x.biasCoeff) - , ("count_after", Jenc.int x.countAfter) - , ("count_before", Jenc.int x.countBefore) - , ("drift_coeff", Jenc.int x.driftCoeff) - , ("drift_rate_coeff", Jenc.int x.driftRateCoeff) - , ("ref_dn", Jenc.int x.refDN) - , ("ref_wn", Jenc.int x.refWn) - , ("tow_s", Jenc.int x.towS) - , ("wn", Jenc.int x.wn) - ] - msgGPSTime : Jdec.Decoder MsgGPSTime msgGPSTime = Jpipe.decode MsgGPSTime @@ -5300,59 +5276,6 @@ encodeMsgIono x = , ("t_nmct", encodeGpsTimeSEC x.tNmct) ] -msgItrf : Jdec.Decoder MsgItrf -msgItrf = - Jpipe.decode MsgItrf - |> Jpipe.required "delta_X0" Jdec.int - |> Jpipe.required "delta_Y0" Jdec.int - |> Jpipe.required "delta_Z0" Jdec.int - |> Jpipe.required "dot_delta_X0" Jdec.int - |> Jpipe.required "dot_delta_Y0" Jdec.int - |> Jpipe.required "dot_delta_Z0" Jdec.int - |> Jpipe.required "dot_scale" Jdec.int - |> Jpipe.required "dot_theta_01" Jdec.int - |> Jpipe.required "dot_theta_02" Jdec.int - |> Jpipe.required "dot_theta_03" Jdec.int - |> Jpipe.required "re_t0" Jdec.int - |> Jpipe.required "scale" Jdec.int - |> Jpipe.required "sin" Jdec.int - |> Jpipe.required "sn" Jdec.string - |> Jpipe.required "sn_counter_n" Jdec.int - |> Jpipe.required "ssr_iod" Jdec.int - |> Jpipe.required "theta_01" Jdec.int - |> Jpipe.required "theta_02" Jdec.int - |> Jpipe.required "theta_03" Jdec.int - |> Jpipe.required "tn" Jdec.string - |> Jpipe.required "tn_counter_m" Jdec.int - |> Jpipe.required "utn" Jdec.int - -encodeMsgItrf : MsgItrf -> Jenc.Value -encodeMsgItrf x = - Jenc.object - [ ("delta_X0", Jenc.int x.deltaX0) - , ("delta_Y0", Jenc.int x.deltaY0) - , ("delta_Z0", Jenc.int x.deltaZ0) - , ("dot_delta_X0", Jenc.int x.dotDeltaX0) - , ("dot_delta_Y0", Jenc.int x.dotDeltaY0) - , ("dot_delta_Z0", Jenc.int x.dotDeltaZ0) - , ("dot_scale", Jenc.int x.dotScale) - , ("dot_theta_01", Jenc.int x.dotTheta01) - , ("dot_theta_02", Jenc.int x.dotTheta02) - , ("dot_theta_03", Jenc.int x.dotTheta03) - , ("re_t0", Jenc.int x.reT0) - , ("scale", Jenc.int x.scale) - , ("sin", Jenc.int x.sin) - , ("sn", Jenc.string x.sn) - , ("sn_counter_n", Jenc.int x.snCounterN) - , ("ssr_iod", Jenc.int x.ssrIod) - , ("theta_01", Jenc.int x.theta01) - , ("theta_02", Jenc.int x.theta02) - , ("theta_03", Jenc.int x.theta03) - , ("tn", Jenc.string x.tn) - , ("tn_counter_m", Jenc.int x.tnCounterM) - , ("utn", Jenc.int x.utn) - ] - msgLinuxCPUState : Jdec.Decoder MsgLinuxCPUState msgLinuxCPUState = Jpipe.decode MsgLinuxCPUState @@ -6227,6 +6150,55 @@ encodeMsgProtectionLevel x = , ("wn", Jenc.int x.wn) ] +msgReferenceFrameParam : Jdec.Decoder MsgReferenceFrameParam +msgReferenceFrameParam = + Jpipe.decode MsgReferenceFrameParam + |> Jpipe.required "delta_X0" Jdec.int + |> Jpipe.required "delta_Y0" Jdec.int + |> Jpipe.required "delta_Z0" Jdec.int + |> Jpipe.required "dot_delta_X0" Jdec.int + |> Jpipe.required "dot_delta_Y0" Jdec.int + |> Jpipe.required "dot_delta_Z0" Jdec.int + |> Jpipe.required "dot_scale" Jdec.int + |> Jpipe.required "dot_theta_01" Jdec.int + |> Jpipe.required "dot_theta_02" Jdec.int + |> Jpipe.required "dot_theta_03" Jdec.int + |> Jpipe.required "re_t0" Jdec.int + |> Jpipe.required "scale" Jdec.int + |> Jpipe.required "sin" Jdec.int + |> Jpipe.required "sn" Jdec.string + |> Jpipe.required "ssr_iod" Jdec.int + |> Jpipe.required "theta_01" Jdec.int + |> Jpipe.required "theta_02" Jdec.int + |> Jpipe.required "theta_03" Jdec.int + |> Jpipe.required "tn" Jdec.string + |> Jpipe.required "utn" Jdec.int + +encodeMsgReferenceFrameParam : MsgReferenceFrameParam -> Jenc.Value +encodeMsgReferenceFrameParam x = + Jenc.object + [ ("delta_X0", Jenc.int x.deltaX0) + , ("delta_Y0", Jenc.int x.deltaY0) + , ("delta_Z0", Jenc.int x.deltaZ0) + , ("dot_delta_X0", Jenc.int x.dotDeltaX0) + , ("dot_delta_Y0", Jenc.int x.dotDeltaY0) + , ("dot_delta_Z0", Jenc.int x.dotDeltaZ0) + , ("dot_scale", Jenc.int x.dotScale) + , ("dot_theta_01", Jenc.int x.dotTheta01) + , ("dot_theta_02", Jenc.int x.dotTheta02) + , ("dot_theta_03", Jenc.int x.dotTheta03) + , ("re_t0", Jenc.int x.reT0) + , ("scale", Jenc.int x.scale) + , ("sin", Jenc.int x.sin) + , ("sn", Jenc.string x.sn) + , ("ssr_iod", Jenc.int x.ssrIod) + , ("theta_01", Jenc.int x.theta01) + , ("theta_02", Jenc.int x.theta02) + , ("theta_03", Jenc.int x.theta03) + , ("tn", Jenc.string x.tn) + , ("utn", Jenc.int x.utn) + ] + msgReset : Jdec.Decoder MsgReset msgReset = Jpipe.decode MsgReset @@ -6732,10 +6704,12 @@ msgSsrGriddedCorrectionBounds = |> Jpipe.required "stec_sat_list" (Jdec.array stecSatElementIntegrity) |> Jpipe.required "tile_id" Jdec.int |> Jpipe.required "tile_set_id" Jdec.int - |> Jpipe.required "tropo_bound_mu" Jdec.int - |> Jpipe.required "tropo_bound_sig" Jdec.int |> Jpipe.required "tropo_delay_correction" troposphericDelayCorrection |> Jpipe.required "tropo_qi" Jdec.int + |> Jpipe.required "tropo_v_hydro_bound_mu" Jdec.int + |> Jpipe.required "tropo_v_hydro_bound_sig" Jdec.int + |> Jpipe.required "tropo_v_wet_bound_mu" Jdec.int + |> Jpipe.required "tropo_v_wet_bound_sig" Jdec.int encodeMsgSsrGriddedCorrectionBounds : MsgSsrGriddedCorrectionBounds -> Jenc.Value encodeMsgSsrGriddedCorrectionBounds x = @@ -6747,10 +6721,12 @@ encodeMsgSsrGriddedCorrectionBounds x = , ("stec_sat_list", makeArrayEncoder encodeSTECSatElementIntegrity x.stecSatList) , ("tile_id", Jenc.int x.tileID) , ("tile_set_id", Jenc.int x.tileSetID) - , ("tropo_bound_mu", Jenc.int x.tropoBoundMu) - , ("tropo_bound_sig", Jenc.int x.tropoBoundSig) , ("tropo_delay_correction", encodeTroposphericDelayCorrection x.tropoDelayCorrection) , ("tropo_qi", Jenc.int x.tropoQi) + , ("tropo_v_hydro_bound_mu", Jenc.int x.tropoVHydroBoundMu) + , ("tropo_v_hydro_bound_sig", Jenc.int x.tropoVHydroBoundSig) + , ("tropo_v_wet_bound_mu", Jenc.int x.tropoVWetBoundMu) + , ("tropo_v_wet_bound_sig", Jenc.int x.tropoVWetBoundSig) ] stecSatElementIntegrity : Jdec.Decoder STECSatElementIntegrity @@ -7332,6 +7308,33 @@ encodeMsgUserData x = [ ("contents", makeArrayEncoder Jenc.int x.contents) ] +msgUTCLeapSecond : Jdec.Decoder MsgUTCLeapSecond +msgUTCLeapSecond = + Jpipe.decode MsgUTCLeapSecond + |> Jpipe.required "bias_coeff" Jdec.int + |> Jpipe.required "count_after" Jdec.int + |> Jpipe.required "count_before" Jdec.int + |> Jpipe.required "drift_coeff" Jdec.int + |> Jpipe.required "drift_rate_coeff" Jdec.int + |> Jpipe.required "ref_dn" Jdec.int + |> Jpipe.required "ref_wn" Jdec.int + |> Jpipe.required "tow_s" Jdec.int + |> Jpipe.required "wn" Jdec.int + +encodeMsgUTCLeapSecond : MsgUTCLeapSecond -> Jenc.Value +encodeMsgUTCLeapSecond x = + Jenc.object + [ ("bias_coeff", Jenc.int x.biasCoeff) + , ("count_after", Jenc.int x.countAfter) + , ("count_before", Jenc.int x.countBefore) + , ("drift_coeff", Jenc.int x.driftCoeff) + , ("drift_rate_coeff", Jenc.int x.driftRateCoeff) + , ("ref_dn", Jenc.int x.refDN) + , ("ref_wn", Jenc.int x.refWn) + , ("tow_s", Jenc.int x.towS) + , ("wn", Jenc.int x.wn) + ] + msgUTCTime : Jdec.Decoder MsgUTCTime msgUTCTime = Jpipe.decode MsgUTCTime diff --git a/sbpjson/javascript/SbpJson.js b/sbpjson/javascript/SbpJson.js index 05b595ffaf..bb25b1a539 100644 --- a/sbpjson/javascript/SbpJson.js +++ b/sbpjson/javascript/SbpJson.js @@ -72,7 +72,6 @@ // const msgFlashReadResp = Convert.toMsgFlashReadResp(json); // const msgFrontEndGain = Convert.toMsgFrontEndGain(json); // const msgFwd = Convert.toMsgFwd(json); -// const msgGPSLeapSecond = Convert.toMsgGPSLeapSecond(json); // const msgGPSTime = Convert.toMsgGPSTime(json); // const msgGPSTimeGnss = Convert.toMsgGPSTimeGnss(json); // const msgGloBiases = Convert.toMsgGloBiases(json); @@ -87,7 +86,6 @@ // const msgInsStatus = Convert.toMsgInsStatus(json); // const msgInsUpdates = Convert.toMsgInsUpdates(json); // const msgIono = Convert.toMsgIono(json); -// const msgItrf = Convert.toMsgItrf(json); // const msgLinuxCPUState = Convert.toMsgLinuxCPUState(json); // const msgLinuxMemState = Convert.toMsgLinuxMemState(json); // const msgLinuxProcessFdCount = Convert.toMsgLinuxProcessFdCount(json); @@ -123,6 +121,7 @@ // const msgPosLLHGnss = Convert.toMsgPosLLHGnss(json); // const msgPpsTime = Convert.toMsgPpsTime(json); // const msgProtectionLevel = Convert.toMsgProtectionLevel(json); +// const msgReferenceFrameParam = Convert.toMsgReferenceFrameParam(json); // const msgReset = Convert.toMsgReset(json); // const msgResetFilters = Convert.toMsgResetFilters(json); // const msgSbasRaw = Convert.toMsgSbasRaw(json); @@ -170,6 +169,7 @@ // const msgTrackingState = Convert.toMsgTrackingState(json); // const msgUARTState = Convert.toMsgUARTState(json); // const msgUserData = Convert.toMsgUserData(json); +// const msgUTCLeapSecond = Convert.toMsgUTCLeapSecond(json); // const msgUTCTime = Convert.toMsgUTCTime(json); // const msgUTCTimeGnss = Convert.toMsgUTCTimeGnss(json); // const msgVelBody = Convert.toMsgVelBody(json); @@ -774,14 +774,6 @@ function msgFwdToJson(value) { return JSON.stringify(uncast(value, r("MsgFwd")), null, 2); } -function toMsgGPSLeapSecond(json) { - return cast(JSON.parse(json), r("MsgGPSLeapSecond")); -} - -function msgGPSLeapSecondToJson(value) { - return JSON.stringify(uncast(value, r("MsgGPSLeapSecond")), null, 2); -} - function toMsgGPSTime(json) { return cast(JSON.parse(json), r("MsgGPSTime")); } @@ -894,14 +886,6 @@ function msgIonoToJson(value) { return JSON.stringify(uncast(value, r("MsgIono")), null, 2); } -function toMsgItrf(json) { - return cast(JSON.parse(json), r("MsgItrf")); -} - -function msgItrfToJson(value) { - return JSON.stringify(uncast(value, r("MsgItrf")), null, 2); -} - function toMsgLinuxCPUState(json) { return cast(JSON.parse(json), r("MsgLinuxCPUState")); } @@ -1182,6 +1166,14 @@ function msgProtectionLevelToJson(value) { return JSON.stringify(uncast(value, r("MsgProtectionLevel")), null, 2); } +function toMsgReferenceFrameParam(json) { + return cast(JSON.parse(json), r("MsgReferenceFrameParam")); +} + +function msgReferenceFrameParamToJson(value) { + return JSON.stringify(uncast(value, r("MsgReferenceFrameParam")), null, 2); +} + function toMsgReset(json) { return cast(JSON.parse(json), r("MsgReset")); } @@ -1558,6 +1550,14 @@ function msgUserDataToJson(value) { return JSON.stringify(uncast(value, r("MsgUserData")), null, 2); } +function toMsgUTCLeapSecond(json) { + return cast(JSON.parse(json), r("MsgUTCLeapSecond")); +} + +function msgUTCLeapSecondToJson(value) { + return JSON.stringify(uncast(value, r("MsgUTCLeapSecond")), null, 2); +} + function toMsgUTCTime(json) { return cast(JSON.parse(json), r("MsgUTCTime")); } @@ -2402,17 +2402,6 @@ const typeMap = { { json: "protocol", js: "protocol", typ: 0 }, { json: "source", js: "source", typ: 0 }, ], "any"), - "MsgGPSLeapSecond": o([ - { json: "bias_coeff", js: "bias_coeff", typ: 0 }, - { json: "count_after", js: "count_after", typ: 0 }, - { json: "count_before", js: "count_before", typ: 0 }, - { json: "drift_coeff", js: "drift_coeff", typ: 0 }, - { json: "drift_rate_coeff", js: "drift_rate_coeff", typ: 0 }, - { json: "ref_dn", js: "ref_dn", typ: 0 }, - { json: "ref_wn", js: "ref_wn", typ: 0 }, - { json: "tow_s", js: "tow_s", typ: 0 }, - { json: "wn", js: "wn", typ: 0 }, - ], "any"), "MsgGPSTime": o([ { json: "flags", js: "flags", typ: 0 }, { json: "ns_residual", js: "ns_residual", typ: 0 }, @@ -2517,30 +2506,6 @@ const typeMap = { { json: "b3", js: "b3", typ: 3.14 }, { json: "t_nmct", js: "t_nmct", typ: r("GpsTimeSEC") }, ], "any"), - "MsgItrf": o([ - { json: "delta_X0", js: "delta_X0", typ: 0 }, - { json: "delta_Y0", js: "delta_Y0", typ: 0 }, - { json: "delta_Z0", js: "delta_Z0", typ: 0 }, - { json: "dot_delta_X0", js: "dot_delta_X0", typ: 0 }, - { json: "dot_delta_Y0", js: "dot_delta_Y0", typ: 0 }, - { json: "dot_delta_Z0", js: "dot_delta_Z0", typ: 0 }, - { json: "dot_scale", js: "dot_scale", typ: 0 }, - { json: "dot_theta_01", js: "dot_theta_01", typ: 0 }, - { json: "dot_theta_02", js: "dot_theta_02", typ: 0 }, - { json: "dot_theta_03", js: "dot_theta_03", typ: 0 }, - { json: "re_t0", js: "re_t0", typ: 0 }, - { json: "scale", js: "scale", typ: 0 }, - { json: "sin", js: "sin", typ: 0 }, - { json: "sn", js: "sn", typ: "" }, - { json: "sn_counter_n", js: "sn_counter_n", typ: 0 }, - { json: "ssr_iod", js: "ssr_iod", typ: 0 }, - { json: "theta_01", js: "theta_01", typ: 0 }, - { json: "theta_02", js: "theta_02", typ: 0 }, - { json: "theta_03", js: "theta_03", typ: 0 }, - { json: "tn", js: "tn", typ: "" }, - { json: "tn_counter_m", js: "tn_counter_m", typ: 0 }, - { json: "utn", js: "utn", typ: 0 }, - ], "any"), "MsgLinuxCPUState": o([ { json: "cmdline", js: "cmdline", typ: "" }, { json: "flags", js: "flags", typ: 0 }, @@ -2873,6 +2838,28 @@ const typeMap = { { json: "vvpl", js: "vvpl", typ: 0 }, { json: "wn", js: "wn", typ: 0 }, ], "any"), + "MsgReferenceFrameParam": o([ + { json: "delta_X0", js: "delta_X0", typ: 0 }, + { json: "delta_Y0", js: "delta_Y0", typ: 0 }, + { json: "delta_Z0", js: "delta_Z0", typ: 0 }, + { json: "dot_delta_X0", js: "dot_delta_X0", typ: 0 }, + { json: "dot_delta_Y0", js: "dot_delta_Y0", typ: 0 }, + { json: "dot_delta_Z0", js: "dot_delta_Z0", typ: 0 }, + { json: "dot_scale", js: "dot_scale", typ: 0 }, + { json: "dot_theta_01", js: "dot_theta_01", typ: 0 }, + { json: "dot_theta_02", js: "dot_theta_02", typ: 0 }, + { json: "dot_theta_03", js: "dot_theta_03", typ: 0 }, + { json: "re_t0", js: "re_t0", typ: 0 }, + { json: "scale", js: "scale", typ: 0 }, + { json: "sin", js: "sin", typ: 0 }, + { json: "sn", js: "sn", typ: "" }, + { json: "ssr_iod", js: "ssr_iod", typ: 0 }, + { json: "theta_01", js: "theta_01", typ: 0 }, + { json: "theta_02", js: "theta_02", typ: 0 }, + { json: "theta_03", js: "theta_03", typ: 0 }, + { json: "tn", js: "tn", typ: "" }, + { json: "utn", js: "utn", typ: 0 }, + ], "any"), "MsgReset": o([ { json: "flags", js: "flags", typ: 0 }, ], "any"), @@ -3056,10 +3043,12 @@ const typeMap = { { json: "stec_sat_list", js: "stec_sat_list", typ: a(r("STECSatElementIntegrity")) }, { json: "tile_id", js: "tile_id", typ: 0 }, { json: "tile_set_id", js: "tile_set_id", typ: 0 }, - { json: "tropo_bound_mu", js: "tropo_bound_mu", typ: 0 }, - { json: "tropo_bound_sig", js: "tropo_bound_sig", typ: 0 }, { json: "tropo_delay_correction", js: "tropo_delay_correction", typ: r("TroposphericDelayCorrection") }, { json: "tropo_qi", js: "tropo_qi", typ: 0 }, + { json: "tropo_v_hydro_bound_mu", js: "tropo_v_hydro_bound_mu", typ: 0 }, + { json: "tropo_v_hydro_bound_sig", js: "tropo_v_hydro_bound_sig", typ: 0 }, + { json: "tropo_v_wet_bound_mu", js: "tropo_v_wet_bound_mu", typ: 0 }, + { json: "tropo_v_wet_bound_sig", js: "tropo_v_wet_bound_sig", typ: 0 }, ], "any"), "STECSatElementIntegrity": o([ { json: "stec_bound_mu", js: "stec_bound_mu", typ: 0 }, @@ -3268,6 +3257,17 @@ const typeMap = { "MsgUserData": o([ { json: "contents", js: "contents", typ: a(0) }, ], "any"), + "MsgUTCLeapSecond": o([ + { json: "bias_coeff", js: "bias_coeff", typ: 0 }, + { json: "count_after", js: "count_after", typ: 0 }, + { json: "count_before", js: "count_before", typ: 0 }, + { json: "drift_coeff", js: "drift_coeff", typ: 0 }, + { json: "drift_rate_coeff", js: "drift_rate_coeff", typ: 0 }, + { json: "ref_dn", js: "ref_dn", typ: 0 }, + { json: "ref_wn", js: "ref_wn", typ: 0 }, + { json: "tow_s", js: "tow_s", typ: 0 }, + { json: "wn", js: "wn", typ: 0 }, + ], "any"), "MsgUTCTime": o([ { json: "day", js: "day", typ: 0 }, { json: "flags", js: "flags", typ: 0 }, @@ -3569,8 +3569,6 @@ module.exports = { "toMsgFrontEndGain": toMsgFrontEndGain, "msgFwdToJson": msgFwdToJson, "toMsgFwd": toMsgFwd, - "msgGPSLeapSecondToJson": msgGPSLeapSecondToJson, - "toMsgGPSLeapSecond": toMsgGPSLeapSecond, "msgGPSTimeToJson": msgGPSTimeToJson, "toMsgGPSTime": toMsgGPSTime, "msgGPSTimeGnssToJson": msgGPSTimeGnssToJson, @@ -3599,8 +3597,6 @@ module.exports = { "toMsgInsUpdates": toMsgInsUpdates, "msgIonoToJson": msgIonoToJson, "toMsgIono": toMsgIono, - "msgItrfToJson": msgItrfToJson, - "toMsgItrf": toMsgItrf, "msgLinuxCPUStateToJson": msgLinuxCPUStateToJson, "toMsgLinuxCPUState": toMsgLinuxCPUState, "msgLinuxMemStateToJson": msgLinuxMemStateToJson, @@ -3671,6 +3667,8 @@ module.exports = { "toMsgPpsTime": toMsgPpsTime, "msgProtectionLevelToJson": msgProtectionLevelToJson, "toMsgProtectionLevel": toMsgProtectionLevel, + "msgReferenceFrameParamToJson": msgReferenceFrameParamToJson, + "toMsgReferenceFrameParam": toMsgReferenceFrameParam, "msgResetToJson": msgResetToJson, "toMsgReset": toMsgReset, "msgResetFiltersToJson": msgResetFiltersToJson, @@ -3765,6 +3763,8 @@ module.exports = { "toMsgUARTState": toMsgUARTState, "msgUserDataToJson": msgUserDataToJson, "toMsgUserData": toMsgUserData, + "msgUTCLeapSecondToJson": msgUTCLeapSecondToJson, + "toMsgUTCLeapSecond": toMsgUTCLeapSecond, "msgUTCTimeToJson": msgUTCTimeToJson, "toMsgUTCTime": toMsgUTCTime, "msgUTCTimeGnssToJson": msgUTCTimeGnssToJson, diff --git a/sbpjson/typescript/SbpJson.ts b/sbpjson/typescript/SbpJson.ts index fda718ebf5..9803c0cd49 100644 --- a/sbpjson/typescript/SbpJson.ts +++ b/sbpjson/typescript/SbpJson.ts @@ -1,6 +1,6 @@ // To parse this data: // -// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcqResult, MsgAcqSvProfile, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSLeapSecond, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgItrf, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPpsTime, MsgProtectionLevel, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel } from "./file"; +// import { Convert, AcqSvProfile, AlmanacCommonContent, BoundsHeader, CarrierPhase, CodeBiasesContent, CodePhaseBiasesSatSig, Doppler, EphemerisCommonContent, EstimatedHorizontalErrorEllipse, GNSSInputType, GnssCapb, GnssSignal, GpsTime, GpsTimeSEC, GridElement, GridElementNoStd, GriddedCorrectionHeader, IMUInputType, IntegritySSRHeader, Latency, MeasurementState, MsgAcqResult, MsgAcqSvProfile, MsgAgeCorrections, MsgAlmanacGPS, MsgAlmanacGlo, MsgAngularRate, MsgBasePosECEF, MsgBasePosLLH, MsgBaselineECEF, MsgBaselineHeading, MsgBaselineNED, MsgBootloaderHandshakeResp, MsgBootloaderJumpToApp, MsgCellModemStatus, MsgCommandOutput, MsgCommandReq, MsgCommandResp, MsgCsacTelemetry, MsgCsacTelemetryLabels, MsgDeviceMonitor, MsgDgnssStatus, MsgDops, MsgEphemerisBds, MsgEphemerisGPS, MsgEphemerisGal, MsgEphemerisGlo, MsgEphemerisQzss, MsgEphemerisSbas, MsgEXTEvent, MsgFileioConfigReq, MsgFileioConfigResp, MsgFileioReadDirReq, MsgFileioReadDirResp, MsgFileioReadReq, MsgFileioReadResp, MsgFileioRemove, MsgFileioWriteReq, MsgFileioWriteResp, MsgFlashDone, MsgFlashErase, MsgFlashProgram, MsgFlashReadReq, MsgFlashReadResp, MsgFrontEndGain, MsgFwd, MsgGPSTime, MsgGPSTimeGnss, MsgGloBiases, MsgGnssCapb, MsgGnssTimeOffset, MsgGroupDelay, MsgGroupMeta, MsgHeartbeat, MsgIarState, MsgImuAux, MsgImuRaw, MsgInsStatus, MsgInsUpdates, MsgIono, MsgLinuxCPUState, MsgLinuxMemState, MsgLinuxProcessFdCount, MsgLinuxProcessFdSummary, MsgLinuxProcessSocketCounts, MsgLinuxProcessSocketQueues, MsgLinuxSocketUsage, MsgLinuxSysState, MsgLog, MsgM25FlashWriteStatus, MsgMagRaw, MsgMaskSatellite, MsgMeasurementState, MsgNapDeviceDnaResp, MsgNdbEvent, MsgNetworkBandwidthUsage, MsgNetworkStateResp, MsgObs, MsgOdometry, MsgOrientEuler, MsgOrientQuat, MsgOsr, MsgPosECEF, MsgPosECEFCov, MsgPosECEFCovGnss, MsgPosECEFGnss, MsgPosLLH, MsgPosLLHAcc, MsgPosLLHCov, MsgPosLLHCovGnss, MsgPosLLHGnss, MsgPpsTime, MsgProtectionLevel, MsgReferenceFrameParam, MsgReset, MsgResetFilters, MsgSbasRaw, MsgSensorAidEvent, MsgSettingsReadByIndexReq, MsgSettingsReadByIndexResp, MsgSettingsReadReq, MsgSettingsReadResp, MsgSettingsRegister, MsgSettingsRegisterResp, MsgSettingsWrite, MsgSettingsWriteResp, MsgSolnMeta, MsgSpecan, MsgSsrCodeBiases, MsgSsrCodePhaseBiasesBounds, MsgSsrFlagHighLevel, MsgSsrFlagIonoGridPointSatLos, MsgSsrFlagIonoGridPoints, MsgSsrFlagIonoTileSatLos, MsgSsrFlagSatellites, MsgSsrFlagTropoGridPoints, MsgSsrGriddedCorrection, MsgSsrGriddedCorrectionBounds, MsgSsrOrbitClock, MsgSsrOrbitClockBounds, MsgSsrOrbitClockBoundsDegradation, MsgSsrPhaseBiases, MsgSsrSatelliteApc, MsgSsrStecCorrection, MsgSsrTileDefinition, MsgStartup, MsgStatusJournal, MsgStatusReport, MsgStmFlashLockSector, MsgStmFlashUnlockSector, MsgStmUniqueIDResp, MsgSvAzEl, MsgThreadState, MsgTrackingIq, MsgTrackingState, MsgUARTState, MsgUserData, MsgUTCLeapSecond, MsgUTCTime, MsgUTCTimeGnss, MsgVelBody, MsgVelCog, MsgVelECEF, MsgVelECEFCov, MsgVelECEFCovGnss, MsgVelECEFGnss, MsgVelNED, MsgVelNEDCov, MsgVelNEDCovGnss, MsgVelNEDGnss, MsgWheeltick, NetworkUsage, ObservationHeader, OdoInputType, OrbitClockBound, OrbitClockBoundDegradation, PackedObsContent, PackedOsrContent, Period, PhaseBiasesContent, STECHeader, STECResidual, STECResidualNoStd, STECSatElement, STECSatElementIntegrity, SatelliteAPC, SolutionInputType, StatusJournalItem, SubSystemReport, SvAzEl, SvID, TrackingChannelCorrelation, TrackingChannelState, TroposphericDelayCorrection, TroposphericDelayCorrectionNoStd, UARTChannel } from "./file"; // // const acqSvProfile = Convert.toAcqSvProfile(json); // const almanacCommonContent = Convert.toAlmanacCommonContent(json); @@ -72,7 +72,6 @@ // const msgFlashReadResp = Convert.toMsgFlashReadResp(json); // const msgFrontEndGain = Convert.toMsgFrontEndGain(json); // const msgFwd = Convert.toMsgFwd(json); -// const msgGPSLeapSecond = Convert.toMsgGPSLeapSecond(json); // const msgGPSTime = Convert.toMsgGPSTime(json); // const msgGPSTimeGnss = Convert.toMsgGPSTimeGnss(json); // const msgGloBiases = Convert.toMsgGloBiases(json); @@ -87,7 +86,6 @@ // const msgInsStatus = Convert.toMsgInsStatus(json); // const msgInsUpdates = Convert.toMsgInsUpdates(json); // const msgIono = Convert.toMsgIono(json); -// const msgItrf = Convert.toMsgItrf(json); // const msgLinuxCPUState = Convert.toMsgLinuxCPUState(json); // const msgLinuxMemState = Convert.toMsgLinuxMemState(json); // const msgLinuxProcessFdCount = Convert.toMsgLinuxProcessFdCount(json); @@ -123,6 +121,7 @@ // const msgPosLLHGnss = Convert.toMsgPosLLHGnss(json); // const msgPpsTime = Convert.toMsgPpsTime(json); // const msgProtectionLevel = Convert.toMsgProtectionLevel(json); +// const msgReferenceFrameParam = Convert.toMsgReferenceFrameParam(json); // const msgReset = Convert.toMsgReset(json); // const msgResetFilters = Convert.toMsgResetFilters(json); // const msgSbasRaw = Convert.toMsgSbasRaw(json); @@ -170,6 +169,7 @@ // const msgTrackingState = Convert.toMsgTrackingState(json); // const msgUARTState = Convert.toMsgUARTState(json); // const msgUserData = Convert.toMsgUserData(json); +// const msgUTCLeapSecond = Convert.toMsgUTCLeapSecond(json); // const msgUTCTime = Convert.toMsgUTCTime(json); // const msgUTCTimeGnss = Convert.toMsgUTCTimeGnss(json); // const msgVelBody = Convert.toMsgVelBody(json); @@ -966,22 +966,6 @@ export interface MsgFwd { source: number; } -/** - * Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model - * parameters. - */ -export interface MsgGPSLeapSecond { - bias_coeff: number; - count_after: number; - count_before: number; - drift_coeff: number; - drift_rate_coeff: number; - ref_dn: number; - ref_wn: number; - tow_s: number; - wn: number; -} - /** * This message reports the GPS time, representing the time since the GPS epoch began on * midnight January 6, 1980 UTC. GPS time counts the weeks and seconds of the week. The @@ -1186,31 +1170,6 @@ export interface MsgIono { t_nmct: GpsTimeSEC; } -export interface MsgItrf { - delta_X0: number; - delta_Y0: number; - delta_Z0: number; - dot_delta_X0: number; - dot_delta_Y0: number; - dot_delta_Z0: number; - dot_scale: number; - dot_theta_01: number; - dot_theta_02: number; - dot_theta_03: number; - re_t0: number; - scale: number; - sin: number; - sn: string; - sn_counter_n: number; - ssr_iod: number; - theta_01: number; - theta_02: number; - theta_03: number; - tn: string; - tn_counter_m: number; - utn: number; -} - /** * This message indicates the process state of the top 10 heaviest consumers of CPU on the * system, including a timestamp. @@ -1816,6 +1775,29 @@ export interface MsgProtectionLevel { wn: number; } +export interface MsgReferenceFrameParam { + delta_X0: number; + delta_Y0: number; + delta_Z0: number; + dot_delta_X0: number; + dot_delta_Y0: number; + dot_delta_Z0: number; + dot_scale: number; + dot_theta_01: number; + dot_theta_02: number; + dot_theta_03: number; + re_t0: number; + scale: number; + sin: number; + sn: string; + ssr_iod: number; + theta_01: number; + theta_02: number; + theta_03: number; + tn: string; + utn: number; +} + /** * This message from the host resets the Piksi back into the bootloader. */ @@ -2135,17 +2117,19 @@ export interface GriddedCorrectionHeader { * mean=5+0.5(i-230). */ export interface MsgSsrGriddedCorrectionBounds { - grid_point_id: number; - header: BoundsHeader; - n_sats: number; - ssr_iod_atmo: number; - stec_sat_list: STECSatElementIntegrity[]; - tile_id: number; - tile_set_id: number; - tropo_bound_mu: number; - tropo_bound_sig: number; - tropo_delay_correction: TroposphericDelayCorrection; - tropo_qi: number; + grid_point_id: number; + header: BoundsHeader; + n_sats: number; + ssr_iod_atmo: number; + stec_sat_list: STECSatElementIntegrity[]; + tile_id: number; + tile_set_id: number; + tropo_delay_correction: TroposphericDelayCorrection; + tropo_qi: number; + tropo_v_hydro_bound_mu: number; + tropo_v_hydro_bound_sig: number; + tropo_v_wet_bound_mu: number; + tropo_v_wet_bound_sig: number; } /** @@ -2181,8 +2165,11 @@ export interface MsgSsrOrbitClock { } /** - * Note 1: Range: 0-55 m. i<=200, mean=0.0251i; 200240, - * mean=25+2(i-240). + * Note 1: Range: 0-17.5 m. i<=200, mean=0.01i; 200230, + * mean=5+0.5(i-230)., + * , + * Note 2: Range: 0-17.5 m. i<=200, std=0.01i; 200230, + * std=5+0.5(i-230). */ export interface MsgSsrOrbitClockBounds { const_id: number; @@ -2523,6 +2510,22 @@ export interface MsgUserData { contents: number[]; } +/** + * Emulates the GPS CNAV message, reserving bytes for future broadcast of the drift model + * parameters. + */ +export interface MsgUTCLeapSecond { + bias_coeff: number; + count_after: number; + count_before: number; + drift_coeff: number; + drift_rate_coeff: number; + ref_dn: number; + ref_wn: number; + tow_s: number; + wn: number; +} + /** * This message reports the Universal Coordinated Time (UTC). Note the flags which indicate * the source of the UTC offset value and source of the time fix. @@ -3350,14 +3353,6 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgFwd")), null, 2); } - public static toMsgGPSLeapSecond(json: string): MsgGPSLeapSecond { - return cast(JSON.parse(json), r("MsgGPSLeapSecond")); - } - - public static msgGPSLeapSecondToJson(value: MsgGPSLeapSecond): string { - return JSON.stringify(uncast(value, r("MsgGPSLeapSecond")), null, 2); - } - public static toMsgGPSTime(json: string): MsgGPSTime { return cast(JSON.parse(json), r("MsgGPSTime")); } @@ -3470,14 +3465,6 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgIono")), null, 2); } - public static toMsgItrf(json: string): MsgItrf { - return cast(JSON.parse(json), r("MsgItrf")); - } - - public static msgItrfToJson(value: MsgItrf): string { - return JSON.stringify(uncast(value, r("MsgItrf")), null, 2); - } - public static toMsgLinuxCPUState(json: string): MsgLinuxCPUState { return cast(JSON.parse(json), r("MsgLinuxCPUState")); } @@ -3758,6 +3745,14 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgProtectionLevel")), null, 2); } + public static toMsgReferenceFrameParam(json: string): MsgReferenceFrameParam { + return cast(JSON.parse(json), r("MsgReferenceFrameParam")); + } + + public static msgReferenceFrameParamToJson(value: MsgReferenceFrameParam): string { + return JSON.stringify(uncast(value, r("MsgReferenceFrameParam")), null, 2); + } + public static toMsgReset(json: string): MsgReset { return cast(JSON.parse(json), r("MsgReset")); } @@ -4134,6 +4129,14 @@ export class Convert { return JSON.stringify(uncast(value, r("MsgUserData")), null, 2); } + public static toMsgUTCLeapSecond(json: string): MsgUTCLeapSecond { + return cast(JSON.parse(json), r("MsgUTCLeapSecond")); + } + + public static msgUTCLeapSecondToJson(value: MsgUTCLeapSecond): string { + return JSON.stringify(uncast(value, r("MsgUTCLeapSecond")), null, 2); + } + public static toMsgUTCTime(json: string): MsgUTCTime { return cast(JSON.parse(json), r("MsgUTCTime")); } @@ -4979,17 +4982,6 @@ const typeMap: any = { { json: "protocol", js: "protocol", typ: 0 }, { json: "source", js: "source", typ: 0 }, ], "any"), - "MsgGPSLeapSecond": o([ - { json: "bias_coeff", js: "bias_coeff", typ: 0 }, - { json: "count_after", js: "count_after", typ: 0 }, - { json: "count_before", js: "count_before", typ: 0 }, - { json: "drift_coeff", js: "drift_coeff", typ: 0 }, - { json: "drift_rate_coeff", js: "drift_rate_coeff", typ: 0 }, - { json: "ref_dn", js: "ref_dn", typ: 0 }, - { json: "ref_wn", js: "ref_wn", typ: 0 }, - { json: "tow_s", js: "tow_s", typ: 0 }, - { json: "wn", js: "wn", typ: 0 }, - ], "any"), "MsgGPSTime": o([ { json: "flags", js: "flags", typ: 0 }, { json: "ns_residual", js: "ns_residual", typ: 0 }, @@ -5094,30 +5086,6 @@ const typeMap: any = { { json: "b3", js: "b3", typ: 3.14 }, { json: "t_nmct", js: "t_nmct", typ: r("GpsTimeSEC") }, ], "any"), - "MsgItrf": o([ - { json: "delta_X0", js: "delta_X0", typ: 0 }, - { json: "delta_Y0", js: "delta_Y0", typ: 0 }, - { json: "delta_Z0", js: "delta_Z0", typ: 0 }, - { json: "dot_delta_X0", js: "dot_delta_X0", typ: 0 }, - { json: "dot_delta_Y0", js: "dot_delta_Y0", typ: 0 }, - { json: "dot_delta_Z0", js: "dot_delta_Z0", typ: 0 }, - { json: "dot_scale", js: "dot_scale", typ: 0 }, - { json: "dot_theta_01", js: "dot_theta_01", typ: 0 }, - { json: "dot_theta_02", js: "dot_theta_02", typ: 0 }, - { json: "dot_theta_03", js: "dot_theta_03", typ: 0 }, - { json: "re_t0", js: "re_t0", typ: 0 }, - { json: "scale", js: "scale", typ: 0 }, - { json: "sin", js: "sin", typ: 0 }, - { json: "sn", js: "sn", typ: "" }, - { json: "sn_counter_n", js: "sn_counter_n", typ: 0 }, - { json: "ssr_iod", js: "ssr_iod", typ: 0 }, - { json: "theta_01", js: "theta_01", typ: 0 }, - { json: "theta_02", js: "theta_02", typ: 0 }, - { json: "theta_03", js: "theta_03", typ: 0 }, - { json: "tn", js: "tn", typ: "" }, - { json: "tn_counter_m", js: "tn_counter_m", typ: 0 }, - { json: "utn", js: "utn", typ: 0 }, - ], "any"), "MsgLinuxCPUState": o([ { json: "cmdline", js: "cmdline", typ: "" }, { json: "flags", js: "flags", typ: 0 }, @@ -5450,6 +5418,28 @@ const typeMap: any = { { json: "vvpl", js: "vvpl", typ: 0 }, { json: "wn", js: "wn", typ: 0 }, ], "any"), + "MsgReferenceFrameParam": o([ + { json: "delta_X0", js: "delta_X0", typ: 0 }, + { json: "delta_Y0", js: "delta_Y0", typ: 0 }, + { json: "delta_Z0", js: "delta_Z0", typ: 0 }, + { json: "dot_delta_X0", js: "dot_delta_X0", typ: 0 }, + { json: "dot_delta_Y0", js: "dot_delta_Y0", typ: 0 }, + { json: "dot_delta_Z0", js: "dot_delta_Z0", typ: 0 }, + { json: "dot_scale", js: "dot_scale", typ: 0 }, + { json: "dot_theta_01", js: "dot_theta_01", typ: 0 }, + { json: "dot_theta_02", js: "dot_theta_02", typ: 0 }, + { json: "dot_theta_03", js: "dot_theta_03", typ: 0 }, + { json: "re_t0", js: "re_t0", typ: 0 }, + { json: "scale", js: "scale", typ: 0 }, + { json: "sin", js: "sin", typ: 0 }, + { json: "sn", js: "sn", typ: "" }, + { json: "ssr_iod", js: "ssr_iod", typ: 0 }, + { json: "theta_01", js: "theta_01", typ: 0 }, + { json: "theta_02", js: "theta_02", typ: 0 }, + { json: "theta_03", js: "theta_03", typ: 0 }, + { json: "tn", js: "tn", typ: "" }, + { json: "utn", js: "utn", typ: 0 }, + ], "any"), "MsgReset": o([ { json: "flags", js: "flags", typ: 0 }, ], "any"), @@ -5633,10 +5623,12 @@ const typeMap: any = { { json: "stec_sat_list", js: "stec_sat_list", typ: a(r("STECSatElementIntegrity")) }, { json: "tile_id", js: "tile_id", typ: 0 }, { json: "tile_set_id", js: "tile_set_id", typ: 0 }, - { json: "tropo_bound_mu", js: "tropo_bound_mu", typ: 0 }, - { json: "tropo_bound_sig", js: "tropo_bound_sig", typ: 0 }, { json: "tropo_delay_correction", js: "tropo_delay_correction", typ: r("TroposphericDelayCorrection") }, { json: "tropo_qi", js: "tropo_qi", typ: 0 }, + { json: "tropo_v_hydro_bound_mu", js: "tropo_v_hydro_bound_mu", typ: 0 }, + { json: "tropo_v_hydro_bound_sig", js: "tropo_v_hydro_bound_sig", typ: 0 }, + { json: "tropo_v_wet_bound_mu", js: "tropo_v_wet_bound_mu", typ: 0 }, + { json: "tropo_v_wet_bound_sig", js: "tropo_v_wet_bound_sig", typ: 0 }, ], "any"), "STECSatElementIntegrity": o([ { json: "stec_bound_mu", js: "stec_bound_mu", typ: 0 }, @@ -5845,6 +5837,17 @@ const typeMap: any = { "MsgUserData": o([ { json: "contents", js: "contents", typ: a(0) }, ], "any"), + "MsgUTCLeapSecond": o([ + { json: "bias_coeff", js: "bias_coeff", typ: 0 }, + { json: "count_after", js: "count_after", typ: 0 }, + { json: "count_before", js: "count_before", typ: 0 }, + { json: "drift_coeff", js: "drift_coeff", typ: 0 }, + { json: "drift_rate_coeff", js: "drift_rate_coeff", typ: 0 }, + { json: "ref_dn", js: "ref_dn", typ: 0 }, + { json: "ref_wn", js: "ref_wn", typ: 0 }, + { json: "tow_s", js: "tow_s", typ: 0 }, + { json: "wn", js: "wn", typ: 0 }, + ], "any"), "MsgUTCTime": o([ { json: "day", js: "day", typ: 0 }, { json: "flags", js: "flags", typ: 0 }, diff --git a/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml b/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml similarity index 53% rename from spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml rename to spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml index 04beccb51d..358fc49aed 100644 --- a/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgItrf.yaml +++ b/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgReferenceFrameParam.yaml @@ -1,4 +1,4 @@ -description: Unit tests for swiftnav.sbp.navigation MsgItrf +description: Unit tests for swiftnav.sbp.navigation MsgReferenceFrameParam generated_on: 2022-05-11 # manually generated package: sbp.navigation tests: @@ -6,10 +6,8 @@ tests: - msg: fields: ssr_iod: 1 - sn_counter_n: 2 - sn: "foo\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - tn_counter_m: 3 - tn: "bar\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + sn: "foo\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + tn: "bar\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" sin: 4 utn: 5 re_t0: 6 @@ -28,20 +26,21 @@ tests: dot_theta_03: 19 dot_scale: 20 module: sbp.navigation - name: MsgItrf + name: MsgReferenceFrameParam msg_type: '580' - raw_json: '{"ssr_iod": 1, "sn_counter_n": 2, "sn": "foo\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", - "tn_counter_m": 3, "tn": "bar\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + raw_json: '{"ssr_iod": 1, + "sn": "foo\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", + "tn": "bar\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000", "sin": 4, "utn": 5, "re_t0": 6, "delta_X0": 7, "delta_Y0": 8, "delta_Z0": 9, "theta_01": 10, "theta_02": 11, "theta_03": 12, "scale": 13, "dot_delta_X0": 14, "dot_delta_Y0": 15, "dot_delta_Z0": 16, "dot_theta_01": 17, "dot_theta_02": 18, "dot_theta_03": 19, "dot_scale": 20, "preamble": 85, "msg_type": 580, "sender": 66, "length": 124, - "payload": "AQJmb28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2JhcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAA==", - "crc": 32322}' - raw_packet: VUQCQgB8AQJmb28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2JhcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAEJ+ + "payload": "AWZvbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmFyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAA==", + "crc": 41222}' + raw_packet: VUQCQgB8AWZvbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmFyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAAah sbp: preamble: '0x55' msg_type: '0x0244' sender: '0x0042' length: 124 - payload: AQJmb28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2JhcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAA== - crc: '0x7E42' + payload: AWZvbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmFyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBQAGAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAARAAAAEgAAABMAAAAUAA== + crc: '0xA106' diff --git a/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml b/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml similarity index 89% rename from spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml rename to spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml index f321f1d81b..4d0593b5a7 100644 --- a/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgGPSLeapSecond.yaml +++ b/spec/tests/yaml/swiftnav/sbp/navigation/test_MsgUTCLeapSecond.yaml @@ -1,4 +1,4 @@ -description: Unit tests for swiftnav.sbp.navigation MsgGPSLeapSecond +description: Unit tests for swiftnav.sbp.navigation MsgUTCLeapSecond generated_on: 2022-05-11 # manually generated package: sbp.navigation tests: @@ -15,7 +15,7 @@ tests: ref_dn: 8 count_after: 9 module: sbp.navigation - name: MsgGPSLeapSecond + name: MsgUtcLeapSecond msg_type: '570' raw_json: '{"bias_coeff": 1, "drift_coeff": 2, "drift_rate_coeff": 3, "count_before": 4, "tow_s": 5, "wn": 6, "ref_wn": 7, "ref_dn": 8, "count_after": 9, "preamble": 85, "msg_type": 570, "sender": 66, "length": 14, diff --git a/spec/tests/yaml/swiftnav/sbp/ssr/test_MsgSsrGriddedCorrectionBounds.yaml b/spec/tests/yaml/swiftnav/sbp/ssr/test_MsgSsrGriddedCorrectionBounds.yaml index bed08e07a2..af539ee41a 100644 --- a/spec/tests/yaml/swiftnav/sbp/ssr/test_MsgSsrGriddedCorrectionBounds.yaml +++ b/spec/tests/yaml/swiftnav/sbp/ssr/test_MsgSsrGriddedCorrectionBounds.yaml @@ -22,8 +22,10 @@ tests: hydro: 500 wet: 100 stddev: 200 - tropo_bound_mu: 150 - tropo_bound_sig: 100 + tropo_v_hydro_bound_mu: 150 + tropo_v_hydro_bound_sig: 100 + tropo_v_wet_bound_mu: 150 + tropo_v_wet_bound_sig: 100 n_sats: 2 stec_sat_list: - stec_residual: @@ -51,17 +53,18 @@ tests: msg_type: '1534' raw_json: '{"header": {"time": {"tow": 180, "wn": 3}, "num_msgs": 1, "seq_num": 1, "update_interval": 10, "sol_id": 0}, "ssr_iod_atmo": 15, "tile_set_id": 1, "tile_id": 10, "tropo_qi": 39, "grid_point_id": 1000, "tropo_delay_correction": - {"hydro": 500, "wet": 100, "stddev": 200}, "tropo_bound_mu": 150, "tropo_bound_sig": 100, "n_sats": 2, "stec_sat_list": + {"hydro": 500, "wet": 100, "stddev": 200}, "tropo_v_hydro_bound_mu": 150, "tropo_v_hydro_bound_sig": 100, + "tropo_v_wet_bound_mu": 150, "tropo_v_wet_bound_sig": 100, "n_sats": 2, "stec_sat_list": [{"stec_residual": {"sv_id": {"satId": 5, "constellation": 10}, "residual": 16, "stddev": 17}, "stec_bound_mu": 18, "stec_bound_sig": 19, "stec_bound_mu_dot": 20, "stec_bound_sig_dot": 21}, {"stec_residual": {"sv_id": {"satId": 6, "constellation": 10}, "residual": 22, "stddev": 23}, "stec_bound_mu": 24, "stec_bound_sig": 25, "stec_bound_mu_dot": 26, - "stec_bound_sig_dot": 27}], "preamble": 85, "msg_type": 1534, "sender": 66, "length": 43, - "payload": "tAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZkAgUKEAAREhMUFQYKFgAXGBkaGw==", "crc": 37232}' - raw_packet: Vf4FQgArtAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZkAgUKEAAREhMUFQYKFgAXGBkaG3CR + "stec_bound_sig_dot": 27}], "preamble": 85, "msg_type": 1534, "sender": 66, "length": 45, + "payload": "tAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZklmQCBQoQABESExQVBgoWABcYGRob", "crc": 21111}' + raw_packet: Vf4FQgAttAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZklmQCBQoQABESExQVBgoWABcYGRobd1I= sbp: preamble: '0x55' msg_type: '0x05FE' sender: '0x0042' - length: 43 - payload: tAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZkAgUKEAAREhMUFQYKFgAXGBkaGw== - crc: '0x9170' + length: 45 + payload: tAAAAAMAAQEKAA8BAAoAJ+gD9AFkyJZklmQCBQoQABESExQVBgoWABcYGRob + crc: '0x5277' diff --git a/spec/yaml/swiftnav/sbp/navigation.yaml b/spec/yaml/swiftnav/sbp/navigation.yaml index 38bf456caa..db9e74ed36 100644 --- a/spec/yaml/swiftnav/sbp/navigation.yaml +++ b/spec/yaml/swiftnav/sbp/navigation.yaml @@ -2428,7 +2428,7 @@ definitions: - 31: desc: Safe state ROPL - - MSG_GPS_LEAP_SECOND: + - MSG_UTC_LEAP_SECOND: id: 0x023A short_desc: > Leap second SBP message. @@ -2479,27 +2479,23 @@ definitions: units: s desc: Leap second count after insertion. - - MSG_ITRF: + - MSG_REFERENCE_FRAME_PARAM: id: 0x0244 - short_desc: Reference Frame Transformation Parameter + short_desc: Reference Frame Transformation Parameters fields: - ssr_iod: type: u8 desc: SSR IOD parameter. - - sn_counter_n: - type: u8 - desc: Source-Name Counter N. - sn: type: string - size: 31 - desc: Source-Name - - tn_counter_m: - type: u8 - desc: Target-Name Counter M. + encoding: null_terminated + size: 32 + desc: Name of source coordinate-system using the EPSG identification code. - tn: type: string - size: 31 - desc: Target-Name + encoding: null_terminated + size: 32 + desc: Name of target coordinate-system using the EPSG identification code. - sin: type: u8 desc: System Identification Number. diff --git a/spec/yaml/swiftnav/sbp/ssr.yaml b/spec/yaml/swiftnav/sbp/ssr.yaml index acc04a3cbb..a1bd6d0274 100644 --- a/spec/yaml/swiftnav/sbp/ssr.yaml +++ b/spec/yaml/swiftnav/sbp/ssr.yaml @@ -477,15 +477,11 @@ definitions: - stec_bound_mu_dot: type: u8 units: 0.00005 m/s - desc: > - Error Bound Mean First derivative. - Range: 0-0.01275 m/s + desc: Error Bound Mean First derivative. - stec_bound_sig_dot: type: u8 units: 0.00005 m/s - desc: > - Error Bound StDev First derivative. - Range: 0-0.01275 m/s + desc: Error Bound StDev First derivative. - MSG_SSR_GRIDDED_CORRECTION_BOUNDS: id: 0x05FE @@ -501,10 +497,10 @@ definitions: desc: Header of a bounds message. - ssr_iod_atmo: type: u8 - desc: IOD of the SSR atmospheric correction. + desc: IOD of the correction. - tile_set_id: type: u16 - desc: Unique identifier of the set this tile belongs to. + desc: Set this tile belongs to. - tile_id: type: u16 desc: Unique identifier of this tile in the tile set. @@ -517,18 +513,22 @@ definitions: - tropo_delay_correction: type: TroposphericDelayCorrection desc: Tropospheric delay at grid point. - - tropo_bound_mu: + - tropo_v_hydro_bound_mu: type: u8 units: 0.005 m - desc: > - Troposphere Error Bound Mean. - Range: 0-1.275 m - - tropo_bound_sig: + desc: Vertical Hydrostatic Error Bound Mean. + - tropo_v_hydro_bound_sig: type: u8 units: 0.005 m - desc: > - Troposphere Error Bound StDev. - Range: 0-1.275 m + desc: Vertical Hydrostatic Error Bound StDev. + - tropo_v_wet_bound_mu: + type: u8 + units: 0.005 m + desc: Vertical Wet Error Bound Mean. + - tropo_v_wet_bound_sig: + type: u8 + units: 0.005 m + desc: Vertical Wet Error Bound StDev. - n_sats: type: u8 desc: Number of satellites. @@ -1081,19 +1081,19 @@ definitions: units: m desc: > Standard Deviation Radial. - See Note 1. + See Note 2. - orb_along_bound_sig: type: u8 units: m desc: > Standard Deviation Along-Track. - See Note 1. + See Note 2. - orb_cross_bound_sig: type: u8 units: m desc: > Standard Deviation Cross-Track. - See Note 1. + See Note 2. - clock_bound_mu: type: u8 units: m @@ -1105,16 +1105,22 @@ definitions: units: m desc: > Clock Bound Standard Deviation. - See Note 1. + See Note 2. - MSG_SSR_ORBIT_CLOCK_BOUNDS: id: 0x05DE short_desc: Combined Orbit and Clock Bound desc: > - Note 1: Range: 0-55 m. - i<=200, mean=0.0251i; - 200240, mean=25+2(i-240). + Note 1: Range: 0-17.5 m. + i<=200, mean=0.01i; + 200230, mean=5+0.5(i-230). + + + Note 2: Range: 0-17.5 m. + i<=200, std=0.01i; + 200230, std=5+0.5(i-230). fields: - header: type: BoundsHeader @@ -1265,7 +1271,8 @@ definitions: type: u64 desc: > Satellite Bit Mask. Put 1 for each satellite where the following - degradation parameters are applicable, 0 otherwise. + degradation parameters are applicable, 0 otherwise. Encoded + following RTCM DF394 specification. - orbit_clock_bounds_degradation: type: OrbitClockBoundDegradation desc: Orbit and Clock Bounds Degradation Parameters