// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectionFlag {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub flag: u32,
}
impl ::prost::Name for DetectionFlag {
    const NAME: &'static str = "DetectionFlag";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.DetectionFlag".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.DetectionFlag".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PingInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(float, tag = "2")]
    pub frequency: f32,
    #[prost(float, tag = "3")]
    pub sound_speed: f32,
    #[prost(float, repeated, tag = "4")]
    pub tx_beamwidths: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "5")]
    pub rx_beamwidths: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for PingInfo {
    const NAME: &'static str = "PingInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.PingInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.PingInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SonarDetections {
    #[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(message, optional, tag = "3")]
    pub ping_info: ::core::option::Option<PingInfo>,
    #[prost(message, repeated, tag = "4")]
    pub flags: ::prost::alloc::vec::Vec<DetectionFlag>,
    #[prost(float, repeated, tag = "5")]
    pub two_way_travel_times: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "6")]
    pub tx_delays: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "7")]
    pub intensities: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "8")]
    pub tx_angles: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "9")]
    pub rx_angles: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for SonarDetections {
    const NAME: &'static str = "SonarDetections";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarDetections".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarDetections".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Dvl {
    #[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 velocity_mode: u32,
    #[prost(uint32, tag = "4")]
    pub dvl_type: u32,
    #[prost(message, optional, tag = "5")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(double, repeated, tag = "6")]
    pub velocity_covar: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, tag = "7")]
    pub altitude: f64,
    #[prost(double, tag = "8")]
    pub course_gnd: f64,
    #[prost(double, tag = "9")]
    pub speed_gnd: f64,
    #[prost(uint32, tag = "10")]
    pub num_good_beams: u32,
    #[prost(float, tag = "11")]
    pub sound_speed: f32,
    #[prost(bool, tag = "12")]
    pub beam_ranges_valid: bool,
    #[prost(bool, tag = "13")]
    pub beam_velocities_valid: bool,
    #[prost(message, repeated, tag = "14")]
    pub beam_unit_vec: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "15")]
    pub range: ::prost::alloc::vec::Vec<f64>,
    #[prost(float, repeated, tag = "16")]
    pub range_covar: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "17")]
    pub beam_quality: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "18")]
    pub beam_velocity: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "19")]
    pub beam_velocity_covar: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for Dvl {
    const NAME: &'static str = "Dvl";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.Dvl".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.Dvl".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SonarImageData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub is_bigendian: bool,
    #[prost(uint32, tag = "3")]
    pub dtype: u32,
    #[prost(uint32, tag = "4")]
    pub beam_count: u32,
    #[prost(uint32, repeated, tag = "5")]
    pub data: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for SonarImageData {
    const NAME: &'static str = "SonarImageData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarImageData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarImageData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProjectedSonarImage {
    #[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(message, optional, tag = "3")]
    pub ping_info: ::core::option::Option<PingInfo>,
    #[prost(message, repeated, tag = "4")]
    pub beam_directions: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(float, repeated, tag = "5")]
    pub ranges: ::prost::alloc::vec::Vec<f32>,
    #[prost(message, optional, tag = "6")]
    pub image: ::core::option::Option<SonarImageData>,
}
impl ::prost::Name for ProjectedSonarImage {
    const NAME: &'static str = "ProjectedSonarImage";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.ProjectedSonarImage".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.ProjectedSonarImage"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RawSonarImage {
    #[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(message, optional, tag = "3")]
    pub ping_info: ::core::option::Option<PingInfo>,
    #[prost(float, tag = "4")]
    pub sample_rate: f32,
    #[prost(uint32, tag = "5")]
    pub samples_per_beam: u32,
    #[prost(uint32, tag = "6")]
    pub sample0: u32,
    #[prost(float, repeated, tag = "7")]
    pub tx_delays: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "8")]
    pub tx_angles: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "9")]
    pub rx_angles: ::prost::alloc::vec::Vec<f32>,
    #[prost(message, optional, tag = "10")]
    pub image: ::core::option::Option<SonarImageData>,
}
impl ::prost::Name for RawSonarImage {
    const NAME: &'static str = "RawSonarImage";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.RawSonarImage".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.RawSonarImage".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SonarRanges {
    #[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(message, optional, tag = "3")]
    pub ping_info: ::core::option::Option<PingInfo>,
    #[prost(message, repeated, tag = "4")]
    pub flags: ::prost::alloc::vec::Vec<DetectionFlag>,
    #[prost(float, repeated, tag = "5")]
    pub transmit_delays: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "6")]
    pub intensities: ::prost::alloc::vec::Vec<f32>,
    #[prost(message, repeated, tag = "7")]
    pub beam_unit_vec: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(float, repeated, tag = "8")]
    pub ranges: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for SonarRanges {
    const NAME: &'static str = "SonarRanges";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.marine_acoustic_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarRanges".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.marine_acoustic_msgs.msg.SonarRanges".into()
    }
}
