// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct NovatelReceiverStatus {
    #[prost(uint32, tag = "1")]
    pub original_status_code: u32,
    #[prost(bool, tag = "2")]
    pub error_flag: bool,
    #[prost(bool, tag = "3")]
    pub temperature_flag: bool,
    #[prost(bool, tag = "4")]
    pub voltage_supply_flag: bool,
    #[prost(bool, tag = "5")]
    pub antenna_powered: bool,
    #[prost(bool, tag = "6")]
    pub antenna_is_open: bool,
    #[prost(bool, tag = "7")]
    pub antenna_is_shorted: bool,
    #[prost(bool, tag = "8")]
    pub cpu_overload_flag: bool,
    #[prost(bool, tag = "9")]
    pub com1_buffer_overrun: bool,
    #[prost(bool, tag = "10")]
    pub com2_buffer_overrun: bool,
    #[prost(bool, tag = "11")]
    pub com3_buffer_overrun: bool,
    #[prost(bool, tag = "12")]
    pub usb_buffer_overrun: bool,
    #[prost(bool, tag = "13")]
    pub rf1_agc_flag: bool,
    #[prost(bool, tag = "14")]
    pub rf2_agc_flag: bool,
    #[prost(bool, tag = "15")]
    pub almanac_flag: bool,
    #[prost(bool, tag = "16")]
    pub position_solution_flag: bool,
    #[prost(bool, tag = "17")]
    pub position_fixed_flag: bool,
    #[prost(bool, tag = "18")]
    pub clock_steering_status_enabled: bool,
    #[prost(bool, tag = "19")]
    pub clock_model_flag: bool,
    #[prost(bool, tag = "20")]
    pub oemv_external_oscillator_flag: bool,
    #[prost(bool, tag = "21")]
    pub software_resource_flag: bool,
    #[prost(bool, tag = "22")]
    pub aux1_status_event_flag: bool,
    #[prost(bool, tag = "23")]
    pub aux2_status_event_flag: bool,
    #[prost(bool, tag = "24")]
    pub aux3_status_event_flag: bool,
}
impl ::prost::Name for NovatelReceiverStatus {
    const NAME: &'static str = "NovatelReceiverStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelReceiverStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelReceiverStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelMessageHeader {
    #[prost(string, tag = "1")]
    pub message_name: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub port: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub sequence_num: u32,
    #[prost(float, tag = "4")]
    pub percent_idle_time: f32,
    #[prost(string, tag = "5")]
    pub gps_time_status: ::prost::alloc::string::String,
    #[prost(uint32, tag = "6")]
    pub gps_week_num: u32,
    #[prost(double, tag = "7")]
    pub gps_seconds: f64,
    #[prost(message, optional, tag = "8")]
    pub receiver_status: ::core::option::Option<NovatelReceiverStatus>,
    #[prost(uint32, tag = "9")]
    pub receiver_software_version: u32,
}
impl ::prost::Name for NovatelMessageHeader {
    const NAME: &'static str = "NovatelMessageHeader";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelMessageHeader".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelMessageHeader".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelExtendedSolutionStatus {
    #[prost(uint32, tag = "1")]
    pub original_mask: u32,
    #[prost(bool, tag = "2")]
    pub advance_rtk_verified: bool,
    #[prost(string, tag = "3")]
    pub psuedorange_iono_correction: ::prost::alloc::string::String,
}
impl ::prost::Name for NovatelExtendedSolutionStatus {
    const NAME: &'static str = "NovatelExtendedSolutionStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelExtendedSolutionStatus"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelExtendedSolutionStatus"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Inspvax {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub ins_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(double, tag = "5")]
    pub latitude: f64,
    #[prost(double, tag = "6")]
    pub longitude: f64,
    #[prost(double, tag = "7")]
    pub altitude: f64,
    #[prost(float, tag = "8")]
    pub undulation: f32,
    #[prost(double, tag = "9")]
    pub north_velocity: f64,
    #[prost(double, tag = "10")]
    pub east_velocity: f64,
    #[prost(double, tag = "11")]
    pub up_velocity: f64,
    #[prost(double, tag = "12")]
    pub roll: f64,
    #[prost(double, tag = "13")]
    pub pitch: f64,
    #[prost(double, tag = "14")]
    pub azimuth: f64,
    #[prost(float, tag = "15")]
    pub latitude_std: f32,
    #[prost(float, tag = "16")]
    pub longitude_std: f32,
    #[prost(float, tag = "17")]
    pub altitude_std: f32,
    #[prost(float, tag = "18")]
    pub north_velocity_std: f32,
    #[prost(float, tag = "19")]
    pub east_velocity_std: f32,
    #[prost(float, tag = "20")]
    pub up_velocity_std: f32,
    #[prost(float, tag = "21")]
    pub roll_std: f32,
    #[prost(float, tag = "22")]
    pub pitch_std: f32,
    #[prost(float, tag = "23")]
    pub azimuth_std: f32,
    #[prost(message, optional, tag = "24")]
    pub extended_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(uint32, tag = "25")]
    pub seconds_since_update: u32,
}
impl ::prost::Name for Inspvax {
    const NAME: &'static str = "Inspvax";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inspvax".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inspvax".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct NovatelSignalMask {
    #[prost(uint32, tag = "1")]
    pub original_mask: u32,
    #[prost(bool, tag = "2")]
    pub gps_l1_used_in_solution: bool,
    #[prost(bool, tag = "3")]
    pub gps_l2_used_in_solution: bool,
    #[prost(bool, tag = "4")]
    pub gps_l3_used_in_solution: bool,
    #[prost(bool, tag = "5")]
    pub glonass_l1_used_in_solution: bool,
    #[prost(bool, tag = "6")]
    pub glonass_l2_used_in_solution: bool,
}
impl ::prost::Name for NovatelSignalMask {
    const NAME: &'static str = "NovatelSignalMask";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelSignalMask".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelSignalMask".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelHeading2 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(float, tag = "5")]
    pub baseline_length: f32,
    #[prost(float, tag = "6")]
    pub heading: f32,
    #[prost(float, tag = "7")]
    pub pitch: f32,
    #[prost(float, tag = "8")]
    pub heading_sigma: f32,
    #[prost(float, tag = "9")]
    pub pitch_sigma: f32,
    #[prost(string, tag = "10")]
    pub rover_station_id: ::prost::alloc::string::String,
    #[prost(string, tag = "11")]
    pub master_station_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "12")]
    pub num_satellites_tracked: u32,
    #[prost(uint32, tag = "13")]
    pub num_satellites_used_in_solution: u32,
    #[prost(uint32, tag = "14")]
    pub num_satellites_above_elevation_mask_angle: u32,
    #[prost(uint32, tag = "15")]
    pub num_satellites_above_elevation_mask_angle_l2: u32,
    #[prost(uint32, tag = "16")]
    pub solution_source: u32,
    #[prost(message, optional, tag = "17")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(message, optional, tag = "18")]
    pub signal_mask: ::core::option::Option<NovatelSignalMask>,
}
impl ::prost::Name for NovatelHeading2 {
    const NAME: &'static str = "NovatelHeading2";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelHeading2".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelHeading2".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gpgsa {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub message_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub auto_manual_mode: ::prost::alloc::string::String,
    #[prost(uint32, tag = "4")]
    pub fix_mode: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub sv_ids: ::prost::alloc::vec::Vec<u32>,
    #[prost(float, tag = "6")]
    pub pdop: f32,
    #[prost(float, tag = "7")]
    pub hdop: f32,
    #[prost(float, tag = "8")]
    pub vdop: f32,
}
impl ::prost::Name for Gpgsa {
    const NAME: &'static str = "Gpgsa";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgsa".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgsa".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gpgga {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub message_id: ::prost::alloc::string::String,
    #[prost(double, tag = "3")]
    pub utc_seconds: f64,
    #[prost(double, tag = "4")]
    pub lat: f64,
    #[prost(double, tag = "5")]
    pub lon: f64,
    #[prost(string, tag = "6")]
    pub lat_dir: ::prost::alloc::string::String,
    #[prost(string, tag = "7")]
    pub lon_dir: ::prost::alloc::string::String,
    #[prost(uint32, tag = "8")]
    pub gps_qual: u32,
    #[prost(uint32, tag = "9")]
    pub num_sats: u32,
    #[prost(float, tag = "10")]
    pub hdop: f32,
    #[prost(float, tag = "11")]
    pub alt: f32,
    #[prost(string, tag = "12")]
    pub altitude_units: ::prost::alloc::string::String,
    #[prost(float, tag = "13")]
    pub undulation: f32,
    #[prost(string, tag = "14")]
    pub undulation_units: ::prost::alloc::string::String,
    #[prost(uint32, tag = "15")]
    pub diff_age: u32,
    #[prost(string, tag = "16")]
    pub station_id: ::prost::alloc::string::String,
}
impl ::prost::Name for Gpgga {
    const NAME: &'static str = "Gpgga";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgga".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgga".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelVelocity {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub velocity_type: ::prost::alloc::string::String,
    #[prost(float, tag = "5")]
    pub latency: f32,
    #[prost(float, tag = "6")]
    pub age: f32,
    #[prost(double, tag = "7")]
    pub horizontal_speed: f64,
    #[prost(double, tag = "8")]
    pub track_ground: f64,
    #[prost(double, tag = "9")]
    pub vertical_speed: f64,
}
impl ::prost::Name for NovatelVelocity {
    const NAME: &'static str = "NovatelVelocity";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelVelocity".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelVelocity".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelPsrdop2System {
    #[prost(string, tag = "1")]
    pub system: ::prost::alloc::string::String,
    #[prost(float, tag = "2")]
    pub tdop: f32,
}
impl ::prost::Name for NovatelPsrdop2System {
    const NAME: &'static str = "NovatelPsrdop2System";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPsrdop2System".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPsrdop2System".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelPsrdop2 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(float, tag = "3")]
    pub gdop: f32,
    #[prost(float, tag = "4")]
    pub pdop: f32,
    #[prost(float, tag = "5")]
    pub hdop: f32,
    #[prost(float, tag = "6")]
    pub vdop: f32,
    #[prost(message, repeated, tag = "7")]
    pub systems: ::prost::alloc::vec::Vec<NovatelPsrdop2System>,
}
impl ::prost::Name for NovatelPsrdop2 {
    const NAME: &'static str = "NovatelPsrdop2";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPsrdop2".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPsrdop2".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelXyz {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(double, tag = "5")]
    pub x: f64,
    #[prost(double, tag = "6")]
    pub y: f64,
    #[prost(double, tag = "7")]
    pub z: f64,
    #[prost(float, tag = "8")]
    pub x_sigma: f32,
    #[prost(float, tag = "9")]
    pub y_sigma: f32,
    #[prost(float, tag = "10")]
    pub z_sigma: f32,
    #[prost(string, tag = "11")]
    pub velocity_solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "12")]
    pub velocity_type: ::prost::alloc::string::String,
    #[prost(double, tag = "13")]
    pub x_vel: f64,
    #[prost(double, tag = "14")]
    pub y_vel: f64,
    #[prost(double, tag = "15")]
    pub z_vel: f64,
    #[prost(float, tag = "16")]
    pub x_vel_sigma: f32,
    #[prost(float, tag = "17")]
    pub y_vel_sigma: f32,
    #[prost(float, tag = "18")]
    pub z_vel_sigma: f32,
    #[prost(string, tag = "19")]
    pub base_station_id: ::prost::alloc::string::String,
    #[prost(float, tag = "20")]
    pub velocity_latency: f32,
    #[prost(float, tag = "21")]
    pub diff_age: f32,
    #[prost(float, tag = "22")]
    pub solution_age: f32,
    #[prost(uint32, tag = "23")]
    pub num_satellites_tracked: u32,
    #[prost(uint32, tag = "24")]
    pub num_satellites_used_in_solution: u32,
    #[prost(uint32, tag = "25")]
    pub num_gps_and_glonass_l1_used_in_solution: u32,
    #[prost(uint32, tag = "26")]
    pub num_gps_and_glonass_l1_and_l2_used_in_solution: u32,
    #[prost(message, optional, tag = "27")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(message, optional, tag = "28")]
    pub signal_mask: ::core::option::Option<NovatelSignalMask>,
}
impl ::prost::Name for NovatelXyz {
    const NAME: &'static str = "NovatelXYZ";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelXYZ".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelXYZ".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackstatChannel {
    #[prost(int32, tag = "1")]
    pub prn: i32,
    #[prost(int32, tag = "2")]
    pub glofreq: i32,
    #[prost(uint32, tag = "3")]
    pub ch_tr_status: u32,
    #[prost(double, tag = "4")]
    pub psr: f64,
    #[prost(float, tag = "5")]
    pub doppler: f32,
    #[prost(float, tag = "6")]
    pub c_no: f32,
    #[prost(float, tag = "7")]
    pub locktime: f32,
    #[prost(float, tag = "8")]
    pub psr_res: f32,
    #[prost(string, tag = "9")]
    pub reject: ::prost::alloc::string::String,
    #[prost(float, tag = "10")]
    pub psr_weight: f32,
}
impl ::prost::Name for TrackstatChannel {
    const NAME: &'static str = "TrackstatChannel";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.TrackstatChannel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.TrackstatChannel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trackstat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(float, tag = "4")]
    pub cutoff: f32,
    #[prost(message, repeated, tag = "5")]
    pub channels: ::prost::alloc::vec::Vec<TrackstatChannel>,
}
impl ::prost::Name for Trackstat {
    const NAME: &'static str = "Trackstat";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Trackstat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Trackstat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Inscov {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(uint32, tag = "3")]
    pub week: u32,
    #[prost(double, tag = "4")]
    pub seconds: f64,
    #[prost(double, repeated, tag = "5")]
    pub position_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "6")]
    pub attitude_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "7")]
    pub velocity_covariance: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for Inscov {
    const NAME: &'static str = "Inscov";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inscov".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inscov".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gphdt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub message_id: ::prost::alloc::string::String,
    #[prost(double, tag = "3")]
    pub heading: f64,
    #[prost(string, tag = "4")]
    pub t: ::prost::alloc::string::String,
}
impl ::prost::Name for Gphdt {
    const NAME: &'static str = "Gphdt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gphdt".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gphdt".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Inspva {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(uint32, tag = "3")]
    pub week: u32,
    #[prost(double, tag = "4")]
    pub seconds: f64,
    #[prost(double, tag = "5")]
    pub latitude: f64,
    #[prost(double, tag = "6")]
    pub longitude: f64,
    #[prost(double, tag = "7")]
    pub height: f64,
    #[prost(double, tag = "8")]
    pub north_velocity: f64,
    #[prost(double, tag = "9")]
    pub east_velocity: f64,
    #[prost(double, tag = "10")]
    pub up_velocity: f64,
    #[prost(double, tag = "11")]
    pub roll: f64,
    #[prost(double, tag = "12")]
    pub pitch: f64,
    #[prost(double, tag = "13")]
    pub azimuth: f64,
    #[prost(string, tag = "14")]
    pub status: ::prost::alloc::string::String,
}
impl ::prost::Name for Inspva {
    const NAME: &'static str = "Inspva";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inspva".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Inspva".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelDualAntennaHeading {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(float, tag = "5")]
    pub baseline_length: f32,
    #[prost(float, tag = "6")]
    pub heading: f32,
    #[prost(float, tag = "7")]
    pub pitch: f32,
    #[prost(float, tag = "8")]
    pub heading_sigma: f32,
    #[prost(float, tag = "9")]
    pub pitch_sigma: f32,
    #[prost(string, tag = "10")]
    pub station_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "11")]
    pub num_satellites_tracked: u32,
    #[prost(uint32, tag = "12")]
    pub num_satellites_used_in_solution: u32,
    #[prost(uint32, tag = "13")]
    pub num_satellites_above_elevation_mask_angle: u32,
    #[prost(uint32, tag = "14")]
    pub num_satellites_above_elevation_mask_angle_l2: u32,
    #[prost(uint32, tag = "15")]
    pub solution_source: u32,
    #[prost(message, optional, tag = "16")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(message, optional, tag = "17")]
    pub signal_mask: ::core::option::Option<NovatelSignalMask>,
}
impl ::prost::Name for NovatelDualAntennaHeading {
    const NAME: &'static str = "NovatelDualAntennaHeading";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelDualAntennaHeading"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelDualAntennaHeading"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Insstdev {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(float, tag = "3")]
    pub latitude_dev: f32,
    #[prost(float, tag = "4")]
    pub longitude_dev: f32,
    #[prost(float, tag = "5")]
    pub height_dev: f32,
    #[prost(float, tag = "6")]
    pub north_velocity_dev: f32,
    #[prost(float, tag = "7")]
    pub east_velocity_dev: f32,
    #[prost(float, tag = "8")]
    pub up_velocity_dev: f32,
    #[prost(float, tag = "9")]
    pub roll_dev: f32,
    #[prost(float, tag = "10")]
    pub pitch_dev: f32,
    #[prost(float, tag = "11")]
    pub azimuth_dev: f32,
    #[prost(message, optional, tag = "12")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(uint32, tag = "13")]
    pub time_since_update: u32,
}
impl ::prost::Name for Insstdev {
    const NAME: &'static str = "Insstdev";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Insstdev".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Insstdev".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RangeInformation {
    #[prost(uint32, tag = "1")]
    pub prn_number: u32,
    #[prost(uint32, tag = "2")]
    pub glofreq: u32,
    #[prost(double, tag = "3")]
    pub psr: f64,
    #[prost(float, tag = "4")]
    pub psr_std: f32,
    #[prost(double, tag = "5")]
    pub adr: f64,
    #[prost(float, tag = "6")]
    pub adr_std: f32,
    #[prost(float, tag = "7")]
    pub dopp: f32,
    #[prost(float, tag = "8")]
    pub noise_density_ratio: f32,
    #[prost(float, tag = "9")]
    pub locktime: f32,
    #[prost(uint32, tag = "10")]
    pub tracking_status: u32,
}
impl ::prost::Name for RangeInformation {
    const NAME: &'static str = "RangeInformation";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.RangeInformation".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.RangeInformation".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Range {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(int32, tag = "3")]
    pub numb_of_observ: i32,
    #[prost(message, repeated, tag = "4")]
    pub info: ::prost::alloc::vec::Vec<RangeInformation>,
}
impl ::prost::Name for Range {
    const NAME: &'static str = "Range";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Range".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Range".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gprmc {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub message_id: ::prost::alloc::string::String,
    #[prost(double, tag = "3")]
    pub utc_seconds: f64,
    #[prost(string, tag = "4")]
    pub position_status: ::prost::alloc::string::String,
    #[prost(double, tag = "5")]
    pub lat: f64,
    #[prost(double, tag = "6")]
    pub lon: f64,
    #[prost(string, tag = "7")]
    pub lat_dir: ::prost::alloc::string::String,
    #[prost(string, tag = "8")]
    pub lon_dir: ::prost::alloc::string::String,
    #[prost(float, tag = "9")]
    pub speed: f32,
    #[prost(float, tag = "10")]
    pub track: f32,
    #[prost(string, tag = "11")]
    pub date: ::prost::alloc::string::String,
    #[prost(float, tag = "12")]
    pub mag_var: f32,
    #[prost(string, tag = "13")]
    pub mag_var_direction: ::prost::alloc::string::String,
    #[prost(string, tag = "14")]
    pub mode_indicator: ::prost::alloc::string::String,
}
impl ::prost::Name for Gprmc {
    const NAME: &'static str = "Gprmc";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gprmc".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gprmc".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelUtmPosition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(uint32, tag = "5")]
    pub lon_zone_number: u32,
    #[prost(string, tag = "6")]
    pub lat_zone_letter: ::prost::alloc::string::String,
    #[prost(double, tag = "7")]
    pub northing: f64,
    #[prost(double, tag = "8")]
    pub easting: f64,
    #[prost(double, tag = "9")]
    pub height: f64,
    #[prost(float, tag = "10")]
    pub undulation: f32,
    #[prost(string, tag = "11")]
    pub datum_id: ::prost::alloc::string::String,
    #[prost(float, tag = "12")]
    pub northing_sigma: f32,
    #[prost(float, tag = "13")]
    pub easting_sigma: f32,
    #[prost(float, tag = "14")]
    pub height_sigma: f32,
    #[prost(string, tag = "15")]
    pub base_station_id: ::prost::alloc::string::String,
    #[prost(float, tag = "16")]
    pub diff_age: f32,
    #[prost(float, tag = "17")]
    pub solution_age: f32,
    #[prost(uint32, tag = "18")]
    pub num_satellites_tracked: u32,
    #[prost(uint32, tag = "19")]
    pub num_satellites_used_in_solution: u32,
    #[prost(uint32, tag = "20")]
    pub num_gps_and_glonass_l1_used_in_solution: u32,
    #[prost(uint32, tag = "21")]
    pub num_gps_and_glonass_l1_and_l2_used_in_solution: u32,
    #[prost(message, optional, tag = "22")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(message, optional, tag = "23")]
    pub signal_mask: ::core::option::Option<NovatelSignalMask>,
}
impl ::prost::Name for NovatelUtmPosition {
    const NAME: &'static str = "NovatelUtmPosition";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelUtmPosition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelUtmPosition".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ClockSteering {
    #[prost(string, tag = "1")]
    pub source: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub steering_state: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub period: u32,
    #[prost(double, tag = "4")]
    pub pulse_width: f64,
    #[prost(double, tag = "5")]
    pub bandwidth: f64,
    #[prost(float, tag = "6")]
    pub slope: f32,
    #[prost(double, tag = "7")]
    pub offset: f64,
    #[prost(double, tag = "8")]
    pub drift_rate: f64,
}
impl ::prost::Name for ClockSteering {
    const NAME: &'static str = "ClockSteering";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.ClockSteering".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.ClockSteering".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelPosition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(string, tag = "3")]
    pub solution_status: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub position_type: ::prost::alloc::string::String,
    #[prost(double, tag = "5")]
    pub lat: f64,
    #[prost(double, tag = "6")]
    pub lon: f64,
    #[prost(double, tag = "7")]
    pub height: f64,
    #[prost(float, tag = "8")]
    pub undulation: f32,
    #[prost(string, tag = "9")]
    pub datum_id: ::prost::alloc::string::String,
    #[prost(float, tag = "10")]
    pub lat_sigma: f32,
    #[prost(float, tag = "11")]
    pub lon_sigma: f32,
    #[prost(float, tag = "12")]
    pub height_sigma: f32,
    #[prost(string, tag = "13")]
    pub base_station_id: ::prost::alloc::string::String,
    #[prost(float, tag = "14")]
    pub diff_age: f32,
    #[prost(float, tag = "15")]
    pub solution_age: f32,
    #[prost(uint32, tag = "16")]
    pub num_satellites_tracked: u32,
    #[prost(uint32, tag = "17")]
    pub num_satellites_used_in_solution: u32,
    #[prost(uint32, tag = "18")]
    pub num_gps_and_glonass_l1_used_in_solution: u32,
    #[prost(uint32, tag = "19")]
    pub num_gps_and_glonass_l1_and_l2_used_in_solution: u32,
    #[prost(message, optional, tag = "20")]
    pub extended_solution_status: ::core::option::Option<NovatelExtendedSolutionStatus>,
    #[prost(message, optional, tag = "21")]
    pub signal_mask: ::core::option::Option<NovatelSignalMask>,
}
impl ::prost::Name for NovatelPosition {
    const NAME: &'static str = "NovatelPosition";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPosition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelPosition".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Satellite {
    #[prost(uint32, tag = "1")]
    pub prn: u32,
    #[prost(uint32, tag = "2")]
    pub elevation: u32,
    #[prost(uint32, tag = "3")]
    pub azimuth: u32,
    #[prost(int32, tag = "4")]
    pub snr: i32,
}
impl ::prost::Name for Satellite {
    const NAME: &'static str = "Satellite";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Satellite".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Satellite".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gpgsv {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub message_id: ::prost::alloc::string::String,
    #[prost(uint32, tag = "3")]
    pub n_msgs: u32,
    #[prost(uint32, tag = "4")]
    pub msg_number: u32,
    #[prost(uint32, tag = "5")]
    pub n_satellites: u32,
    #[prost(message, repeated, tag = "6")]
    pub satellites: ::prost::alloc::vec::Vec<Satellite>,
}
impl ::prost::Name for Gpgsv {
    const NAME: &'static str = "Gpgsv";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgsv".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Gpgsv".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Time {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub clock_status: ::prost::alloc::string::String,
    #[prost(double, tag = "3")]
    pub offset: f64,
    #[prost(double, tag = "4")]
    pub offset_std: f64,
    #[prost(double, tag = "5")]
    pub utc_offset: f64,
    #[prost(uint32, tag = "6")]
    pub utc_year: u32,
    #[prost(uint32, tag = "7")]
    pub utc_month: u32,
    #[prost(uint32, tag = "8")]
    pub utc_day: u32,
    #[prost(uint32, tag = "9")]
    pub utc_hour: u32,
    #[prost(uint32, tag = "10")]
    pub utc_minute: u32,
    #[prost(uint32, tag = "11")]
    pub utc_millisecond: u32,
    #[prost(string, tag = "12")]
    pub utc_status: ::prost::alloc::string::String,
}
impl ::prost::Name for Time {
    const NAME: &'static str = "Time";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.Time".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.Time".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelRxStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(uint32, tag = "3")]
    pub error: u32,
    #[prost(uint32, tag = "4")]
    pub rxstat: u32,
    #[prost(uint32, tag = "5")]
    pub aux1stat: u32,
    #[prost(uint32, tag = "6")]
    pub aux2stat: u32,
    #[prost(uint32, tag = "7")]
    pub aux3stat: u32,
    #[prost(uint32, tag = "8")]
    pub aux4stat: u32,
}
impl ::prost::Name for NovatelRxStatus {
    const NAME: &'static str = "NovatelRxStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelRxStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelRxStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NovatelCorrectedImuData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub novatel_msg_header: ::core::option::Option<NovatelMessageHeader>,
    #[prost(uint32, tag = "3")]
    pub gps_week_num: u32,
    #[prost(double, tag = "4")]
    pub gps_seconds: f64,
    #[prost(double, tag = "5")]
    pub pitch_rate: f64,
    #[prost(double, tag = "6")]
    pub roll_rate: f64,
    #[prost(double, tag = "7")]
    pub yaw_rate: f64,
    #[prost(double, tag = "8")]
    pub lateral_acceleration: f64,
    #[prost(double, tag = "9")]
    pub longitudinal_acceleration: f64,
    #[prost(double, tag = "10")]
    pub vertical_acceleration: f64,
}
impl ::prost::Name for NovatelCorrectedImuData {
    const NAME: &'static str = "NovatelCorrectedImuData";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.novatel_gps_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelCorrectedImuData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.novatel_gps_msgs.msg.NovatelCorrectedImuData"
            .into()
    }
}
