// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfRawBlock {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub data: u32,
    #[prost(uint32, tag = "3")]
    pub s_t_tag: u32,
}
impl ::prost::Name for EsfRawBlock {
    const NAME: &'static str = "EsfRAWBlock";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfRAWBlock".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfRAWBlock".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfRaw {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, repeated, tag = "2")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "3")]
    pub blocks: ::prost::alloc::vec::Vec<EsfRawBlock>,
}
impl ::prost::Name for EsfRaw {
    const NAME: &'static str = "EsfRAW";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfRAW".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfRAW".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavPosecef {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub ecef_x: i32,
    #[prost(int32, tag = "4")]
    pub ecef_y: i32,
    #[prost(int32, tag = "5")]
    pub ecef_z: i32,
    #[prost(uint32, tag = "6")]
    pub p_acc: u32,
}
impl ::prost::Name for NavPosecef {
    const NAME: &'static str = "NavPOSECEF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavPOSECEF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavPOSECEF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgGnssBlock {
    #[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 res_trk_ch: u32,
    #[prost(uint32, tag = "4")]
    pub max_trk_ch: u32,
    #[prost(uint32, tag = "5")]
    pub reserved1: u32,
    #[prost(uint32, tag = "6")]
    pub flags: u32,
}
impl ::prost::Name for CfgGnssBlock {
    const NAME: &'static str = "CfgGNSSBlock";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgGNSSBlock".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgGNSSBlock".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgGnss {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub msg_ver: u32,
    #[prost(uint32, tag = "3")]
    pub num_trk_ch_hw: u32,
    #[prost(uint32, tag = "4")]
    pub num_trk_ch_use: u32,
    #[prost(uint32, tag = "5")]
    pub num_config_blocks: u32,
    #[prost(message, repeated, tag = "6")]
    pub blocks: ::prost::alloc::vec::Vec<CfgGnssBlock>,
}
impl ::prost::Name for CfgGnss {
    const NAME: &'static str = "CfgGNSS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgGNSS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgGNSS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavDgpssv {
    #[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 flags: u32,
    #[prost(uint32, tag = "4")]
    pub age_c: u32,
    #[prost(float, tag = "5")]
    pub prc: f32,
    #[prost(float, tag = "6")]
    pub prrc: f32,
}
impl ::prost::Name for NavDgpssv {
    const NAME: &'static str = "NavDGPSSV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavDGPSSV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavDGPSSV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSbassv {
    #[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 flags: 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 reserved1: u32,
    #[prost(int32, tag = "8")]
    pub prc: i32,
    #[prost(uint32, tag = "9")]
    pub reserved2: u32,
    #[prost(int32, tag = "10")]
    pub ic: i32,
}
impl ::prost::Name for NavSbassv {
    const NAME: &'static str = "NavSBASSV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSBASSV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSBASSV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavTimeutc {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub t_acc: u32,
    #[prost(int32, tag = "4")]
    pub nano: i32,
    #[prost(uint32, tag = "5")]
    pub year: u32,
    #[prost(uint32, tag = "6")]
    pub month: u32,
    #[prost(uint32, tag = "7")]
    pub day: u32,
    #[prost(uint32, tag = "8")]
    pub hour: u32,
    #[prost(uint32, tag = "9")]
    pub min: u32,
    #[prost(uint32, tag = "10")]
    pub sec: u32,
    #[prost(uint32, tag = "11")]
    pub valid: u32,
}
impl ::prost::Name for NavTimeutc {
    const NAME: &'static str = "NavTIMEUTC";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavTIMEUTC".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavTIMEUTC".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmRawxMeas {
    #[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 reserved0: u32,
    #[prost(uint32, tag = "8")]
    pub freq_id: u32,
    #[prost(uint32, tag = "9")]
    pub locktime: u32,
    #[prost(int32, tag = "10")]
    pub cno: i32,
    #[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(uint32, tag = "14")]
    pub trk_stat: u32,
    #[prost(uint32, tag = "15")]
    pub reserved1: u32,
}
impl ::prost::Name for RxmRawxMeas {
    const NAME: &'static str = "RxmRAWXMeas";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWXMeas".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWXMeas".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavRelposned9 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub reserved1: u32,
    #[prost(uint32, tag = "4")]
    pub ref_station_id: u32,
    #[prost(uint32, tag = "5")]
    pub i_tow: 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(uint32, repeated, tag = "11")]
    pub reserved2: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "12")]
    pub rel_pos_hpn: i32,
    #[prost(int32, tag = "13")]
    pub rel_pos_hpe: i32,
    #[prost(int32, tag = "14")]
    pub rel_pos_hpd: i32,
    #[prost(int32, tag = "15")]
    pub rel_pos_hp_length: i32,
    #[prost(uint32, tag = "16")]
    pub acc_n: u32,
    #[prost(uint32, tag = "17")]
    pub acc_e: u32,
    #[prost(uint32, tag = "18")]
    pub acc_d: u32,
    #[prost(uint32, tag = "19")]
    pub acc_length: u32,
    #[prost(uint32, tag = "20")]
    pub acc_heading: u32,
    #[prost(uint32, repeated, tag = "21")]
    pub reserved3: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "22")]
    pub flags: u32,
}
impl ::prost::Name for NavRelposned9 {
    const NAME: &'static str = "NavRELPOSNED9";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavRELPOSNED9".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavRELPOSNED9".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgTmode3 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub reserved1: u32,
    #[prost(uint32, tag = "4")]
    pub flags: u32,
    #[prost(int32, tag = "5")]
    pub ecef_x_or_lat: i32,
    #[prost(int32, tag = "6")]
    pub ecef_y_or_lon: i32,
    #[prost(int32, tag = "7")]
    pub ecef_z_or_alt: i32,
    #[prost(int32, tag = "8")]
    pub ecef_x_or_lat_hp: i32,
    #[prost(int32, tag = "9")]
    pub ecef_y_or_lon_hp: i32,
    #[prost(int32, tag = "10")]
    pub ecef_z_or_alt_hp: i32,
    #[prost(uint32, tag = "11")]
    pub reserved2: u32,
    #[prost(uint32, tag = "12")]
    pub fixed_pos_acc: u32,
    #[prost(uint32, tag = "13")]
    pub svin_min_dur: u32,
    #[prost(uint32, tag = "14")]
    pub svin_acc_limit: u32,
    #[prost(uint32, repeated, tag = "15")]
    pub reserved3: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgTmode3 {
    const NAME: &'static str = "CfgTMODE3";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgTMODE3".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgTMODE3".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgValsetCfgdata {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub key: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub data: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgValsetCfgdata {
    const NAME: &'static str = "CfgVALSETCfgdata";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgVALSETCfgdata".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgVALSETCfgdata".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgValset {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub layers: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "5")]
    pub cfgdata: ::prost::alloc::vec::Vec<CfgValsetCfgdata>,
}
impl ::prost::Name for CfgValset {
    const NAME: &'static str = "CfgVALSET";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgVALSET".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgVALSET".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSvinfosv {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub chn: u32,
    #[prost(uint32, tag = "3")]
    pub svid: u32,
    #[prost(uint32, tag = "4")]
    pub flags: u32,
    #[prost(uint32, tag = "5")]
    pub quality: u32,
    #[prost(uint32, tag = "6")]
    pub cno: u32,
    #[prost(int32, tag = "7")]
    pub elev: i32,
    #[prost(int32, tag = "8")]
    pub azim: i32,
    #[prost(int32, tag = "9")]
    pub pr_res: i32,
}
impl ::prost::Name for NavSvinfosv {
    const NAME: &'static str = "NavSVINFOSV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSVINFOSV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSVINFOSV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSvinfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub num_ch: u32,
    #[prost(uint32, tag = "4")]
    pub global_flags: u32,
    #[prost(uint32, tag = "5")]
    pub reserved2: u32,
    #[prost(message, repeated, tag = "6")]
    pub sv: ::prost::alloc::vec::Vec<NavSvinfosv>,
}
impl ::prost::Name for NavSvinfo {
    const NAME: &'static str = "NavSVINFO";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSVINFO".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSVINFO".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavClock {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub clk_b: i32,
    #[prost(int32, tag = "4")]
    pub clk_d: i32,
    #[prost(uint32, tag = "5")]
    pub t_acc: u32,
    #[prost(uint32, tag = "6")]
    pub f_acc: u32,
}
impl ::prost::Name for NavClock {
    const NAME: &'static str = "NavCLOCK";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavCLOCK".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavCLOCK".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgNmea {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub filter: u32,
    #[prost(uint32, tag = "3")]
    pub nmea_version: u32,
    #[prost(uint32, tag = "4")]
    pub num_sv: u32,
    #[prost(uint32, tag = "5")]
    pub flags: u32,
    #[prost(uint32, tag = "6")]
    pub gnss_to_filter: u32,
    #[prost(uint32, tag = "7")]
    pub sv_numbering: u32,
    #[prost(uint32, tag = "8")]
    pub main_talker_id: u32,
    #[prost(uint32, tag = "9")]
    pub gsv_talker_id: u32,
    #[prost(uint32, tag = "10")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "11")]
    pub bds_talker_id: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "12")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgNmea {
    const NAME: &'static str = "CfgNMEA";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSol {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub f_tow: i32,
    #[prost(int32, tag = "4")]
    pub week: i32,
    #[prost(uint32, tag = "5")]
    pub gps_fix: u32,
    #[prost(uint32, tag = "6")]
    pub flags: u32,
    #[prost(int32, tag = "7")]
    pub ecef_x: i32,
    #[prost(int32, tag = "8")]
    pub ecef_y: i32,
    #[prost(int32, tag = "9")]
    pub ecef_z: i32,
    #[prost(uint32, tag = "10")]
    pub p_acc: u32,
    #[prost(int32, tag = "11")]
    pub ecef_vx: i32,
    #[prost(int32, tag = "12")]
    pub ecef_vy: i32,
    #[prost(int32, tag = "13")]
    pub ecef_vz: i32,
    #[prost(uint32, tag = "14")]
    pub s_acc: u32,
    #[prost(uint32, tag = "15")]
    pub p_dop: u32,
    #[prost(uint32, tag = "16")]
    pub reserved1: u32,
    #[prost(uint32, tag = "17")]
    pub num_sv: u32,
    #[prost(uint32, tag = "18")]
    pub reserved2: u32,
}
impl ::prost::Name for NavSol {
    const NAME: &'static str = "NavSOL";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSOL".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSOL".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AidEph {
    #[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 how: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub sf1d: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub sf2d: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub sf3d: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for AidEph {
    const NAME: &'static str = "AidEPH";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.AidEPH".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.AidEPH".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSvin {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub i_tow: u32,
    #[prost(uint32, tag = "5")]
    pub dur: u32,
    #[prost(int32, tag = "6")]
    pub mean_x: i32,
    #[prost(int32, tag = "7")]
    pub mean_y: i32,
    #[prost(int32, tag = "8")]
    pub mean_z: i32,
    #[prost(int32, tag = "9")]
    pub mean_xhp: i32,
    #[prost(int32, tag = "10")]
    pub mean_yhp: i32,
    #[prost(int32, tag = "11")]
    pub mean_zhp: i32,
    #[prost(uint32, tag = "12")]
    pub reserved1: u32,
    #[prost(uint32, tag = "13")]
    pub mean_acc: u32,
    #[prost(uint32, tag = "14")]
    pub obs: u32,
    #[prost(uint32, tag = "15")]
    pub valid: u32,
    #[prost(uint32, tag = "16")]
    pub active: u32,
    #[prost(uint32, repeated, tag = "17")]
    pub reserved3: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for NavSvin {
    const NAME: &'static str = "NavSVIN";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSVIN".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSVIN".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ack {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub cls_id: u32,
    #[prost(uint32, tag = "3")]
    pub msg_id: u32,
}
impl ::prost::Name for Ack {
    const NAME: &'static str = "Ack";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.Ack".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.Ack".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavDop {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub g_dop: u32,
    #[prost(uint32, tag = "4")]
    pub p_dop: u32,
    #[prost(uint32, tag = "5")]
    pub t_dop: u32,
    #[prost(uint32, tag = "6")]
    pub v_dop: u32,
    #[prost(uint32, tag = "7")]
    pub h_dop: u32,
    #[prost(uint32, tag = "8")]
    pub n_dop: u32,
    #[prost(uint32, tag = "9")]
    pub e_dop: u32,
}
impl ::prost::Name for NavDop {
    const NAME: &'static str = "NavDOP";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavDOP".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavDOP".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavPvt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub year: u32,
    #[prost(uint32, tag = "4")]
    pub month: u32,
    #[prost(uint32, tag = "5")]
    pub day: u32,
    #[prost(uint32, tag = "6")]
    pub hour: u32,
    #[prost(uint32, tag = "7")]
    pub min: u32,
    #[prost(uint32, tag = "8")]
    pub sec: u32,
    #[prost(uint32, tag = "9")]
    pub valid: u32,
    #[prost(uint32, tag = "10")]
    pub t_acc: u32,
    #[prost(int32, tag = "11")]
    pub nano: i32,
    #[prost(uint32, tag = "12")]
    pub fix_type: u32,
    #[prost(uint32, tag = "13")]
    pub flags: u32,
    #[prost(uint32, tag = "14")]
    pub flags2: u32,
    #[prost(uint32, tag = "15")]
    pub num_sv: u32,
    #[prost(int32, tag = "16")]
    pub lon: i32,
    #[prost(int32, tag = "17")]
    pub lat: i32,
    #[prost(int32, tag = "18")]
    pub height: i32,
    #[prost(int32, tag = "19")]
    pub h_msl: i32,
    #[prost(uint32, tag = "20")]
    pub h_acc: u32,
    #[prost(uint32, tag = "21")]
    pub v_acc: u32,
    #[prost(int32, tag = "22")]
    pub vel_n: i32,
    #[prost(int32, tag = "23")]
    pub vel_e: i32,
    #[prost(int32, tag = "24")]
    pub vel_d: i32,
    #[prost(int32, tag = "25")]
    pub g_speed: i32,
    #[prost(int32, tag = "26")]
    pub heading: i32,
    #[prost(uint32, tag = "27")]
    pub s_acc: u32,
    #[prost(uint32, tag = "28")]
    pub head_acc: u32,
    #[prost(uint32, tag = "29")]
    pub p_dop: u32,
    #[prost(uint32, repeated, tag = "30")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "31")]
    pub head_veh: i32,
    #[prost(int32, tag = "32")]
    pub mag_dec: i32,
    #[prost(uint32, tag = "33")]
    pub mag_acc: u32,
}
impl ::prost::Name for NavPvt {
    const NAME: &'static str = "NavPVT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavPVT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavPVT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgSbas {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub mode: u32,
    #[prost(uint32, tag = "3")]
    pub usage: u32,
    #[prost(uint32, tag = "4")]
    pub max_sbas: u32,
    #[prost(uint32, tag = "5")]
    pub scanmode2: u32,
    #[prost(uint32, tag = "6")]
    pub scanmode1: u32,
}
impl ::prost::Name for CfgSbas {
    const NAME: &'static str = "CfgSBAS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgSBAS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgSBAS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgInfBlock {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub protocol_id: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "4")]
    pub inf_msg_mask: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgInfBlock {
    const NAME: &'static str = "CfgINFBlock";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgINFBlock".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgINFBlock".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmSvsisv {
    #[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 sv_flag: u32,
    #[prost(int32, tag = "4")]
    pub azim: i32,
    #[prost(int32, tag = "5")]
    pub elev: i32,
    #[prost(uint32, tag = "6")]
    pub age: u32,
}
impl ::prost::Name for RxmSvsisv {
    const NAME: &'static str = "RxmSVSISV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSISV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSISV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonVerExtension {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, repeated, tag = "2")]
    pub field: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for MonVerExtension {
    const NAME: &'static str = "MonVERExtension";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MonVERExtension".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MonVERExtension".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavDgps {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub age: i32,
    #[prost(int32, tag = "4")]
    pub base_id: i32,
    #[prost(int32, tag = "5")]
    pub base_health: i32,
    #[prost(int32, tag = "6")]
    pub num_ch: i32,
    #[prost(uint32, tag = "7")]
    pub status: u32,
    #[prost(uint32, tag = "8")]
    pub reserved1: u32,
    #[prost(message, repeated, tag = "9")]
    pub sv: ::prost::alloc::vec::Vec<NavDgpssv>,
}
impl ::prost::Name for NavDgps {
    const NAME: &'static str = "NavDGPS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavDGPS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavDGPS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgNmea7 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub filter: u32,
    #[prost(uint32, tag = "3")]
    pub nmea_version: u32,
    #[prost(uint32, tag = "4")]
    pub num_sv: u32,
    #[prost(uint32, tag = "5")]
    pub flags: u32,
    #[prost(uint32, tag = "6")]
    pub gnss_to_filter: u32,
    #[prost(uint32, tag = "7")]
    pub sv_numbering: u32,
    #[prost(uint32, tag = "8")]
    pub main_talker_id: u32,
    #[prost(uint32, tag = "9")]
    pub gsv_talker_id: u32,
    #[prost(uint32, tag = "10")]
    pub reserved: u32,
}
impl ::prost::Name for CfgNmea7 {
    const NAME: &'static str = "CfgNMEA7";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA7".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA7".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgAnt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub flags: u32,
    #[prost(uint32, tag = "3")]
    pub pins: u32,
}
impl ::prost::Name for CfgAnt {
    const NAME: &'static str = "CfgANT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgANT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgANT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonHw {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_sel: u32,
    #[prost(uint32, tag = "3")]
    pub pin_bank: u32,
    #[prost(uint32, tag = "4")]
    pub pin_dir: u32,
    #[prost(uint32, tag = "5")]
    pub pin_val: u32,
    #[prost(uint32, tag = "6")]
    pub noise_per_ms: u32,
    #[prost(uint32, tag = "7")]
    pub agc_cnt: u32,
    #[prost(uint32, tag = "8")]
    pub a_status: u32,
    #[prost(uint32, tag = "9")]
    pub a_power: u32,
    #[prost(uint32, tag = "10")]
    pub flags: u32,
    #[prost(uint32, tag = "11")]
    pub reserved0: u32,
    #[prost(uint32, tag = "12")]
    pub used_mask: u32,
    #[prost(uint32, repeated, tag = "13")]
    pub vp: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "14")]
    pub jam_ind: u32,
    #[prost(uint32, repeated, tag = "15")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "16")]
    pub pin_irq: u32,
    #[prost(uint32, tag = "17")]
    pub pull_h: u32,
    #[prost(uint32, tag = "18")]
    pub pull_l: u32,
}
impl ::prost::Name for MonHw {
    const NAME: &'static str = "MonHW";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MonHW".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MonHW".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSbas {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub geo: u32,
    #[prost(uint32, tag = "4")]
    pub mode: u32,
    #[prost(int32, tag = "5")]
    pub sys: i32,
    #[prost(uint32, tag = "6")]
    pub service: u32,
    #[prost(uint32, tag = "7")]
    pub cnt: u32,
    #[prost(uint32, repeated, tag = "8")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "9")]
    pub sv: ::prost::alloc::vec::Vec<NavSbassv>,
}
impl ::prost::Name for NavSbas {
    const NAME: &'static str = "NavSBAS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSBAS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSBAS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfStatusSens {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub sens_status1: u32,
    #[prost(uint32, tag = "3")]
    pub sens_status2: u32,
    #[prost(uint32, tag = "4")]
    pub freq: u32,
    #[prost(uint32, tag = "5")]
    pub faults: u32,
}
impl ::prost::Name for EsfStatusSens {
    const NAME: &'static str = "EsfSTATUSSens";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfSTATUSSens".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfSTATUSSens".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub fusion_mode: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub reserved2: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "7")]
    pub num_sens: u32,
    #[prost(message, repeated, tag = "8")]
    pub sens: ::prost::alloc::vec::Vec<EsfStatusSens>,
}
impl ::prost::Name for EsfStatus {
    const NAME: &'static str = "EsfSTATUS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfSTATUS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfSTATUS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimTm2 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub ch: u32,
    #[prost(uint32, tag = "3")]
    pub flags: u32,
    #[prost(uint32, tag = "4")]
    pub rising_edge_count: u32,
    #[prost(uint32, tag = "5")]
    pub wn_r: u32,
    #[prost(uint32, tag = "6")]
    pub wn_f: u32,
    #[prost(uint32, tag = "7")]
    pub tow_ms_r: u32,
    #[prost(uint32, tag = "8")]
    pub tow_sub_ms_r: u32,
    #[prost(uint32, tag = "9")]
    pub tow_ms_f: u32,
    #[prost(uint32, tag = "10")]
    pub tow_sub_ms_f: u32,
    #[prost(uint32, tag = "11")]
    pub acc_est: u32,
}
impl ::prost::Name for TimTm2 {
    const NAME: &'static str = "TimTM2";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.TimTM2".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.TimTM2".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AidHui {
    #[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(double, tag = "3")]
    pub utc_a0: f64,
    #[prost(double, tag = "4")]
    pub utc_a1: f64,
    #[prost(int32, tag = "5")]
    pub utc_tow: i32,
    #[prost(int32, tag = "6")]
    pub utc_wnt: i32,
    #[prost(int32, tag = "7")]
    pub utc_ls: i32,
    #[prost(int32, tag = "8")]
    pub utc_wnf: i32,
    #[prost(int32, tag = "9")]
    pub utc_dn: i32,
    #[prost(int32, tag = "10")]
    pub utc_lsf: i32,
    #[prost(int32, tag = "11")]
    pub utc_spare: i32,
    #[prost(float, tag = "12")]
    pub klob_a0: f32,
    #[prost(float, tag = "13")]
    pub klob_a1: f32,
    #[prost(float, tag = "14")]
    pub klob_a2: f32,
    #[prost(float, tag = "15")]
    pub klob_a3: f32,
    #[prost(float, tag = "16")]
    pub klob_b0: f32,
    #[prost(float, tag = "17")]
    pub klob_b1: f32,
    #[prost(float, tag = "18")]
    pub klob_b2: f32,
    #[prost(float, tag = "19")]
    pub klob_b3: f32,
    #[prost(uint32, tag = "20")]
    pub flags: u32,
}
impl ::prost::Name for AidHui {
    const NAME: &'static str = "AidHUI";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.AidHUI".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.AidHUI".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonHw6 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_sel: u32,
    #[prost(uint32, tag = "3")]
    pub pin_bank: u32,
    #[prost(uint32, tag = "4")]
    pub pin_dir: u32,
    #[prost(uint32, tag = "5")]
    pub pin_val: u32,
    #[prost(uint32, tag = "6")]
    pub noise_per_ms: u32,
    #[prost(uint32, tag = "7")]
    pub agc_cnt: u32,
    #[prost(uint32, tag = "8")]
    pub a_status: u32,
    #[prost(uint32, tag = "9")]
    pub a_power: u32,
    #[prost(uint32, tag = "10")]
    pub flags: u32,
    #[prost(uint32, tag = "11")]
    pub reserved0: u32,
    #[prost(uint32, tag = "12")]
    pub used_mask: u32,
    #[prost(uint32, repeated, tag = "13")]
    pub vp: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "14")]
    pub jam_ind: u32,
    #[prost(uint32, repeated, tag = "15")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "16")]
    pub pin_irq: u32,
    #[prost(uint32, tag = "17")]
    pub pull_h: u32,
    #[prost(uint32, tag = "18")]
    pub pull_l: u32,
}
impl ::prost::Name for MonHw6 {
    const NAME: &'static str = "MonHW6";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MonHW6".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MonHW6".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfMeas {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub time_tag: u32,
    #[prost(uint32, tag = "3")]
    pub flags: u32,
    #[prost(uint32, tag = "4")]
    pub id: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub data: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub calib_t_tag: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for EsfMeas {
    const NAME: &'static str = "EsfMEAS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfMEAS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfMEAS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSatsv {
    #[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(uint32, tag = "8")]
    pub flags: u32,
}
impl ::prost::Name for NavSatsv {
    const NAME: &'static str = "NavSATSV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSATSV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSATSV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgCfg {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub clear_mask: u32,
    #[prost(uint32, tag = "3")]
    pub save_mask: u32,
    #[prost(uint32, tag = "4")]
    pub load_mask: u32,
    #[prost(uint32, tag = "5")]
    pub device_mask: u32,
}
impl ::prost::Name for CfgCfg {
    const NAME: &'static str = "CfgCFG";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgCFG".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgCFG".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonGnss {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub supported: u32,
    #[prost(uint32, tag = "4")]
    pub default_gnss: u32,
    #[prost(uint32, tag = "5")]
    pub enabled: u32,
    #[prost(uint32, tag = "6")]
    pub simultaneous: u32,
    #[prost(uint32, repeated, tag = "7")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for MonGnss {
    const NAME: &'static str = "MonGNSS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MonGNSS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MonGNSS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavCov {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub pos_cov_valid: u32,
    #[prost(uint32, tag = "5")]
    pub vel_cov_valid: u32,
    #[prost(uint32, repeated, tag = "6")]
    pub reserved_0: ::prost::alloc::vec::Vec<u32>,
    #[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 NavCov {
    const NAME: &'static str = "NavCOV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavCOV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavCOV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgDgnss {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub dgnss_mode: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgDgnss {
    const NAME: &'static str = "CfgDGNSS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgDGNSS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgDGNSS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgNav5 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub mask: u32,
    #[prost(uint32, tag = "3")]
    pub dyn_model: u32,
    #[prost(uint32, tag = "4")]
    pub fix_mode: u32,
    #[prost(int32, tag = "5")]
    pub fixed_alt: i32,
    #[prost(uint32, tag = "6")]
    pub fixed_alt_var: u32,
    #[prost(int32, tag = "7")]
    pub min_elev: i32,
    #[prost(uint32, tag = "8")]
    pub dr_limit: u32,
    #[prost(uint32, tag = "9")]
    pub p_dop: u32,
    #[prost(uint32, tag = "10")]
    pub t_dop: u32,
    #[prost(uint32, tag = "11")]
    pub p_acc: u32,
    #[prost(uint32, tag = "12")]
    pub t_acc: u32,
    #[prost(uint32, tag = "13")]
    pub static_hold_thresh: u32,
    #[prost(uint32, tag = "14")]
    pub dgnss_time_out: u32,
    #[prost(uint32, tag = "15")]
    pub cno_thresh_num_svs: u32,
    #[prost(uint32, tag = "16")]
    pub cno_thresh: u32,
    #[prost(uint32, repeated, tag = "17")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "18")]
    pub static_hold_max_dist: u32,
    #[prost(uint32, tag = "19")]
    pub utc_standard: u32,
    #[prost(uint32, repeated, tag = "20")]
    pub reserved2: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgNav5 {
    const NAME: &'static str = "CfgNAV5";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgNAV5".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgNAV5".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub gps_fix: u32,
    #[prost(uint32, tag = "4")]
    pub flags: u32,
    #[prost(uint32, tag = "5")]
    pub fix_stat: u32,
    #[prost(uint32, tag = "6")]
    pub flags2: u32,
    #[prost(uint32, tag = "7")]
    pub ttff: u32,
    #[prost(uint32, tag = "8")]
    pub msss: u32,
}
impl ::prost::Name for NavStatus {
    const NAME: &'static str = "NavSTATUS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSTATUS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSTATUS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmSfrb {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub chn: u32,
    #[prost(uint32, tag = "3")]
    pub svid: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub dwrd: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for RxmSfrb {
    const NAME: &'static str = "RxmSFRB";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmSFRB".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmSFRB".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmSvsi {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub i_tow: i32,
    #[prost(int32, tag = "3")]
    pub week: i32,
    #[prost(uint32, tag = "4")]
    pub num_vis: u32,
    #[prost(uint32, tag = "5")]
    pub num_sv: u32,
    #[prost(message, repeated, tag = "6")]
    pub sv: ::prost::alloc::vec::Vec<RxmSvsisv>,
}
impl ::prost::Name for RxmSvsi {
    const NAME: &'static str = "RxmSVSI";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSI".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSI".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmRawx {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(double, tag = "2")]
    pub rcv_tow: f64,
    #[prost(uint32, tag = "3")]
    pub week: u32,
    #[prost(int32, tag = "4")]
    pub leap_s: i32,
    #[prost(uint32, tag = "5")]
    pub num_meas: u32,
    #[prost(uint32, tag = "6")]
    pub rec_stat: u32,
    #[prost(uint32, tag = "7")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "8")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "9")]
    pub meas: ::prost::alloc::vec::Vec<RxmRawxMeas>,
}
impl ::prost::Name for RxmRawx {
    const NAME: &'static str = "RxmRAWX";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWX".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWX".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgRate {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub meas_rate: u32,
    #[prost(uint32, tag = "3")]
    pub nav_rate: u32,
    #[prost(uint32, tag = "4")]
    pub time_ref: u32,
}
impl ::prost::Name for CfgRate {
    const NAME: &'static str = "CfgRATE";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgRATE".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgRATE".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgMsg {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub msg_class: u32,
    #[prost(uint32, tag = "3")]
    pub msg_id: u32,
    #[prost(uint32, tag = "4")]
    pub rate: u32,
}
impl ::prost::Name for CfgMsg {
    const NAME: &'static str = "CfgMSG";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgMSG".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgMSG".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgHnr {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub high_nav_rate: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgHnr {
    const NAME: &'static str = "CfgHNR";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgHNR".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgHNR".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgInf {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub blocks: ::prost::alloc::vec::Vec<CfgInfBlock>,
}
impl ::prost::Name for CfgInf {
    const NAME: &'static str = "CfgINF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgINF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgINF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavRelposned {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub reserved0: u32,
    #[prost(uint32, tag = "4")]
    pub ref_station_id: u32,
    #[prost(uint32, tag = "5")]
    pub i_tow: 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_hpn: i32,
    #[prost(int32, tag = "10")]
    pub rel_pos_hpe: i32,
    #[prost(int32, tag = "11")]
    pub rel_pos_hpd: i32,
    #[prost(uint32, tag = "12")]
    pub reserved1: u32,
    #[prost(uint32, tag = "13")]
    pub acc_n: u32,
    #[prost(uint32, tag = "14")]
    pub acc_e: u32,
    #[prost(uint32, tag = "15")]
    pub acc_d: u32,
    #[prost(uint32, tag = "16")]
    pub flags: u32,
}
impl ::prost::Name for NavRelposned {
    const NAME: &'static str = "NavRELPOSNED";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavRELPOSNED".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavRELPOSNED".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonVer {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, repeated, tag = "2")]
    pub sw_version: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, tag = "3")]
    pub hw_version: ::prost::alloc::vec::Vec<i32>,
    #[prost(message, repeated, tag = "4")]
    pub extension: ::prost::alloc::vec::Vec<MonVerExtension>,
}
impl ::prost::Name for MonVer {
    const NAME: &'static str = "MonVER";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MonVER".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MonVER".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MgaGal {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub r#type: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub svid: u32,
    #[prost(uint32, tag = "5")]
    pub reserved0: u32,
    #[prost(uint32, tag = "6")]
    pub iod_nav: u32,
    #[prost(int32, tag = "7")]
    pub delta_n: i32,
    #[prost(int32, tag = "8")]
    pub m0: i32,
    #[prost(uint32, tag = "9")]
    pub e: u32,
    #[prost(uint32, tag = "10")]
    pub sqrt_a: u32,
    #[prost(int32, tag = "11")]
    pub omega0: i32,
    #[prost(int32, tag = "12")]
    pub i0: i32,
    #[prost(int32, tag = "13")]
    pub omega: i32,
    #[prost(int32, tag = "14")]
    pub omega_dot: i32,
    #[prost(int32, tag = "15")]
    pub i_dot: i32,
    #[prost(int32, tag = "16")]
    pub cuc: i32,
    #[prost(int32, tag = "17")]
    pub cus: i32,
    #[prost(int32, tag = "18")]
    pub crc: i32,
    #[prost(int32, tag = "19")]
    pub crs: i32,
    #[prost(int32, tag = "20")]
    pub cic: i32,
    #[prost(int32, tag = "21")]
    pub cis: i32,
    #[prost(uint32, tag = "22")]
    pub toe: u32,
    #[prost(int32, tag = "23")]
    pub af0: i32,
    #[prost(int32, tag = "24")]
    pub af1: i32,
    #[prost(int32, tag = "25")]
    pub af2: i32,
    #[prost(uint32, tag = "26")]
    pub sisaindex_e1_e5b: u32,
    #[prost(uint32, tag = "27")]
    pub toc: u32,
    #[prost(int32, tag = "28")]
    pub bgd_e1_e5b: i32,
    #[prost(uint32, repeated, tag = "29")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "30")]
    pub health_e1b: u32,
    #[prost(uint32, tag = "31")]
    pub data_validity_e1b: u32,
    #[prost(uint32, tag = "32")]
    pub health_e5b: u32,
    #[prost(uint32, tag = "33")]
    pub data_validity_e5b: u32,
    #[prost(uint32, repeated, tag = "34")]
    pub reserved2: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for MgaGal {
    const NAME: &'static str = "MgaGAL";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.MgaGAL".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.MgaGAL".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EsfIns {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub bitfield0: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub i_tow: u32,
    #[prost(int32, tag = "5")]
    pub x_ang_rate: i32,
    #[prost(int32, tag = "6")]
    pub y_ang_rate: i32,
    #[prost(int32, tag = "7")]
    pub z_ang_rate: i32,
    #[prost(int32, tag = "8")]
    pub x_accel: i32,
    #[prost(int32, tag = "9")]
    pub y_accel: i32,
    #[prost(int32, tag = "10")]
    pub z_accel: i32,
}
impl ::prost::Name for EsfIns {
    const NAME: &'static str = "EsfINS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.EsfINS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.EsfINS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmAlm {
    #[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 week: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub dwrd: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for RxmAlm {
    const NAME: &'static str = "RxmALM";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmALM".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmALM".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmRtcm {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub flags: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "5")]
    pub ref_station: u32,
    #[prost(uint32, tag = "6")]
    pub msg_type: u32,
}
impl ::prost::Name for RxmRtcm {
    const NAME: &'static str = "RxmRTCM";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmRTCM".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmRTCM".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgNmea6 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub filter: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub num_sv: u32,
    #[prost(uint32, tag = "5")]
    pub flags: u32,
}
impl ::prost::Name for CfgNmea6 {
    const NAME: &'static str = "CfgNMEA6";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA6".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgNMEA6".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdSos {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub cmd: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for UpdSos {
    const NAME: &'static str = "UpdSOS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.UpdSOS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.UpdSOS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HnrPvt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub year: u32,
    #[prost(uint32, tag = "4")]
    pub month: u32,
    #[prost(uint32, tag = "5")]
    pub day: u32,
    #[prost(uint32, tag = "6")]
    pub hour: u32,
    #[prost(uint32, tag = "7")]
    pub min: u32,
    #[prost(uint32, tag = "8")]
    pub sec: u32,
    #[prost(uint32, tag = "9")]
    pub valid: u32,
    #[prost(int32, tag = "10")]
    pub nano: i32,
    #[prost(uint32, tag = "11")]
    pub gps_fix: u32,
    #[prost(uint32, tag = "12")]
    pub flags: u32,
    #[prost(uint32, repeated, tag = "13")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "14")]
    pub lon: i32,
    #[prost(int32, tag = "15")]
    pub lat: i32,
    #[prost(int32, tag = "16")]
    pub height: i32,
    #[prost(int32, tag = "17")]
    pub h_msl: i32,
    #[prost(int32, tag = "18")]
    pub g_speed: i32,
    #[prost(int32, tag = "19")]
    pub speed: i32,
    #[prost(int32, tag = "20")]
    pub head_mot: i32,
    #[prost(int32, tag = "21")]
    pub head_veh: i32,
    #[prost(uint32, tag = "22")]
    pub h_acc: u32,
    #[prost(uint32, tag = "23")]
    pub v_acc: u32,
    #[prost(uint32, tag = "24")]
    pub s_acc: u32,
    #[prost(uint32, tag = "25")]
    pub head_acc: u32,
    #[prost(uint32, repeated, tag = "26")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for HnrPvt {
    const NAME: &'static str = "HnrPVT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.HnrPVT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.HnrPVT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgUsb {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub vendor_id: u32,
    #[prost(uint32, tag = "3")]
    pub product_id: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub reserved2: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub power_consumption: u32,
    #[prost(uint32, tag = "7")]
    pub flags: u32,
    #[prost(int32, repeated, tag = "8")]
    pub vendor_string: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, tag = "9")]
    pub product_string: ::prost::alloc::vec::Vec<i32>,
    #[prost(int32, repeated, tag = "10")]
    pub serial_number: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for CfgUsb {
    const NAME: &'static str = "CfgUSB";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgUSB".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgUSB".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Inf {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, repeated, tag = "2")]
    pub str: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for Inf {
    const NAME: &'static str = "Inf";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.Inf".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.Inf".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavPosllh {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub lon: i32,
    #[prost(int32, tag = "4")]
    pub lat: i32,
    #[prost(int32, tag = "5")]
    pub height: i32,
    #[prost(int32, tag = "6")]
    pub h_msl: i32,
    #[prost(uint32, tag = "7")]
    pub h_acc: u32,
    #[prost(uint32, tag = "8")]
    pub v_acc: u32,
}
impl ::prost::Name for NavPosllh {
    const NAME: &'static str = "NavPOSLLH";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavPOSLLH".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavPOSLLH".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, tag = "4")]
    pub num_svs: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(message, repeated, tag = "6")]
    pub sv: ::prost::alloc::vec::Vec<NavSatsv>,
}
impl ::prost::Name for NavSat {
    const NAME: &'static str = "NavSAT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavSAT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavSAT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgValdel {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub layers: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub keys: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgValdel {
    const NAME: &'static str = "CfgVALDEL";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgVALDEL".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgVALDEL".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdSosAck {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub cmd: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "4")]
    pub response: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for UpdSosAck {
    const NAME: &'static str = "UpdSOSAck";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.UpdSOSAck".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.UpdSOSAck".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmEph {
    #[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 how: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub sf1d: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "5")]
    pub sf2d: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, repeated, tag = "6")]
    pub sf3d: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for RxmEph {
    const NAME: &'static str = "RxmEPH";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmEPH".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmEPH".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgValget {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub layers: u32,
    #[prost(uint32, tag = "4")]
    pub position: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub keys: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CfgValget {
    const NAME: &'static str = "CfgVALGET";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgVALGET".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgVALGET".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavVelecef {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub ecef_vx: i32,
    #[prost(int32, tag = "4")]
    pub ecef_vy: i32,
    #[prost(int32, tag = "5")]
    pub ecef_vz: i32,
    #[prost(uint32, tag = "6")]
    pub s_acc: u32,
}
impl ::prost::Name for NavVelecef {
    const NAME: &'static str = "NavVELECEF";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavVELECEF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavVELECEF".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavTimegps {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub f_tow: i32,
    #[prost(int32, tag = "4")]
    pub week: i32,
    #[prost(int32, tag = "5")]
    pub leap_s: i32,
    #[prost(uint32, tag = "6")]
    pub valid: u32,
    #[prost(uint32, tag = "7")]
    pub t_acc: u32,
}
impl ::prost::Name for NavTimegps {
    const NAME: &'static str = "NavTIMEGPS";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavTIMEGPS".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavTIMEGPS".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavVelned {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(int32, tag = "3")]
    pub vel_n: i32,
    #[prost(int32, tag = "4")]
    pub vel_e: i32,
    #[prost(int32, tag = "5")]
    pub vel_d: i32,
    #[prost(uint32, tag = "6")]
    pub speed: u32,
    #[prost(uint32, tag = "7")]
    pub g_speed: u32,
    #[prost(int32, tag = "8")]
    pub heading: i32,
    #[prost(uint32, tag = "9")]
    pub s_acc: u32,
    #[prost(uint32, tag = "10")]
    pub c_acc: u32,
}
impl ::prost::Name for NavVelned {
    const NAME: &'static str = "NavVELNED";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavVELNED".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavVELNED".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgRst {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub nav_bbr_mask: u32,
    #[prost(uint32, tag = "3")]
    pub reset_mode: u32,
    #[prost(uint32, tag = "4")]
    pub reserved1: u32,
}
impl ::prost::Name for CfgRst {
    const NAME: &'static str = "CfgRST";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgRST".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgRST".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgDat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub datum_num: u32,
    #[prost(uint32, repeated, tag = "3")]
    pub datum_name: ::prost::alloc::vec::Vec<u32>,
    #[prost(double, tag = "4")]
    pub maj_a: f64,
    #[prost(double, tag = "5")]
    pub flat: f64,
    #[prost(float, tag = "6")]
    pub d_x: f32,
    #[prost(float, tag = "7")]
    pub d_y: f32,
    #[prost(float, tag = "8")]
    pub d_z: f32,
    #[prost(float, tag = "9")]
    pub rot_x: f32,
    #[prost(float, tag = "10")]
    pub rot_y: f32,
    #[prost(float, tag = "11")]
    pub rot_z: f32,
    #[prost(float, tag = "12")]
    pub scale: f32,
}
impl ::prost::Name for CfgDat {
    const NAME: &'static str = "CfgDAT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgDAT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgDAT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmRawsv {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(double, tag = "2")]
    pub cp_mes: f64,
    #[prost(double, tag = "3")]
    pub pr_mes: f64,
    #[prost(float, tag = "4")]
    pub do_mes: f32,
    #[prost(uint32, tag = "5")]
    pub sv: u32,
    #[prost(int32, tag = "6")]
    pub mes_qi: i32,
    #[prost(int32, tag = "7")]
    pub cno: i32,
    #[prost(uint32, tag = "8")]
    pub lli: u32,
}
impl ::prost::Name for RxmRawsv {
    const NAME: &'static str = "RxmRAWSV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWSV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmRAWSV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmRaw {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub rcv_tow: i32,
    #[prost(int32, tag = "3")]
    pub week: i32,
    #[prost(uint32, tag = "4")]
    pub num_sv: u32,
    #[prost(uint32, tag = "5")]
    pub reserved1: u32,
    #[prost(message, repeated, tag = "6")]
    pub sv: ::prost::alloc::vec::Vec<RxmRawsv>,
}
impl ::prost::Name for RxmRaw {
    const NAME: &'static str = "RxmRAW";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmRAW".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmRAW".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmSvsiSv {
    #[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 sv_flag: u32,
    #[prost(int32, tag = "4")]
    pub azim: i32,
    #[prost(int32, tag = "5")]
    pub elev: i32,
    #[prost(uint32, tag = "6")]
    pub age: u32,
}
impl ::prost::Name for RxmSvsiSv {
    const NAME: &'static str = "RxmSVSI_SV";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSI_SV".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmSVSI_SV".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RxmSfrbx {
    #[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 reserved0: u32,
    #[prost(uint32, tag = "5")]
    pub freq_id: u32,
    #[prost(uint32, tag = "6")]
    pub num_words: u32,
    #[prost(uint32, tag = "7")]
    pub chn: u32,
    #[prost(uint32, tag = "8")]
    pub version: u32,
    #[prost(uint32, tag = "9")]
    pub reserved1: u32,
    #[prost(uint32, repeated, tag = "10")]
    pub dwrd: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for RxmSfrbx {
    const NAME: &'static str = "RxmSFRBX";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.RxmSFRBX".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.RxmSFRBX".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AidAlm {
    #[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 week: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub dwrd: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for AidAlm {
    const NAME: &'static str = "AidALM";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.AidALM".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.AidALM".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgPrt {
    #[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 reserved0: u32,
    #[prost(uint32, tag = "4")]
    pub tx_ready: u32,
    #[prost(uint32, tag = "5")]
    pub mode: u32,
    #[prost(uint32, tag = "6")]
    pub baud_rate: u32,
    #[prost(uint32, tag = "7")]
    pub in_proto_mask: u32,
    #[prost(uint32, tag = "8")]
    pub out_proto_mask: u32,
    #[prost(uint32, tag = "9")]
    pub flags: u32,
    #[prost(uint32, tag = "10")]
    pub reserved1: u32,
}
impl ::prost::Name for CfgPrt {
    const NAME: &'static str = "CfgPRT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgPRT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgPRT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CfgNavx5 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub version: u32,
    #[prost(uint32, tag = "3")]
    pub mask1: u32,
    #[prost(uint32, tag = "4")]
    pub mask2: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "6")]
    pub min_svs: u32,
    #[prost(uint32, tag = "7")]
    pub max_svs: u32,
    #[prost(uint32, tag = "8")]
    pub min_cno: u32,
    #[prost(uint32, tag = "9")]
    pub reserved2: u32,
    #[prost(uint32, tag = "10")]
    pub ini_fix3d: u32,
    #[prost(uint32, repeated, tag = "11")]
    pub reserved3: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "12")]
    pub ack_aiding: u32,
    #[prost(uint32, tag = "13")]
    pub wkn_rollover: u32,
    #[prost(uint32, tag = "14")]
    pub sig_atten_comp_mode: u32,
    #[prost(uint32, repeated, tag = "15")]
    pub reserved4: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "16")]
    pub use_ppp: u32,
    #[prost(uint32, tag = "17")]
    pub aop_cfg: u32,
    #[prost(uint32, repeated, tag = "18")]
    pub reserved5: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "19")]
    pub aop_orb_max_err: u32,
    #[prost(uint32, repeated, tag = "20")]
    pub reserved6: ::prost::alloc::vec::Vec<u32>,
    #[prost(uint32, tag = "21")]
    pub use_adr: u32,
}
impl ::prost::Name for CfgNavx5 {
    const NAME: &'static str = "CfgNAVX5";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.CfgNAVX5".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.CfgNAVX5".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavAtt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub version: u32,
    #[prost(uint32, repeated, tag = "4")]
    pub reserved0: ::prost::alloc::vec::Vec<u32>,
    #[prost(int32, tag = "5")]
    pub roll: i32,
    #[prost(int32, tag = "6")]
    pub pitch: i32,
    #[prost(int32, tag = "7")]
    pub heading: i32,
    #[prost(uint32, tag = "8")]
    pub acc_roll: u32,
    #[prost(uint32, tag = "9")]
    pub acc_pitch: u32,
    #[prost(uint32, tag = "10")]
    pub acc_heading: u32,
}
impl ::prost::Name for NavAtt {
    const NAME: &'static str = "NavATT";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavATT".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavATT".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavPvt7 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub i_tow: u32,
    #[prost(uint32, tag = "3")]
    pub year: u32,
    #[prost(uint32, tag = "4")]
    pub month: u32,
    #[prost(uint32, tag = "5")]
    pub day: u32,
    #[prost(uint32, tag = "6")]
    pub hour: u32,
    #[prost(uint32, tag = "7")]
    pub min: u32,
    #[prost(uint32, tag = "8")]
    pub sec: u32,
    #[prost(uint32, tag = "9")]
    pub valid: u32,
    #[prost(uint32, tag = "10")]
    pub t_acc: u32,
    #[prost(int32, tag = "11")]
    pub nano: i32,
    #[prost(uint32, tag = "12")]
    pub fix_type: u32,
    #[prost(uint32, tag = "13")]
    pub flags: u32,
    #[prost(uint32, tag = "14")]
    pub flags2: u32,
    #[prost(uint32, tag = "15")]
    pub num_sv: u32,
    #[prost(int32, tag = "16")]
    pub lon: i32,
    #[prost(int32, tag = "17")]
    pub lat: i32,
    #[prost(int32, tag = "18")]
    pub height: i32,
    #[prost(int32, tag = "19")]
    pub h_msl: i32,
    #[prost(uint32, tag = "20")]
    pub h_acc: u32,
    #[prost(uint32, tag = "21")]
    pub v_acc: u32,
    #[prost(int32, tag = "22")]
    pub vel_n: i32,
    #[prost(int32, tag = "23")]
    pub vel_e: i32,
    #[prost(int32, tag = "24")]
    pub vel_d: i32,
    #[prost(int32, tag = "25")]
    pub g_speed: i32,
    #[prost(int32, tag = "26")]
    pub heading: i32,
    #[prost(uint32, tag = "27")]
    pub s_acc: u32,
    #[prost(uint32, tag = "28")]
    pub head_acc: u32,
    #[prost(uint32, tag = "29")]
    pub p_dop: u32,
    #[prost(uint32, repeated, tag = "30")]
    pub reserved1: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for NavPvt7 {
    const NAME: &'static str = "NavPVT7";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ublox_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ublox_msgs.msg.NavPVT7".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ublox_msgs.msg.NavPVT7".into()
    }
}
