// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsRaw {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, repeated, tag = "3")]
    pub data: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for SbgGpsRaw {
    const NAME: &'static str = "SbgGpsRaw";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsRaw".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsRaw".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgMagStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub mag_x: bool,
    #[prost(bool, tag = "3")]
    pub mag_y: bool,
    #[prost(bool, tag = "4")]
    pub mag_z: bool,
    #[prost(bool, tag = "5")]
    pub accel_x: bool,
    #[prost(bool, tag = "6")]
    pub accel_y: bool,
    #[prost(bool, tag = "7")]
    pub accel_z: bool,
    #[prost(bool, tag = "8")]
    pub mags_in_range: bool,
    #[prost(bool, tag = "9")]
    pub accels_in_range: bool,
    #[prost(bool, tag = "10")]
    pub calibration: bool,
}
impl ::prost::Name for SbgMagStatus {
    const NAME: &'static str = "SbgMagStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgMagStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgMagStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgMag {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub mag: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "5")]
    pub accel: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "6")]
    pub status: ::core::option::Option<SbgMagStatus>,
}
impl ::prost::Name for SbgMag {
    const NAME: &'static str = "SbgMag";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgMag".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgMag".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgImuStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub imu_com: bool,
    #[prost(bool, tag = "3")]
    pub imu_status: bool,
    #[prost(bool, tag = "4")]
    pub imu_accel_x: bool,
    #[prost(bool, tag = "5")]
    pub imu_accel_y: bool,
    #[prost(bool, tag = "6")]
    pub imu_accel_z: bool,
    #[prost(bool, tag = "7")]
    pub imu_gyro_x: bool,
    #[prost(bool, tag = "8")]
    pub imu_gyro_y: bool,
    #[prost(bool, tag = "9")]
    pub imu_gyro_z: bool,
    #[prost(bool, tag = "10")]
    pub imu_accels_in_range: bool,
    #[prost(bool, tag = "11")]
    pub imu_gyros_in_range: bool,
}
impl ::prost::Name for SbgImuStatus {
    const NAME: &'static str = "SbgImuStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgImuStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgImuStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgImuData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub imu_status: ::core::option::Option<SbgImuStatus>,
    #[prost(message, optional, tag = "5")]
    pub accel: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "6")]
    pub gyro: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(float, tag = "7")]
    pub temp: f32,
    #[prost(message, optional, tag = "8")]
    pub delta_vel: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "9")]
    pub delta_angle: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for SbgImuData {
    const NAME: &'static str = "SbgImuData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgImuData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgImuData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgShipMotionStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub heave_valid: bool,
    #[prost(bool, tag = "3")]
    pub heave_vel_aided: bool,
    #[prost(bool, tag = "4")]
    pub surge_sway_included: bool,
    #[prost(bool, tag = "5")]
    pub period_available: bool,
    #[prost(bool, tag = "6")]
    pub period_valid: bool,
    #[prost(bool, tag = "7")]
    pub swell_mode: bool,
}
impl ::prost::Name for SbgShipMotionStatus {
    const NAME: &'static str = "SbgShipMotionStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgShipMotionStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgShipMotionStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub solution_mode: u32,
    #[prost(bool, tag = "3")]
    pub attitude_valid: bool,
    #[prost(bool, tag = "4")]
    pub heading_valid: bool,
    #[prost(bool, tag = "5")]
    pub velocity_valid: bool,
    #[prost(bool, tag = "6")]
    pub position_valid: bool,
    #[prost(bool, tag = "7")]
    pub vert_ref_used: bool,
    #[prost(bool, tag = "8")]
    pub mag_ref_used: bool,
    #[prost(bool, tag = "9")]
    pub gps1_vel_used: bool,
    #[prost(bool, tag = "10")]
    pub gps1_pos_used: bool,
    #[prost(bool, tag = "11")]
    pub gps1_hdt_used: bool,
    #[prost(bool, tag = "12")]
    pub gps2_vel_used: bool,
    #[prost(bool, tag = "13")]
    pub gps2_pos_used: bool,
    #[prost(bool, tag = "14")]
    pub gps2_hdt_used: bool,
    #[prost(bool, tag = "15")]
    pub odo_used: bool,
    #[prost(bool, tag = "16")]
    pub dvl_bt_used: bool,
    #[prost(bool, tag = "17")]
    pub dvl_wt_used: bool,
    #[prost(bool, tag = "18")]
    pub user_pos_used: bool,
    #[prost(bool, tag = "19")]
    pub user_vel_used: bool,
    #[prost(bool, tag = "20")]
    pub user_heading_used: bool,
    #[prost(bool, tag = "21")]
    pub usbl_used: bool,
    #[prost(bool, tag = "22")]
    pub air_data_used: bool,
    #[prost(bool, tag = "23")]
    pub zupt_used: bool,
    #[prost(bool, tag = "24")]
    pub align_valid: bool,
    #[prost(bool, tag = "25")]
    pub depth_used: bool,
}
impl ::prost::Name for SbgEkfStatus {
    const NAME: &'static str = "SbgEkfStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfNav {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "5")]
    pub velocity_accuracy: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, tag = "6")]
    pub latitude: f64,
    #[prost(double, tag = "7")]
    pub longitude: f64,
    #[prost(double, tag = "8")]
    pub altitude: f64,
    #[prost(float, tag = "9")]
    pub undulation: f32,
    #[prost(message, optional, tag = "10")]
    pub position_accuracy: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, optional, tag = "11")]
    pub status: ::core::option::Option<SbgEkfStatus>,
}
impl ::prost::Name for SbgEkfNav {
    const NAME: &'static str = "SbgEkfNav";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfNav".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfNav".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgAirDataStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub is_delay_time: bool,
    #[prost(bool, tag = "3")]
    pub pressure_valid: bool,
    #[prost(bool, tag = "4")]
    pub altitude_valid: bool,
    #[prost(bool, tag = "5")]
    pub pressure_diff_valid: bool,
    #[prost(bool, tag = "6")]
    pub air_speed_valid: bool,
    #[prost(bool, tag = "7")]
    pub air_temperature_valid: bool,
}
impl ::prost::Name for SbgAirDataStatus {
    const NAME: &'static str = "SbgAirDataStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgAirDataStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgAirDataStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgAirData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub status: ::core::option::Option<SbgAirDataStatus>,
    #[prost(double, tag = "5")]
    pub pressure_abs: f64,
    #[prost(double, tag = "6")]
    pub altitude: f64,
    #[prost(double, tag = "7")]
    pub pressure_diff: f64,
    #[prost(double, tag = "8")]
    pub true_air_speed: f64,
    #[prost(double, tag = "9")]
    pub air_temperature: f64,
}
impl ::prost::Name for SbgAirData {
    const NAME: &'static str = "SbgAirData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgAirData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgAirData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgMagCalib {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
}
impl ::prost::Name for SbgMagCalib {
    const NAME: &'static str = "SbgMagCalib";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgMagCalib".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgMagCalib".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfRotAccel {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub rate: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "5")]
    pub acceleration: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for SbgEkfRotAccel {
    const NAME: &'static str = "SbgEkfRotAccel";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfRotAccel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfRotAccel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgShipMotion {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(uint32, tag = "4")]
    pub heave_period: u32,
    #[prost(message, optional, tag = "5")]
    pub ship_motion: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "6")]
    pub acceleration: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "7")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "8")]
    pub status: ::core::option::Option<SbgShipMotionStatus>,
}
impl ::prost::Name for SbgShipMotion {
    const NAME: &'static str = "SbgShipMotion";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgShipMotion".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgShipMotion".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfEuler {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub angle: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "5")]
    pub accuracy: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "6")]
    pub status: ::core::option::Option<SbgEkfStatus>,
}
impl ::prost::Name for SbgEkfEuler {
    const NAME: &'static str = "SbgEkfEuler";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfEuler".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfEuler".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgOdoVel {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(bool, tag = "4")]
    pub status: bool,
    #[prost(float, tag = "5")]
    pub vel: f32,
}
impl ::prost::Name for SbgOdoVel {
    const NAME: &'static str = "SbgOdoVel";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgOdoVel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgOdoVel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgStatusCom {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub port_a: bool,
    #[prost(bool, tag = "3")]
    pub port_b: bool,
    #[prost(bool, tag = "4")]
    pub port_c: bool,
    #[prost(bool, tag = "5")]
    pub port_d: bool,
    #[prost(bool, tag = "6")]
    pub port_e: bool,
    #[prost(bool, tag = "7")]
    pub port_a_rx: bool,
    #[prost(bool, tag = "8")]
    pub port_a_tx: bool,
    #[prost(bool, tag = "9")]
    pub port_b_rx: bool,
    #[prost(bool, tag = "10")]
    pub port_b_tx: bool,
    #[prost(bool, tag = "11")]
    pub port_c_rx: bool,
    #[prost(bool, tag = "12")]
    pub port_c_tx: bool,
    #[prost(bool, tag = "13")]
    pub port_d_rx: bool,
    #[prost(bool, tag = "14")]
    pub port_d_tx: bool,
    #[prost(bool, tag = "15")]
    pub port_e_rx: bool,
    #[prost(bool, tag = "16")]
    pub port_e_tx: bool,
    #[prost(bool, tag = "17")]
    pub eth_0: bool,
    #[prost(bool, tag = "18")]
    pub eth_1: bool,
    #[prost(bool, tag = "19")]
    pub eth_2: bool,
    #[prost(bool, tag = "20")]
    pub eth_3: bool,
    #[prost(bool, tag = "21")]
    pub eth_4: bool,
    #[prost(bool, tag = "22")]
    pub eth_0_rx: bool,
    #[prost(bool, tag = "23")]
    pub eth_0_tx: bool,
    #[prost(bool, tag = "24")]
    pub eth_1_rx: bool,
    #[prost(bool, tag = "25")]
    pub eth_1_tx: bool,
    #[prost(bool, tag = "26")]
    pub eth_2_rx: bool,
    #[prost(bool, tag = "27")]
    pub eth_2_tx: bool,
    #[prost(bool, tag = "28")]
    pub eth_3_rx: bool,
    #[prost(bool, tag = "29")]
    pub eth_3_tx: bool,
    #[prost(bool, tag = "30")]
    pub eth_4_rx: bool,
    #[prost(bool, tag = "31")]
    pub eth_4_tx: bool,
    #[prost(bool, tag = "32")]
    pub can_rx: bool,
    #[prost(bool, tag = "33")]
    pub can_tx: bool,
    #[prost(uint32, tag = "34")]
    pub can_status: u32,
}
impl ::prost::Name for SbgStatusCom {
    const NAME: &'static str = "SbgStatusCom";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgStatusCom".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgStatusCom".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgUtcTimeStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub clock_stable: bool,
    #[prost(uint32, tag = "3")]
    pub clock_status: u32,
    #[prost(bool, tag = "4")]
    pub clock_utc_sync: bool,
    #[prost(uint32, tag = "5")]
    pub clock_utc_status: u32,
}
impl ::prost::Name for SbgUtcTimeStatus {
    const NAME: &'static str = "SbgUtcTimeStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgUtcTimeStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgUtcTimeStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgUtcTime {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub clock_status: ::core::option::Option<SbgUtcTimeStatus>,
    #[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 nanosec: u32,
    #[prost(uint32, tag = "12")]
    pub gps_tow: u32,
    #[prost(float, tag = "13")]
    pub clk_bias_std: f32,
    #[prost(float, tag = "14")]
    pub clk_sf_error_std: f32,
    #[prost(float, tag = "15")]
    pub clk_residual_error: f32,
}
impl ::prost::Name for SbgUtcTime {
    const NAME: &'static str = "SbgUtcTime";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgUtcTime".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgUtcTime".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsPosStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub status: u32,
    #[prost(uint32, tag = "3")]
    pub r#type: u32,
    #[prost(uint32, tag = "4")]
    pub ifm: u32,
    #[prost(uint32, tag = "5")]
    pub spoofing: u32,
    #[prost(uint32, tag = "6")]
    pub osnma: u32,
    #[prost(bool, tag = "7")]
    pub gps_l1_used: bool,
    #[prost(bool, tag = "8")]
    pub gps_l2_used: bool,
    #[prost(bool, tag = "9")]
    pub gps_l5_used: bool,
    #[prost(bool, tag = "10")]
    pub glo_l1_used: bool,
    #[prost(bool, tag = "11")]
    pub glo_l2_used: bool,
    #[prost(bool, tag = "12")]
    pub glo_l3_used: bool,
    #[prost(bool, tag = "13")]
    pub gal_e1_used: bool,
    #[prost(bool, tag = "14")]
    pub gal_e5a_used: bool,
    #[prost(bool, tag = "15")]
    pub gal_e5b_used: bool,
    #[prost(bool, tag = "16")]
    pub gal_e5alt_used: bool,
    #[prost(bool, tag = "17")]
    pub gal_e6_used: bool,
    #[prost(bool, tag = "18")]
    pub bds_b1_used: bool,
    #[prost(bool, tag = "19")]
    pub bds_b2_used: bool,
    #[prost(bool, tag = "20")]
    pub bds_b3_used: bool,
    #[prost(bool, tag = "21")]
    pub qzss_l1_used: bool,
    #[prost(bool, tag = "22")]
    pub qzss_l2_used: bool,
    #[prost(bool, tag = "23")]
    pub qzss_l5_used: bool,
}
impl ::prost::Name for SbgGpsPosStatus {
    const NAME: &'static str = "SbgGpsPosStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsPosStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsPosStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsHdt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(uint32, tag = "4")]
    pub status: u32,
    #[prost(uint32, tag = "5")]
    pub tow: u32,
    #[prost(float, tag = "6")]
    pub true_heading: f32,
    #[prost(float, tag = "7")]
    pub true_heading_acc: f32,
    #[prost(float, tag = "8")]
    pub pitch: f32,
    #[prost(float, tag = "9")]
    pub pitch_acc: f32,
    #[prost(float, tag = "10")]
    pub baseline: f32,
    #[prost(uint32, tag = "11")]
    pub num_sv_tracked: u32,
    #[prost(uint32, tag = "12")]
    pub num_sv_used: u32,
}
impl ::prost::Name for SbgGpsHdt {
    const NAME: &'static str = "SbgGpsHdt";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsHdt".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsHdt".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsVelStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub vel_status: u32,
    #[prost(uint32, tag = "3")]
    pub vel_type: u32,
}
impl ::prost::Name for SbgGpsVelStatus {
    const NAME: &'static str = "SbgGpsVelStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsVelStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsVelStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgImuShort {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub imu_status: ::core::option::Option<SbgImuStatus>,
    #[prost(message, optional, tag = "5")]
    pub delta_velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, optional, tag = "6")]
    pub delta_angle: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(int32, tag = "7")]
    pub temperature: i32,
}
impl ::prost::Name for SbgImuShort {
    const NAME: &'static str = "SbgImuShort";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgImuShort".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgImuShort".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfQuat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub quaternion: ::core::option::Option<super::super::geometry_msgs::msg::Quaternion>,
    #[prost(message, optional, tag = "5")]
    pub accuracy: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "6")]
    pub status: ::core::option::Option<SbgEkfStatus>,
}
impl ::prost::Name for SbgEkfQuat {
    const NAME: &'static str = "SbgEkfQuat";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfQuat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfQuat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsVel {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub status: ::core::option::Option<SbgGpsVelStatus>,
    #[prost(uint32, tag = "5")]
    pub gps_tow: u32,
    #[prost(message, optional, tag = "6")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "7")]
    pub velocity_accuracy: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(float, tag = "8")]
    pub course: f32,
    #[prost(float, tag = "9")]
    pub course_acc: f32,
}
impl ::prost::Name for SbgGpsVel {
    const NAME: &'static str = "SbgGpsVel";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsVel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsVel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgStatusAiding {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub gps1_pos_recv: bool,
    #[prost(bool, tag = "3")]
    pub gps1_vel_recv: bool,
    #[prost(bool, tag = "4")]
    pub gps1_hdt_recv: bool,
    #[prost(bool, tag = "5")]
    pub gps1_utc_recv: bool,
    #[prost(bool, tag = "6")]
    pub gps2_pos_recv: bool,
    #[prost(bool, tag = "7")]
    pub gps2_vel_recv: bool,
    #[prost(bool, tag = "8")]
    pub gps2_hdt_recv: bool,
    #[prost(bool, tag = "9")]
    pub gps2_utc_recv: bool,
    #[prost(bool, tag = "10")]
    pub mag_recv: bool,
    #[prost(bool, tag = "11")]
    pub odo_recv: bool,
    #[prost(bool, tag = "12")]
    pub dvl_recv: bool,
    #[prost(bool, tag = "13")]
    pub usbl_recv: bool,
    #[prost(bool, tag = "14")]
    pub depth_recv: bool,
    #[prost(bool, tag = "15")]
    pub air_data_recv: bool,
    #[prost(bool, tag = "16")]
    pub user_pos_recv: bool,
    #[prost(bool, tag = "17")]
    pub user_vel_recv: bool,
    #[prost(bool, tag = "18")]
    pub user_heading_recv: bool,
}
impl ::prost::Name for SbgStatusAiding {
    const NAME: &'static str = "SbgStatusAiding";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgStatusAiding".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgStatusAiding".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEvent {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(bool, tag = "4")]
    pub overflow: bool,
    #[prost(bool, tag = "5")]
    pub offset_0_valid: bool,
    #[prost(bool, tag = "6")]
    pub offset_1_valid: bool,
    #[prost(bool, tag = "7")]
    pub offset_2_valid: bool,
    #[prost(bool, tag = "8")]
    pub offset_3_valid: bool,
    #[prost(uint32, tag = "9")]
    pub time_offset_0: u32,
    #[prost(uint32, tag = "10")]
    pub time_offset_1: u32,
    #[prost(uint32, tag = "11")]
    pub time_offset_2: u32,
    #[prost(uint32, tag = "12")]
    pub time_offset_3: u32,
}
impl ::prost::Name for SbgEvent {
    const NAME: &'static str = "SbgEvent";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEvent".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEvent".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgStatusGeneral {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub main_power: bool,
    #[prost(bool, tag = "3")]
    pub imu_power: bool,
    #[prost(bool, tag = "4")]
    pub gps_power: bool,
    #[prost(bool, tag = "5")]
    pub settings: bool,
    #[prost(bool, tag = "6")]
    pub temperature: bool,
    #[prost(bool, tag = "7")]
    pub datalogger: bool,
    #[prost(bool, tag = "8")]
    pub cpu: bool,
}
impl ::prost::Name for SbgStatusGeneral {
    const NAME: &'static str = "SbgStatusGeneral";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgStatusGeneral".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgStatusGeneral".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgGpsPos {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub status: ::core::option::Option<SbgGpsPosStatus>,
    #[prost(uint32, tag = "5")]
    pub gps_tow: u32,
    #[prost(double, tag = "6")]
    pub latitude: f64,
    #[prost(double, tag = "7")]
    pub longitude: f64,
    #[prost(double, tag = "8")]
    pub altitude: f64,
    #[prost(float, tag = "9")]
    pub undulation: f32,
    #[prost(message, optional, tag = "10")]
    pub position_accuracy: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(uint32, tag = "11")]
    pub num_sv_tracked: u32,
    #[prost(uint32, tag = "12")]
    pub num_sv_used: u32,
    #[prost(uint32, tag = "13")]
    pub base_station_id: u32,
    #[prost(uint32, tag = "14")]
    pub diff_age: u32,
}
impl ::prost::Name for SbgGpsPos {
    const NAME: &'static str = "SbgGpsPos";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgGpsPos".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgGpsPos".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub status_general: ::core::option::Option<SbgStatusGeneral>,
    #[prost(message, optional, tag = "5")]
    pub status_com: ::core::option::Option<SbgStatusCom>,
    #[prost(message, optional, tag = "6")]
    pub status_aiding: ::core::option::Option<SbgStatusAiding>,
}
impl ::prost::Name for SbgStatus {
    const NAME: &'static str = "SbgStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SbgEkfVelBody {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub ros2_header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "3")]
    pub time_stamp: u32,
    #[prost(message, optional, tag = "4")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "5")]
    pub velocity_accuracy: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, optional, tag = "6")]
    pub status: ::core::option::Option<SbgEkfStatus>,
}
impl ::prost::Name for SbgEkfVelBody {
    const NAME: &'static str = "SbgEkfVelBody";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sbg_driver.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sbg_driver.msg.SbgEkfVelBody".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sbg_driver.msg.SbgEkfVelBody".into()
    }
}
