// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SatFlags {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub quality_ind: u32,
    #[prost(bool, tag = "3")]
    pub sv_used: bool,
    #[prost(uint32, tag = "4")]
    pub health: u32,
    #[prost(bool, tag = "5")]
    pub diff_corr: bool,
    #[prost(bool, tag = "6")]
    pub smoothed: bool,
    #[prost(uint32, tag = "7")]
    pub orbit_source: u32,
    #[prost(bool, tag = "8")]
    pub eph_avail: bool,
    #[prost(bool, tag = "9")]
    pub alm_avail: bool,
    #[prost(bool, tag = "10")]
    pub ano_avail: bool,
    #[prost(bool, tag = "11")]
    pub aop_avail: bool,
    #[prost(bool, tag = "12")]
    pub sbas_corr_used: bool,
    #[prost(bool, tag = "13")]
    pub rtcm_corr_used: bool,
    #[prost(bool, tag = "14")]
    pub slas_corr_used: bool,
    #[prost(bool, tag = "15")]
    pub spartn_corr_used: bool,
    #[prost(bool, tag = "16")]
    pub pr_corr_used: bool,
    #[prost(bool, tag = "17")]
    pub cr_corr_used: bool,
    #[prost(bool, tag = "18")]
    pub do_corr_used: bool,
    #[prost(bool, tag = "19")]
    pub clas_corr_used: bool,
}
impl ::prost::Name for SatFlags {
    const NAME: &'static str = "SatFlags";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SatFlags".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SatFlags".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrkStat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub pr_valid: bool,
    #[prost(bool, tag = "3")]
    pub cp_valid: bool,
    #[prost(bool, tag = "4")]
    pub half_cyc: bool,
    #[prost(bool, tag = "5")]
    pub sub_half_cyc: bool,
}
impl ::prost::Name for TrkStat {
    const NAME: &'static str = "TrkStat";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.TrkStat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.TrkStat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RawxData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(double, tag = "2")]
    pub pr_mes: f64,
    #[prost(double, tag = "3")]
    pub cp_mes: f64,
    #[prost(float, tag = "4")]
    pub do_mes: f32,
    #[prost(uint32, tag = "5")]
    pub gnss_id: u32,
    #[prost(uint32, tag = "6")]
    pub sv_id: u32,
    #[prost(uint32, tag = "7")]
    pub sig_id: u32,
    #[prost(uint32, tag = "8")]
    pub freq_id: u32,
    #[prost(uint32, tag = "9")]
    pub locktime: u32,
    #[prost(uint32, tag = "10")]
    pub c_no: u32,
    #[prost(uint32, tag = "11")]
    pub pr_stdev: u32,
    #[prost(uint32, tag = "12")]
    pub cp_stdev: u32,
    #[prost(uint32, tag = "13")]
    pub do_stdev: u32,
    #[prost(message, optional, tag = "14")]
    pub trk_stat: ::core::option::Option<TrkStat>,
}
impl ::prost::Name for RawxData {
    const NAME: &'static str = "RawxData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.RawxData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.RawxData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbasService {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub ranging: bool,
    #[prost(bool, tag = "3")]
    pub corrections: bool,
    #[prost(bool, tag = "4")]
    pub integrity: bool,
    #[prost(bool, tag = "5")]
    pub test_mode: bool,
    #[prost(bool, tag = "6")]
    pub bad: bool,
}
impl ::prost::Name for SbasService {
    const NAME: &'static str = "SBASService";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASService".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASService".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbasStatusFlags {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub integrity_used: u32,
}
impl ::prost::Name for SbasStatusFlags {
    const NAME: &'static str = "SBASStatusFlags";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASStatusFlags".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASStatusFlags".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbasSvData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub svid: u32,
    #[prost(uint32, tag = "3")]
    pub reserved_1: u32,
    #[prost(uint32, tag = "4")]
    pub udre: u32,
    #[prost(uint32, tag = "5")]
    pub sv_sys: u32,
    #[prost(uint32, tag = "6")]
    pub sv_service: u32,
    #[prost(uint32, tag = "7")]
    pub reserved_2: u32,
    #[prost(int32, tag = "8")]
    pub prc: i32,
    #[prost(uint32, repeated, tag = "9")]
    pub reserved_3: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "10")]
    pub ic: i32,
}
impl ::prost::Name for SbasSvData {
    const NAME: &'static str = "SBASSvData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASSvData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SBASSvData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavSbas {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub geo: u32,
    #[prost(uint32, tag = "5")]
    pub mode: u32,
    #[prost(int32, tag = "6")]
    pub sys: i32,
    #[prost(message, optional, tag = "7")]
    pub service: ::core::option::Option<SbasService>,
    #[prost(uint32, tag = "8")]
    pub cnt: u32,
    #[prost(message, optional, tag = "9")]
    pub status_flags: ::core::option::Option<SbasStatusFlags>,
    #[prost(uint32, repeated, tag = "10")]
    pub reserved_0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "11")]
    pub sv_data: ::prost::alloc::vec::Vec<SbasSvData>,
}
impl ::prost::Name for UbxNavSbas {
    const NAME: &'static str = "UBXNavSBAS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSBAS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSBAS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CarrSoln {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub status: u32,
}
impl ::prost::Name for CarrSoln {
    const NAME: &'static str = "CarrSoln";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.CarrSoln".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.CarrSoln".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GpsFix {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub fix_type: u32,
}
impl ::prost::Name for GpsFix {
    const NAME: &'static str = "GpsFix";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.GpsFix".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.GpsFix".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MapMatching {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub status: u32,
}
impl ::prost::Name for MapMatching {
    const NAME: &'static str = "MapMatching";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.MapMatching".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.MapMatching".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PsmStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
impl ::prost::Name for PsmStatus {
    const NAME: &'static str = "PSMStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.PSMStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.PSMStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpoofDet {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
impl ::prost::Name for SpoofDet {
    const NAME: &'static str = "SpoofDet";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SpoofDet".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SpoofDet".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(message, optional, tag = "4")]
    pub gps_fix: ::core::option::Option<GpsFix>,
    #[prost(bool, tag = "5")]
    pub gps_fix_ok: bool,
    #[prost(bool, tag = "6")]
    pub diff_soln: bool,
    #[prost(bool, tag = "7")]
    pub wkn_set: bool,
    #[prost(bool, tag = "8")]
    pub tow_set: bool,
    #[prost(bool, tag = "9")]
    pub diff_corr: bool,
    #[prost(bool, tag = "10")]
    pub carr_soln_valid: bool,
    #[prost(message, optional, tag = "11")]
    pub map_matching: ::core::option::Option<MapMatching>,
    #[prost(message, optional, tag = "12")]
    pub psm: ::core::option::Option<PsmStatus>,
    #[prost(message, optional, tag = "13")]
    pub spoof_det: ::core::option::Option<SpoofDet>,
    #[prost(message, optional, tag = "14")]
    pub carr_soln: ::core::option::Option<CarrSoln>,
    #[prost(uint32, tag = "15")]
    pub ttff: u32,
    #[prost(uint32, tag = "16")]
    pub msss: u32,
}
impl ::prost::Name for UbxNavStatus {
    const NAME: &'static str = "UBXNavStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavVelNed {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(int32, tag = "4")]
    pub vel_n: i32,
    #[prost(int32, tag = "5")]
    pub vel_e: i32,
    #[prost(int32, tag = "6")]
    pub vel_d: i32,
    #[prost(uint32, tag = "7")]
    pub speed: u32,
    #[prost(uint32, tag = "8")]
    pub g_speed: u32,
    #[prost(int32, tag = "9")]
    pub heading: i32,
    #[prost(uint32, tag = "10")]
    pub s_acc: u32,
    #[prost(uint32, tag = "11")]
    pub c_acc: u32,
}
impl ::prost::Name for UbxNavVelNed {
    const NAME: &'static str = "UBXNavVelNED";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavVelNED".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavVelNED".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SpartnKeyInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub reserved1: u32,
    #[prost(uint32, tag = "3")]
    pub key_length_bytes: u32,
    #[prost(uint32, tag = "4")]
    pub valid_from_wno: u32,
    #[prost(uint32, tag = "5")]
    pub valid_from_tow: u32,
}
impl ::prost::Name for SpartnKeyInfo {
    const NAME: &'static str = "SpartnKeyInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SpartnKeyInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SpartnKeyInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JamStateCentFreq {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub cent_freq: u32,
    #[prost(bool, tag = "3")]
    pub jammed: bool,
}
impl ::prost::Name for JamStateCentFreq {
    const NAME: &'static str = "JamStateCentFreq";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.JamStateCentFreq".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.JamStateCentFreq".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxSecSig {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub jam_det_enabled: u32,
    #[prost(uint32, tag = "5")]
    pub jamming_state: u32,
    #[prost(uint32, tag = "6")]
    pub spf_det_enabled: u32,
    #[prost(uint32, tag = "7")]
    pub spoofing_state: u32,
    #[prost(uint32, tag = "8")]
    pub jam_num_cent_freqs: u32,
    #[prost(message, repeated, tag = "9")]
    pub jam_state_cent_freqs: ::prost::alloc::vec::Vec<JamStateCentFreq>,
}
impl ::prost::Name for UbxSecSig {
    const NAME: &'static str = "UBXSecSig";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecSig".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecSig".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfMeasDataItem {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub data_field: u32,
    #[prost(uint32, tag = "3")]
    pub data_type: u32,
}
impl ::prost::Name for EsfMeasDataItem {
    const NAME: &'static str = "ESFMeasDataItem";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.ESFMeasDataItem".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.ESFMeasDataItem".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxEsfMeas {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_tag: u32,
    #[prost(uint32, tag = "4")]
    pub time_mark_sent: u32,
    #[prost(bool, tag = "5")]
    pub time_mark_edge: bool,
    #[prost(bool, tag = "6")]
    pub calib_ttag_valid: bool,
    #[prost(uint32, tag = "7")]
    pub num_meas: u32,
    #[prost(uint32, tag = "8")]
    pub id: u32,
    #[prost(message, repeated, tag = "9")]
    pub data: ::prost::alloc::vec::Vec<EsfMeasDataItem>,
    #[prost(uint32, tag = "10")]
    pub calib_ttag: u32,
}
impl ::prost::Name for UbxEsfMeas {
    const NAME: &'static str = "UBXEsfMeas";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXEsfMeas".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXEsfMeas".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SatInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub gnss_id: u32,
    #[prost(uint32, tag = "3")]
    pub sv_id: u32,
    #[prost(uint32, tag = "4")]
    pub cno: u32,
    #[prost(int32, tag = "5")]
    pub elev: i32,
    #[prost(int32, tag = "6")]
    pub azim: i32,
    #[prost(int32, tag = "7")]
    pub pr_res: i32,
    #[prost(message, optional, tag = "8")]
    pub flags: ::core::option::Option<SatFlags>,
}
impl ::prost::Name for SatInfo {
    const NAME: &'static str = "SatInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SatInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SatInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MeasxData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub gnss_id: u32,
    #[prost(uint32, tag = "3")]
    pub sv_id: u32,
    #[prost(uint32, tag = "4")]
    pub c_no: u32,
    #[prost(uint32, tag = "5")]
    pub mpath_indic: u32,
    #[prost(int32, tag = "6")]
    pub doppler_ms: i32,
    #[prost(int32, tag = "7")]
    pub doppler_hz: i32,
    #[prost(uint32, tag = "8")]
    pub whole_chips: u32,
    #[prost(uint32, tag = "9")]
    pub frac_chips: u32,
    #[prost(uint32, tag = "10")]
    pub code_phase: u32,
    #[prost(uint32, tag = "11")]
    pub int_code_phase: u32,
    #[prost(uint32, tag = "12")]
    pub pseu_range_rms_err: u32,
}
impl ::prost::Name for MeasxData {
    const NAME: &'static str = "MeasxData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.MeasxData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.MeasxData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmMeasx {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub gps_tow: u32,
    #[prost(uint32, tag = "5")]
    pub glo_tow: u32,
    #[prost(uint32, tag = "6")]
    pub bds_tow: u32,
    #[prost(uint32, tag = "7")]
    pub qzss_tow: u32,
    #[prost(uint32, tag = "8")]
    pub gps_tow_acc: u32,
    #[prost(uint32, tag = "9")]
    pub glo_tow_acc: u32,
    #[prost(uint32, tag = "10")]
    pub bds_tow_acc: u32,
    #[prost(uint32, tag = "11")]
    pub qzss_tow_acc: u32,
    #[prost(uint32, tag = "12")]
    pub num_sv: u32,
    #[prost(uint32, tag = "13")]
    pub flags: u32,
    #[prost(message, repeated, tag = "14")]
    pub sv_data: ::prost::alloc::vec::Vec<MeasxData>,
}
impl ::prost::Name for UbxRxmMeasx {
    const NAME: &'static str = "UBXRxmMeasx";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmMeasx".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmMeasx".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrbAlmInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub alm_usability: u32,
    #[prost(uint32, tag = "3")]
    pub alm_source: u32,
}
impl ::prost::Name for OrbAlmInfo {
    const NAME: &'static str = "OrbAlmInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbAlmInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbAlmInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrbEphInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub eph_usability: u32,
    #[prost(uint32, tag = "3")]
    pub eph_source: u32,
}
impl ::prost::Name for OrbEphInfo {
    const NAME: &'static str = "OrbEphInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbEphInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbEphInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrbSvFlag {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub health: u32,
    #[prost(uint32, tag = "3")]
    pub visibility: u32,
}
impl ::prost::Name for OrbSvFlag {
    const NAME: &'static str = "OrbSVFlag";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbSVFlag".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbSVFlag".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OtherOrbInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub ano_aop_usability: u32,
    #[prost(uint32, tag = "3")]
    pub orb_type: u32,
}
impl ::prost::Name for OtherOrbInfo {
    const NAME: &'static str = "OtherOrbInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.OtherOrbInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.OtherOrbInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OrbSvInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub gnss_id: u32,
    #[prost(uint32, tag = "3")]
    pub sv_id: u32,
    #[prost(message, optional, tag = "4")]
    pub sv_flag: ::core::option::Option<OrbSvFlag>,
    #[prost(message, optional, tag = "5")]
    pub eph: ::core::option::Option<OrbEphInfo>,
    #[prost(message, optional, tag = "6")]
    pub alm: ::core::option::Option<OrbAlmInfo>,
    #[prost(message, optional, tag = "7")]
    pub other_orb: ::core::option::Option<OtherOrbInfo>,
}
impl ::prost::Name for OrbSvInfo {
    const NAME: &'static str = "OrbSVInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbSVInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.OrbSVInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavOrb {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(uint32, tag = "5")]
    pub num_sv: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub reserved_0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "7")]
    pub sv_info: ::prost::alloc::vec::Vec<OrbSvInfo>,
}
impl ::prost::Name for UbxNavOrb {
    const NAME: &'static str = "UBXNavOrb";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavOrb".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavOrb".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UtcStd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub id: u32,
}
impl ::prost::Name for UtcStd {
    const NAME: &'static str = "UtcStd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UtcStd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UtcStd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavTimeUtc {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub t_acc: u32,
    #[prost(int32, tag = "5")]
    pub nano: i32,
    #[prost(int32, tag = "6")]
    pub year: i32,
    #[prost(int32, tag = "7")]
    pub month: i32,
    #[prost(int32, tag = "8")]
    pub day: i32,
    #[prost(int32, tag = "9")]
    pub hour: i32,
    #[prost(int32, tag = "10")]
    pub min: i32,
    #[prost(int32, tag = "11")]
    pub sec: i32,
    #[prost(bool, tag = "12")]
    pub valid_tow: bool,
    #[prost(bool, tag = "13")]
    pub valid_wkn: bool,
    #[prost(bool, tag = "14")]
    pub valid_utc: bool,
    #[prost(message, optional, tag = "15")]
    pub utc_std: ::core::option::Option<UtcStd>,
}
impl ::prost::Name for UbxNavTimeUtc {
    const NAME: &'static str = "UBXNavTimeUTC";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavTimeUTC".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavTimeUTC".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SigLogEvent {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub time_elapsed: u32,
    #[prost(uint32, tag = "3")]
    pub detection_type: u32,
    #[prost(uint32, tag = "4")]
    pub event_type: u32,
}
impl ::prost::Name for SigLogEvent {
    const NAME: &'static str = "SigLogEvent";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigLogEvent".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigLogEvent".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavEoe {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
}
impl ::prost::Name for UbxNavEoe {
    const NAME: &'static str = "UBXNavEOE";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavEOE".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavEOE".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfSensorStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub sensor_data_type: u32,
    #[prost(bool, tag = "3")]
    pub used: bool,
    #[prost(bool, tag = "4")]
    pub ready: bool,
    #[prost(uint32, tag = "5")]
    pub calib_status: u32,
    #[prost(uint32, tag = "6")]
    pub time_status: u32,
    #[prost(uint32, tag = "7")]
    pub freq: u32,
    #[prost(bool, tag = "8")]
    pub fault_bad_meas: bool,
    #[prost(bool, tag = "9")]
    pub fault_bad_ttag: bool,
    #[prost(bool, tag = "10")]
    pub fault_missing_meas: bool,
    #[prost(bool, tag = "11")]
    pub fault_noisy_meas: bool,
}
impl ::prost::Name for EsfSensorStatus {
    const NAME: &'static str = "ESFSensorStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.ESFSensorStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.ESFSensorStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxEsfStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(uint32, tag = "5")]
    pub wt_init_status: u32,
    #[prost(uint32, tag = "6")]
    pub mnt_alg_status: u32,
    #[prost(uint32, tag = "7")]
    pub ins_init_status: u32,
    #[prost(uint32, tag = "8")]
    pub imu_init_status: u32,
    #[prost(uint32, tag = "9")]
    pub fusion_mode: u32,
    #[prost(uint32, tag = "10")]
    pub num_sens: u32,
    #[prost(message, repeated, tag = "11")]
    pub sensor_statuses: ::prost::alloc::vec::Vec<EsfSensorStatus>,
}
impl ::prost::Name for UbxEsfStatus {
    const NAME: &'static str = "UBXEsfStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXEsfStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXEsfStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavPosEcef {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(int32, tag = "4")]
    pub ecef_x: i32,
    #[prost(int32, tag = "5")]
    pub ecef_y: i32,
    #[prost(int32, tag = "6")]
    pub ecef_z: i32,
    #[prost(uint32, tag = "7")]
    pub p_acc: u32,
}
impl ::prost::Name for UbxNavPosEcef {
    const NAME: &'static str = "UBXNavPosECEF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPosECEF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPosECEF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CorStatusInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub protocol: u32,
    #[prost(uint32, tag = "3")]
    pub err_status: u32,
    #[prost(uint32, tag = "4")]
    pub msg_used: u32,
    #[prost(uint32, tag = "5")]
    pub correction_id: u32,
    #[prost(bool, tag = "6")]
    pub msg_type_valid: bool,
    #[prost(bool, tag = "7")]
    pub msg_sub_type_valid: bool,
    #[prost(bool, tag = "8")]
    pub msg_input_handle: bool,
    #[prost(uint32, tag = "9")]
    pub msg_encrypted: u32,
    #[prost(uint32, tag = "10")]
    pub msg_decrypted: u32,
}
impl ::prost::Name for CorStatusInfo {
    const NAME: &'static str = "CorStatusInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.CorStatusInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.CorStatusInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RecStat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub leap_sec: bool,
    #[prost(bool, tag = "3")]
    pub clk_reset: bool,
}
impl ::prost::Name for RecStat {
    const NAME: &'static str = "RecStat";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.RecStat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.RecStat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommsPortInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub port_id: u32,
    #[prost(uint32, tag = "3")]
    pub tx_pending: u32,
    #[prost(uint32, tag = "4")]
    pub tx_bytes: u32,
    #[prost(uint32, tag = "5")]
    pub tx_usage: u32,
    #[prost(uint32, tag = "6")]
    pub tx_peak_usage: u32,
    #[prost(uint32, tag = "7")]
    pub rx_pending: u32,
    #[prost(uint32, tag = "8")]
    pub rx_bytes: u32,
    #[prost(uint32, tag = "9")]
    pub rx_usage: u32,
    #[prost(uint32, tag = "10")]
    pub rx_peak_usage: u32,
    #[prost(uint32, tag = "11")]
    pub overrun_errs: u32,
    #[prost(uint32, repeated, tag = "12")]
    pub msgs: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "13")]
    pub skipped: u32,
}
impl ::prost::Name for CommsPortInfo {
    const NAME: &'static str = "CommsPortInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.CommsPortInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.CommsPortInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxMonComms {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub n_ports: u32,
    #[prost(uint32, tag = "5")]
    pub tx_errors: u32,
    #[prost(uint32, tag = "6")]
    pub reserved0: u32,
    #[prost(uint32, repeated, tag = "7")]
    pub prot_ids: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "8")]
    pub ports: ::prost::alloc::vec::Vec<CommsPortInfo>,
}
impl ::prost::Name for UbxMonComms {
    const NAME: &'static str = "UBXMonComms";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXMonComms".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXMonComms".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmSpartnKey {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub num_keys: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "6")]
    pub key_info: ::prost::alloc::vec::Vec<SpartnKeyInfo>,
    #[prost(uint32, repeated, tag = "7")]
    pub key_payload: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for UbxRxmSpartnKey {
    const NAME: &'static str = "UBXRxmSpartnKey";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmSpartnKey".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmSpartnKey".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmRtcm {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(bool, tag = "4")]
    pub crc_failed: bool,
    #[prost(uint32, tag = "5")]
    pub msg_used: u32,
    #[prost(uint32, tag = "6")]
    pub sub_type: u32,
    #[prost(uint32, tag = "7")]
    pub ref_station: u32,
    #[prost(uint32, tag = "8")]
    pub msg_type: u32,
}
impl ::prost::Name for UbxRxmRtcm {
    const NAME: &'static str = "UBXRxmRTCM";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmRTCM".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmRTCM".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxSecSigLog {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub num_events: u32,
    #[prost(message, repeated, tag = "5")]
    pub events: ::prost::alloc::vec::Vec<SigLogEvent>,
}
impl ::prost::Name for UbxSecSigLog {
    const NAME: &'static str = "UBXSecSigLog";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecSigLog".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecSigLog".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavCov {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(bool, tag = "5")]
    pub pos_cor_valid: bool,
    #[prost(bool, tag = "6")]
    pub vel_cor_valid: bool,
    #[prost(float, tag = "7")]
    pub pos_cov_nn: f32,
    #[prost(float, tag = "8")]
    pub pos_cov_ne: f32,
    #[prost(float, tag = "9")]
    pub pos_cov_nd: f32,
    #[prost(float, tag = "10")]
    pub pos_cov_ee: f32,
    #[prost(float, tag = "11")]
    pub pos_cov_ed: f32,
    #[prost(float, tag = "12")]
    pub pos_cov_dd: f32,
    #[prost(float, tag = "13")]
    pub vel_cov_nn: f32,
    #[prost(float, tag = "14")]
    pub vel_cov_ne: f32,
    #[prost(float, tag = "15")]
    pub vel_cov_nd: f32,
    #[prost(float, tag = "16")]
    pub vel_cov_ee: f32,
    #[prost(float, tag = "17")]
    pub vel_cov_ed: f32,
    #[prost(float, tag = "18")]
    pub vel_cov_dd: f32,
}
impl ::prost::Name for UbxNavCov {
    const NAME: &'static str = "UBXNavCov";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavCov".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavCov".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SigFlags {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub health: u32,
    #[prost(bool, tag = "3")]
    pub pr_smoothed: bool,
    #[prost(bool, tag = "4")]
    pub pr_used: bool,
    #[prost(bool, tag = "5")]
    pub cr_used: bool,
    #[prost(bool, tag = "6")]
    pub do_used: bool,
    #[prost(bool, tag = "7")]
    pub pr_corr_used: bool,
    #[prost(bool, tag = "8")]
    pub cr_corr_used: bool,
    #[prost(bool, tag = "9")]
    pub do_corr_used: bool,
}
impl ::prost::Name for SigFlags {
    const NAME: &'static str = "SigFlags";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigFlags".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigFlags".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SigData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub gnss_id: u32,
    #[prost(uint32, tag = "3")]
    pub sv_id: u32,
    #[prost(uint32, tag = "4")]
    pub sig_id: u32,
    #[prost(uint32, tag = "5")]
    pub freq_id: u32,
    #[prost(int32, tag = "6")]
    pub pr_res: i32,
    #[prost(uint32, tag = "7")]
    pub cno: u32,
    #[prost(uint32, tag = "8")]
    pub quality_ind: u32,
    #[prost(uint32, tag = "9")]
    pub corr_source: u32,
    #[prost(uint32, tag = "10")]
    pub iono_model: u32,
    #[prost(message, optional, tag = "11")]
    pub sig_flags: ::core::option::Option<SigFlags>,
}
impl ::prost::Name for SigData {
    const NAME: &'static str = "SigData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.SigData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavHpPosLlh {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(bool, tag = "4")]
    pub invalid_lon: bool,
    #[prost(bool, tag = "5")]
    pub invalid_lat: bool,
    #[prost(bool, tag = "6")]
    pub invalid_height: bool,
    #[prost(bool, tag = "7")]
    pub invalid_hmsl: bool,
    #[prost(bool, tag = "8")]
    pub invalid_lon_hp: bool,
    #[prost(bool, tag = "9")]
    pub invalid_lat_hp: bool,
    #[prost(bool, tag = "10")]
    pub invalid_height_hp: bool,
    #[prost(bool, tag = "11")]
    pub invalid_hmsl_hp: bool,
    #[prost(uint32, tag = "12")]
    pub itow: u32,
    #[prost(int32, tag = "13")]
    pub lon: i32,
    #[prost(int32, tag = "14")]
    pub lat: i32,
    #[prost(int32, tag = "15")]
    pub height: i32,
    #[prost(int32, tag = "16")]
    pub hmsl: i32,
    #[prost(int32, tag = "17")]
    pub lon_hp: i32,
    #[prost(int32, tag = "18")]
    pub lat_hp: i32,
    #[prost(int32, tag = "19")]
    pub height_hp: i32,
    #[prost(int32, tag = "20")]
    pub hmsl_hp: i32,
    #[prost(uint32, tag = "21")]
    pub h_acc: u32,
    #[prost(uint32, tag = "22")]
    pub v_acc: u32,
}
impl ::prost::Name for UbxNavHpPosLlh {
    const NAME: &'static str = "UBXNavHPPosLLH";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavHPPosLLH".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavHPPosLLH".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavVelEcef {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(int32, tag = "4")]
    pub ecef_vx: i32,
    #[prost(int32, tag = "5")]
    pub ecef_vy: i32,
    #[prost(int32, tag = "6")]
    pub ecef_vz: i32,
    #[prost(uint32, tag = "7")]
    pub s_acc: u32,
}
impl ::prost::Name for UbxNavVelEcef {
    const NAME: &'static str = "UBXNavVelECEF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavVelECEF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavVelECEF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavRelPosNed {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub ref_station_id: u32,
    #[prost(uint32, tag = "5")]
    pub itow: u32,
    #[prost(int32, tag = "6")]
    pub rel_pos_n: i32,
    #[prost(int32, tag = "7")]
    pub rel_pos_e: i32,
    #[prost(int32, tag = "8")]
    pub rel_pos_d: i32,
    #[prost(int32, tag = "9")]
    pub rel_pos_length: i32,
    #[prost(int32, tag = "10")]
    pub rel_pos_heading: i32,
    #[prost(int32, tag = "11")]
    pub rel_pos_hp_n: i32,
    #[prost(int32, tag = "12")]
    pub rel_pos_hp_e: i32,
    #[prost(int32, tag = "13")]
    pub rel_pos_hp_d: i32,
    #[prost(int32, tag = "14")]
    pub rel_pos_hp_length: i32,
    #[prost(uint32, tag = "15")]
    pub acc_n: u32,
    #[prost(uint32, tag = "16")]
    pub acc_e: u32,
    #[prost(uint32, tag = "17")]
    pub acc_d: u32,
    #[prost(uint32, tag = "18")]
    pub acc_length: u32,
    #[prost(uint32, tag = "19")]
    pub acc_heading: u32,
    #[prost(bool, tag = "20")]
    pub gnss_fix_ok: bool,
    #[prost(bool, tag = "21")]
    pub diff_soln: bool,
    #[prost(bool, tag = "22")]
    pub rel_pos_valid: bool,
    #[prost(message, optional, tag = "23")]
    pub carr_soln: ::core::option::Option<CarrSoln>,
    #[prost(bool, tag = "24")]
    pub is_moving: bool,
    #[prost(bool, tag = "25")]
    pub ref_pos_miss: bool,
    #[prost(bool, tag = "26")]
    pub ref_obs_miss: bool,
    #[prost(bool, tag = "27")]
    pub rel_pos_heading_valid: bool,
    #[prost(bool, tag = "28")]
    pub rel_pos_normalized: bool,
}
impl ::prost::Name for UbxNavRelPosNed {
    const NAME: &'static str = "UBXNavRelPosNED";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavRelPosNED".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavRelPosNED".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavPosLlh {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(int32, tag = "4")]
    pub lon: i32,
    #[prost(int32, tag = "5")]
    pub lat: i32,
    #[prost(int32, tag = "6")]
    pub height: i32,
    #[prost(int32, tag = "7")]
    pub hmsl: i32,
    #[prost(uint32, tag = "8")]
    pub h_acc: u32,
    #[prost(uint32, tag = "9")]
    pub v_acc: u32,
}
impl ::prost::Name for UbxNavPosLlh {
    const NAME: &'static str = "UBXNavPosLLH";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPosLLH".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPosLLH".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmRawx {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "3")]
    pub rcv_tow: f64,
    #[prost(uint32, tag = "4")]
    pub week: u32,
    #[prost(int32, tag = "5")]
    pub leap_s: i32,
    #[prost(uint32, tag = "6")]
    pub num_meas: u32,
    #[prost(message, optional, tag = "7")]
    pub rec_stat: ::core::option::Option<RecStat>,
    #[prost(uint32, tag = "8")]
    pub version: u32,
    #[prost(message, repeated, tag = "9")]
    pub rawx_data: ::prost::alloc::vec::Vec<RawxData>,
}
impl ::prost::Name for UbxRxmRawx {
    const NAME: &'static str = "UBXRxmRawx";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmRawx".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmRawx".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavHpPosEcef {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub itow: u32,
    #[prost(int32, tag = "5")]
    pub ecef_x: i32,
    #[prost(int32, tag = "6")]
    pub ecef_y: i32,
    #[prost(int32, tag = "7")]
    pub ecef_z: i32,
    #[prost(int32, tag = "8")]
    pub ecef_x_hp: i32,
    #[prost(int32, tag = "9")]
    pub ecef_y_hp: i32,
    #[prost(int32, tag = "10")]
    pub ecef_z_hp: i32,
    #[prost(bool, tag = "11")]
    pub invalid_ecef_x: bool,
    #[prost(bool, tag = "12")]
    pub invalid_ecef_y: bool,
    #[prost(bool, tag = "13")]
    pub invalid_ecef_z: bool,
    #[prost(bool, tag = "14")]
    pub invalid_ecef_x_hp: bool,
    #[prost(bool, tag = "15")]
    pub invalid_ecef_y_hp: bool,
    #[prost(bool, tag = "16")]
    pub invalid_ecef_z_hp: bool,
    #[prost(uint32, tag = "17")]
    pub p_acc: u32,
}
impl ::prost::Name for UbxNavHpPosEcef {
    const NAME: &'static str = "UBXNavHPPosECEF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavHPPosECEF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavHPPosECEF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Psmpvt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub state: u32,
}
impl ::prost::Name for Psmpvt {
    const NAME: &'static str = "PSMPVT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.PSMPVT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.PSMPVT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavPvt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub year: u32,
    #[prost(uint32, tag = "5")]
    pub month: u32,
    #[prost(uint32, tag = "6")]
    pub day: u32,
    #[prost(uint32, tag = "7")]
    pub hour: u32,
    #[prost(uint32, tag = "8")]
    pub min: u32,
    #[prost(uint32, tag = "9")]
    pub sec: u32,
    #[prost(bool, tag = "10")]
    pub valid_date: bool,
    #[prost(bool, tag = "11")]
    pub valid_time: bool,
    #[prost(bool, tag = "12")]
    pub fully_resolved: bool,
    #[prost(bool, tag = "13")]
    pub valid_mag: bool,
    #[prost(uint32, tag = "14")]
    pub t_acc: u32,
    #[prost(int32, tag = "15")]
    pub nano: i32,
    #[prost(message, optional, tag = "16")]
    pub gps_fix: ::core::option::Option<GpsFix>,
    #[prost(bool, tag = "17")]
    pub gnss_fix_ok: bool,
    #[prost(bool, tag = "18")]
    pub diff_soln: bool,
    #[prost(message, optional, tag = "19")]
    pub psm: ::core::option::Option<Psmpvt>,
    #[prost(bool, tag = "20")]
    pub head_veh_valid: bool,
    #[prost(message, optional, tag = "21")]
    pub carr_soln: ::core::option::Option<CarrSoln>,
    #[prost(bool, tag = "22")]
    pub confirmed_avail: bool,
    #[prost(bool, tag = "23")]
    pub confirmed_date: bool,
    #[prost(bool, tag = "24")]
    pub confirmed_time: bool,
    #[prost(uint32, tag = "25")]
    pub num_sv: u32,
    #[prost(int32, tag = "26")]
    pub lon: i32,
    #[prost(int32, tag = "27")]
    pub lat: i32,
    #[prost(int32, tag = "28")]
    pub height: i32,
    #[prost(int32, tag = "29")]
    pub hmsl: i32,
    #[prost(uint32, tag = "30")]
    pub h_acc: u32,
    #[prost(uint32, tag = "31")]
    pub v_acc: u32,
    #[prost(int32, tag = "32")]
    pub vel_n: i32,
    #[prost(int32, tag = "33")]
    pub vel_e: i32,
    #[prost(int32, tag = "34")]
    pub vel_d: i32,
    #[prost(int32, tag = "35")]
    pub g_speed: i32,
    #[prost(int32, tag = "36")]
    pub head_mot: i32,
    #[prost(uint32, tag = "37")]
    pub s_acc: u32,
    #[prost(uint32, tag = "38")]
    pub head_acc: u32,
    #[prost(uint32, tag = "39")]
    pub p_dop: u32,
    #[prost(bool, tag = "40")]
    pub invalid_llh: bool,
    #[prost(int32, tag = "41")]
    pub head_veh: i32,
    #[prost(int32, tag = "42")]
    pub mag_dec: i32,
    #[prost(uint32, tag = "43")]
    pub mag_acc: u32,
}
impl ::prost::Name for UbxNavPvt {
    const NAME: &'static str = "UBXNavPVT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPVT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavPVT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxSecUniqid {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub unique_id: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for UbxSecUniqid {
    const NAME: &'static str = "UBXSecUniqid";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecUniqid".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXSecUniqid".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmSpartn {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub msg_used: u32,
    #[prost(uint32, tag = "5")]
    pub sub_type: u32,
    #[prost(uint32, tag = "6")]
    pub msg_type: u32,
}
impl ::prost::Name for UbxRxmSpartn {
    const NAME: &'static str = "UBXRxmSpartn";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmSpartn".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmSpartn".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavOdo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub itow: u32,
    #[prost(uint32, tag = "5")]
    pub distance: u32,
    #[prost(uint32, tag = "6")]
    pub total_distance: u32,
    #[prost(uint32, tag = "7")]
    pub distance_std: u32,
}
impl ::prost::Name for UbxNavOdo {
    const NAME: &'static str = "UBXNavOdo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavOdo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavOdo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavSat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(uint32, tag = "5")]
    pub num_svs: u32,
    #[prost(message, repeated, tag = "6")]
    pub sv_info: ::prost::alloc::vec::Vec<SatInfo>,
}
impl ::prost::Name for UbxNavSat {
    const NAME: &'static str = "UBXNavSat";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavClock {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(int32, tag = "4")]
    pub clk_b: i32,
    #[prost(int32, tag = "5")]
    pub clk_d: i32,
    #[prost(uint32, tag = "6")]
    pub t_acc: u32,
    #[prost(uint32, tag = "7")]
    pub f_acc: u32,
}
impl ::prost::Name for UbxNavClock {
    const NAME: &'static str = "UBXNavClock";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavClock".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavClock".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxRxmCor {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub ebno: u32,
    #[prost(message, optional, tag = "5")]
    pub status_info: ::core::option::Option<CorStatusInfo>,
    #[prost(uint32, tag = "6")]
    pub msg_type: u32,
    #[prost(uint32, tag = "7")]
    pub msg_sub_type: u32,
}
impl ::prost::Name for UbxRxmCor {
    const NAME: &'static str = "UBXRxmCor";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmCor".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXRxmCor".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavDop {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub g_dop: u32,
    #[prost(uint32, tag = "5")]
    pub p_dop: u32,
    #[prost(uint32, tag = "6")]
    pub t_dop: u32,
    #[prost(uint32, tag = "7")]
    pub v_dop: u32,
    #[prost(uint32, tag = "8")]
    pub h_dop: u32,
    #[prost(uint32, tag = "9")]
    pub n_dop: u32,
    #[prost(uint32, tag = "10")]
    pub e_dop: u32,
}
impl ::prost::Name for UbxNavDop {
    const NAME: &'static str = "UBXNavDOP";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavDOP".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavDOP".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UbxNavSig {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub itow: u32,
    #[prost(uint32, tag = "4")]
    pub version: u32,
    #[prost(uint32, tag = "5")]
    pub num_sigs: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub reserved_0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "7")]
    pub sig_data: ::prost::alloc::vec::Vec<SigData>,
}
impl ::prost::Name for UbxNavSig {
    const NAME: &'static str = "UBXNavSig";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_ubx_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSig".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_ubx_msgs.msg.UBXNavSig".into()
    }
}
