// This file is @generated by prost-build.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct IbeoDataHeader {
    #[prost(uint32, tag = "1")]
    pub previous_message_size: u32,
    #[prost(uint32, tag = "2")]
    pub message_size: u32,
    #[prost(uint32, tag = "3")]
    pub device_id: u32,
    #[prost(uint32, tag = "4")]
    pub data_type_id: u32,
    #[prost(message, optional, tag = "5")]
    pub stamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
}
impl ::prost::Name for IbeoDataHeader {
    const NAME: &'static str = "IbeoDataHeader";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.IbeoDataHeader".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.IbeoDataHeader".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ContourPointSigma {
    #[prost(int32, tag = "1")]
    pub x: i32,
    #[prost(int32, tag = "2")]
    pub y: i32,
    #[prost(uint32, tag = "3")]
    pub x_sigma: u32,
    #[prost(uint32, tag = "4")]
    pub y_sigma: u32,
}
impl ::prost::Name for ContourPointSigma {
    const NAME: &'static str = "ContourPointSigma";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ContourPointSigma".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ContourPointSigma".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Point2Di {
    #[prost(int32, tag = "1")]
    pub x: i32,
    #[prost(int32, tag = "2")]
    pub y: i32,
}
impl ::prost::Name for Point2Di {
    const NAME: &'static str = "Point2Di";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Di".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Di".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Point2Dui {
    #[prost(uint32, tag = "1")]
    pub x: u32,
    #[prost(uint32, tag = "2")]
    pub y: u32,
}
impl ::prost::Name for Point2Dui {
    const NAME: &'static str = "Point2Dui";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Dui".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Dui".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedProperties {
    #[prost(uint32, tag = "1")]
    pub object_age: u32,
    #[prost(uint32, tag = "2")]
    pub hidden_status_age: u32,
    #[prost(uint32, tag = "3")]
    pub object_phase: u32,
    #[prost(uint32, tag = "4")]
    pub dynamic_property: u32,
    #[prost(uint32, tag = "5")]
    pub relative_time_of_measure: u32,
    #[prost(message, optional, tag = "6")]
    pub position_closest_point: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "7")]
    pub relative_velocity: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "8")]
    pub relative_velocity_sigma: ::core::option::Option<Point2Dui>,
    #[prost(uint32, tag = "9")]
    pub classification: u32,
    #[prost(uint32, tag = "10")]
    pub classification_age: u32,
    #[prost(message, optional, tag = "11")]
    pub object_box_size: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "12")]
    pub object_box_size_sigma: ::core::option::Option<Point2Dui>,
    #[prost(int32, tag = "13")]
    pub object_box_orientation: i32,
    #[prost(uint32, tag = "14")]
    pub object_box_orientation_sigma: u32,
    #[prost(uint32, tag = "15")]
    pub tracking_point_location: u32,
    #[prost(message, optional, tag = "16")]
    pub tracking_point_coordinate: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "17")]
    pub tracking_point_coordinate_sigma: ::core::option::Option<Point2Dui>,
    #[prost(message, optional, tag = "18")]
    pub velocity: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "19")]
    pub velocity_sigma: ::core::option::Option<Point2Dui>,
    #[prost(message, optional, tag = "20")]
    pub acceleration: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "21")]
    pub acceleration_sigma: ::core::option::Option<Point2Dui>,
    #[prost(int32, tag = "22")]
    pub yaw_rate: i32,
    #[prost(uint32, tag = "23")]
    pub yaw_rate_sigma: u32,
    #[prost(uint32, tag = "24")]
    pub number_of_contour_points: u32,
    #[prost(message, repeated, tag = "25")]
    pub contour_point_list: ::prost::alloc::vec::Vec<ContourPointSigma>,
}
impl ::prost::Name for TrackedProperties {
    const NAME: &'static str = "TrackedProperties";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.TrackedProperties".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.TrackedProperties".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UntrackedProperties {
    #[prost(uint32, tag = "1")]
    pub relative_time_of_measurement: u32,
    #[prost(message, optional, tag = "2")]
    pub position_closest_point: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "3")]
    pub object_box_size: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "4")]
    pub object_box_size_sigma: ::core::option::Option<Point2Dui>,
    #[prost(int32, tag = "5")]
    pub object_box_orientation: i32,
    #[prost(uint32, tag = "6")]
    pub object_box_orientation_sigma: u32,
    #[prost(message, optional, tag = "7")]
    pub tracking_point_coordinate: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "8")]
    pub tracking_point_coordinate_sigma: ::core::option::Option<Point2Dui>,
    #[prost(uint32, tag = "9")]
    pub number_of_contour_points: u32,
    #[prost(message, repeated, tag = "10")]
    pub contour_point_list: ::prost::alloc::vec::Vec<ContourPointSigma>,
}
impl ::prost::Name for UntrackedProperties {
    const NAME: &'static str = "UntrackedProperties";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.UntrackedProperties".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.UntrackedProperties".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object2271 {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(bool, tag = "2")]
    pub tracked_properties_available: bool,
    #[prost(bool, tag = "3")]
    pub untracked_properties_available: bool,
    #[prost(message, optional, tag = "4")]
    pub tracked_properties: ::core::option::Option<TrackedProperties>,
    #[prost(message, optional, tag = "5")]
    pub untracked_properties: ::core::option::Option<UntrackedProperties>,
}
impl ::prost::Name for Object2271 {
    const NAME: &'static str = "Object2271";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Object2271".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Object2271".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectData2271 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub start_scan_timestamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub scan_number: u32,
    #[prost(uint32, tag = "5")]
    pub number_of_objects: u32,
    #[prost(message, repeated, tag = "6")]
    pub object_list: ::prost::alloc::vec::Vec<Object2271>,
}
impl ::prost::Name for ObjectData2271 {
    const NAME: &'static str = "ObjectData2271";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2271".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2271".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeviceStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(uint32, tag = "3")]
    pub scanner_type: u32,
    #[prost(float, tag = "4")]
    pub sensor_temperature: f32,
    #[prost(float, tag = "5")]
    pub frequency: f32,
}
impl ::prost::Name for DeviceStatus {
    const NAME: &'static str = "DeviceStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.DeviceStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.DeviceStatus".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Point2Df {
    #[prost(float, tag = "1")]
    pub x: f32,
    #[prost(float, tag = "2")]
    pub y: f32,
}
impl ::prost::Name for Point2Df {
    const NAME: &'static str = "Point2Df";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Df".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Point2Df".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object2225 {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub age: u32,
    #[prost(message, optional, tag = "3")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(uint32, tag = "4")]
    pub hidden_status_age: u32,
    #[prost(uint32, tag = "5")]
    pub classification: u32,
    #[prost(uint32, tag = "6")]
    pub classification_certainty: u32,
    #[prost(uint32, tag = "7")]
    pub classification_age: u32,
    #[prost(message, optional, tag = "8")]
    pub bounding_box_center: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "9")]
    pub bounding_box_size: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "10")]
    pub object_box_center: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "11")]
    pub object_box_center_sigma: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "12")]
    pub object_box_size: ::core::option::Option<Point2Df>,
    #[prost(float, tag = "13")]
    pub yaw_angle: f32,
    #[prost(message, optional, tag = "14")]
    pub relative_velocity: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "15")]
    pub relative_velocity_sigma: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "16")]
    pub absolute_velocity: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "17")]
    pub absolute_velocity_sigma: ::core::option::Option<Point2Df>,
    #[prost(uint32, tag = "18")]
    pub number_of_contour_points: u32,
    #[prost(uint32, tag = "19")]
    pub closest_point_index: u32,
    #[prost(message, repeated, tag = "20")]
    pub contour_point_list: ::prost::alloc::vec::Vec<Point2Df>,
}
impl ::prost::Name for Object2225 {
    const NAME: &'static str = "Object2225";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Object2225".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Object2225".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Size2D {
    #[prost(uint32, tag = "1")]
    pub size_x: u32,
    #[prost(uint32, tag = "2")]
    pub size_y: u32,
}
impl ::prost::Name for Size2D {
    const NAME: &'static str = "Size2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Size2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Size2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object2221 {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub age: u32,
    #[prost(uint32, tag = "3")]
    pub prediction_age: u32,
    #[prost(uint32, tag = "4")]
    pub relative_timestamp: u32,
    #[prost(message, optional, tag = "5")]
    pub reference_point: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "6")]
    pub reference_point_sigma: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "7")]
    pub closest_point: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "8")]
    pub bounding_box_center: ::core::option::Option<Point2Di>,
    #[prost(uint32, tag = "9")]
    pub bounding_box_width: u32,
    #[prost(uint32, tag = "10")]
    pub bounding_box_length: u32,
    #[prost(message, optional, tag = "11")]
    pub object_box_center: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "12")]
    pub object_box_size: ::core::option::Option<Size2D>,
    #[prost(int32, tag = "13")]
    pub object_box_orientation: i32,
    #[prost(message, optional, tag = "14")]
    pub absolute_velocity: ::core::option::Option<Point2Di>,
    #[prost(message, optional, tag = "15")]
    pub absolute_velocity_sigma: ::core::option::Option<Size2D>,
    #[prost(message, optional, tag = "16")]
    pub relative_velocity: ::core::option::Option<Point2Di>,
    #[prost(uint32, tag = "17")]
    pub classification: u32,
    #[prost(uint32, tag = "18")]
    pub classification_age: u32,
    #[prost(uint32, tag = "19")]
    pub classification_certainty: u32,
    #[prost(uint32, tag = "20")]
    pub number_of_contour_points: u32,
    #[prost(message, repeated, tag = "21")]
    pub contour_point_list: ::prost::alloc::vec::Vec<Point2Di>,
}
impl ::prost::Name for Object2221 {
    const NAME: &'static str = "Object2221";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Object2221".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Object2221".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectData2221 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub scan_start_timestamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub number_of_objects: u32,
    #[prost(message, repeated, tag = "5")]
    pub object_list: ::prost::alloc::vec::Vec<Object2221>,
}
impl ::prost::Name for ObjectData2221 {
    const NAME: &'static str = "ObjectData2221";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2221".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2221".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct MountingPositionF {
    #[prost(float, tag = "1")]
    pub yaw_angle: f32,
    #[prost(float, tag = "2")]
    pub pitch_angle: f32,
    #[prost(float, tag = "3")]
    pub roll_angle: f32,
    #[prost(float, tag = "4")]
    pub x_position: f32,
    #[prost(float, tag = "5")]
    pub y_position: f32,
    #[prost(float, tag = "6")]
    pub z_position: f32,
}
impl ::prost::Name for MountingPositionF {
    const NAME: &'static str = "MountingPositionF";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.MountingPositionF".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.MountingPositionF".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ResolutionInfo {
    #[prost(float, tag = "1")]
    pub resolution_start_angle: f32,
    #[prost(float, tag = "2")]
    pub resolution: f32,
}
impl ::prost::Name for ResolutionInfo {
    const NAME: &'static str = "ResolutionInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ResolutionInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ResolutionInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScannerInfo2205 {
    #[prost(uint32, tag = "1")]
    pub device_id: u32,
    #[prost(uint32, tag = "2")]
    pub scanner_type: u32,
    #[prost(uint32, tag = "3")]
    pub scan_number: u32,
    #[prost(float, tag = "4")]
    pub start_angle: f32,
    #[prost(float, tag = "5")]
    pub end_angle: f32,
    #[prost(message, optional, tag = "6")]
    pub scan_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "7")]
    pub scan_end_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "8")]
    pub scan_start_time_from_device: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "9")]
    pub scan_end_time_from_device: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(float, tag = "10")]
    pub scan_frequency: f32,
    #[prost(float, tag = "11")]
    pub beam_tilt: f32,
    #[prost(uint32, tag = "12")]
    pub scan_flags: u32,
    #[prost(message, optional, tag = "13")]
    pub mounting_position: ::core::option::Option<MountingPositionF>,
    #[prost(message, repeated, tag = "14")]
    pub resolutions: ::prost::alloc::vec::Vec<ResolutionInfo>,
}
impl ::prost::Name for ScannerInfo2205 {
    const NAME: &'static str = "ScannerInfo2205";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScannerInfo2205".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScannerInfo2205".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScanPoint2205 {
    #[prost(float, tag = "1")]
    pub x_position: f32,
    #[prost(float, tag = "2")]
    pub y_position: f32,
    #[prost(float, tag = "3")]
    pub z_position: f32,
    #[prost(float, tag = "4")]
    pub echo_width: f32,
    #[prost(uint32, tag = "5")]
    pub device_id: u32,
    #[prost(uint32, tag = "6")]
    pub layer: u32,
    #[prost(uint32, tag = "7")]
    pub echo: u32,
    #[prost(uint32, tag = "8")]
    pub time_offset: u32,
    #[prost(bool, tag = "9")]
    pub ground: bool,
    #[prost(bool, tag = "10")]
    pub dirt: bool,
    #[prost(bool, tag = "11")]
    pub precipitation: bool,
    #[prost(bool, tag = "12")]
    pub transparent: bool,
}
impl ::prost::Name for ScanPoint2205 {
    const NAME: &'static str = "ScanPoint2205";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2205".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2205".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object2270 {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub age: u32,
    #[prost(uint32, tag = "3")]
    pub prediction_age: u32,
    #[prost(uint32, tag = "4")]
    pub relative_moment_of_measurement: u32,
    #[prost(uint32, tag = "5")]
    pub reference_point_location: u32,
    #[prost(int32, tag = "6")]
    pub reference_point_position_x: i32,
    #[prost(int32, tag = "7")]
    pub reference_point_position_y: i32,
    #[prost(uint32, tag = "8")]
    pub reference_point_position_sigma_x: u32,
    #[prost(uint32, tag = "9")]
    pub reference_point_position_sigma_y: u32,
    #[prost(int32, tag = "10")]
    pub contour_points_cog_x: i32,
    #[prost(int32, tag = "11")]
    pub contour_points_cog_y: i32,
    #[prost(uint32, tag = "12")]
    pub object_box_length: u32,
    #[prost(uint32, tag = "13")]
    pub object_box_width: u32,
    #[prost(int32, tag = "14")]
    pub object_box_orientation_angle: i32,
    #[prost(int32, tag = "15")]
    pub object_box_orientation_angle_sigma: i32,
    #[prost(int32, tag = "16")]
    pub absolute_velocity_x: i32,
    #[prost(int32, tag = "17")]
    pub absolute_velocity_y: i32,
    #[prost(uint32, tag = "18")]
    pub absolute_velocity_sigma_x: u32,
    #[prost(uint32, tag = "19")]
    pub absolute_velocity_sigma_y: u32,
    #[prost(int32, tag = "20")]
    pub relative_velocity_x: i32,
    #[prost(int32, tag = "21")]
    pub relative_velocity_y: i32,
    #[prost(uint32, tag = "22")]
    pub relative_velocity_sigma_x: u32,
    #[prost(uint32, tag = "23")]
    pub relative_velocity_sigma_y: u32,
    #[prost(uint32, tag = "24")]
    pub classification: u32,
    #[prost(uint32, tag = "25")]
    pub tracking_model: u32,
    #[prost(bool, tag = "26")]
    pub mobile_detected: bool,
    #[prost(bool, tag = "27")]
    pub track_valid: bool,
    #[prost(uint32, tag = "28")]
    pub classification_age: u32,
    #[prost(uint32, tag = "29")]
    pub classification_confidence: u32,
    #[prost(uint32, tag = "30")]
    pub number_of_contour_points: u32,
    #[prost(message, repeated, tag = "31")]
    pub contour_point_list: ::prost::alloc::vec::Vec<Point2Di>,
}
impl ::prost::Name for Object2270 {
    const NAME: &'static str = "Object2270";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Object2270".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Object2270".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectData2270 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub start_scan_timestamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub object_list_number: u32,
    #[prost(uint32, tag = "5")]
    pub number_of_objects: u32,
    #[prost(message, repeated, tag = "6")]
    pub object_list: ::prost::alloc::vec::Vec<Object2270>,
}
impl ::prost::Name for ObjectData2270 {
    const NAME: &'static str = "ObjectData2270";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2270".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2270".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScanPoint2202 {
    #[prost(uint32, tag = "1")]
    pub layer: u32,
    #[prost(uint32, tag = "2")]
    pub echo: u32,
    #[prost(bool, tag = "3")]
    pub transparent_point: bool,
    #[prost(bool, tag = "4")]
    pub clutter_atmospheric: bool,
    #[prost(bool, tag = "5")]
    pub ground: bool,
    #[prost(bool, tag = "6")]
    pub dirt: bool,
    #[prost(int32, tag = "7")]
    pub horizontal_angle: i32,
    #[prost(uint32, tag = "8")]
    pub radial_distance: u32,
    #[prost(uint32, tag = "9")]
    pub echo_pulse_width: u32,
}
impl ::prost::Name for ScanPoint2202 {
    const NAME: &'static str = "ScanPoint2202";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2202".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2202".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanData2202 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(uint32, tag = "3")]
    pub scan_number: u32,
    #[prost(uint32, tag = "4")]
    pub scanner_status: u32,
    #[prost(uint32, tag = "5")]
    pub sync_phase_offset: u32,
    #[prost(message, optional, tag = "6")]
    pub scan_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "7")]
    pub scan_end_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "8")]
    pub angle_ticks_per_rotation: u32,
    #[prost(int32, tag = "9")]
    pub start_angle_ticks: i32,
    #[prost(int32, tag = "10")]
    pub end_angle_ticks: i32,
    #[prost(uint32, tag = "11")]
    pub scan_points_count: u32,
    #[prost(int32, tag = "12")]
    pub mounting_yaw_angle_ticks: i32,
    #[prost(int32, tag = "13")]
    pub mounting_pitch_angle_ticks: i32,
    #[prost(int32, tag = "14")]
    pub mounting_roll_angle_ticks: i32,
    #[prost(int32, tag = "15")]
    pub mounting_position_x: i32,
    #[prost(int32, tag = "16")]
    pub mounting_position_y: i32,
    #[prost(int32, tag = "17")]
    pub mounting_position_z: i32,
    #[prost(bool, tag = "18")]
    pub ground_labeled: bool,
    #[prost(bool, tag = "19")]
    pub dirt_labeled: bool,
    #[prost(bool, tag = "20")]
    pub rain_labeled: bool,
    #[prost(uint32, tag = "21")]
    pub mirror_side: u32,
    #[prost(message, repeated, tag = "22")]
    pub scan_point_list: ::prost::alloc::vec::Vec<ScanPoint2202>,
}
impl ::prost::Name for ScanData2202 {
    const NAME: &'static str = "ScanData2202";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2202".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2202".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScanPoint2208 {
    #[prost(uint32, tag = "1")]
    pub echo: u32,
    #[prost(uint32, tag = "2")]
    pub layer: u32,
    #[prost(bool, tag = "3")]
    pub transparent_point: bool,
    #[prost(bool, tag = "4")]
    pub clutter_atmospheric: bool,
    #[prost(bool, tag = "5")]
    pub ground: bool,
    #[prost(bool, tag = "6")]
    pub dirt: bool,
    #[prost(int32, tag = "7")]
    pub horizontal_angle: i32,
    #[prost(uint32, tag = "8")]
    pub radial_distance: u32,
    #[prost(uint32, tag = "9")]
    pub echo_pulse_width: u32,
}
impl ::prost::Name for ScanPoint2208 {
    const NAME: &'static str = "ScanPoint2208";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2208".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2208".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object2280 {
    #[prost(uint32, tag = "1")]
    pub id: u32,
    #[prost(uint32, tag = "2")]
    pub tracking_model: u32,
    #[prost(bool, tag = "3")]
    pub mobility_of_dyn_object_detected: bool,
    #[prost(bool, tag = "4")]
    pub motion_model_validated: bool,
    #[prost(uint32, tag = "5")]
    pub object_age: u32,
    #[prost(message, optional, tag = "6")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(uint32, tag = "7")]
    pub object_prediction_age: u32,
    #[prost(uint32, tag = "8")]
    pub classification: u32,
    #[prost(uint32, tag = "9")]
    pub classification_certainty: u32,
    #[prost(uint32, tag = "10")]
    pub classification_age: u32,
    #[prost(message, optional, tag = "11")]
    pub object_box_center: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "12")]
    pub object_box_center_sigma: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "13")]
    pub object_box_size: ::core::option::Option<Point2Df>,
    #[prost(float, tag = "14")]
    pub object_box_orientation_angle: f32,
    #[prost(float, tag = "15")]
    pub object_box_orientation_angle_sigma: f32,
    #[prost(message, optional, tag = "16")]
    pub relative_velocity: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "17")]
    pub relative_velocity_sigma: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "18")]
    pub absolute_velocity: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "19")]
    pub absolute_velocity_sigma: ::core::option::Option<Point2Df>,
    #[prost(uint32, tag = "20")]
    pub number_of_contour_points: u32,
    #[prost(uint32, tag = "21")]
    pub closest_point_index: u32,
    #[prost(uint32, tag = "22")]
    pub reference_point_location: u32,
    #[prost(message, optional, tag = "23")]
    pub reference_point_coordinate: ::core::option::Option<Point2Df>,
    #[prost(message, optional, tag = "24")]
    pub reference_point_coordinate_sigma: ::core::option::Option<Point2Df>,
    #[prost(float, tag = "25")]
    pub reference_point_position_correction_coefficient: f32,
    #[prost(uint32, tag = "26")]
    pub object_priority: u32,
    #[prost(float, tag = "27")]
    pub object_existence_measurement: f32,
    #[prost(message, repeated, tag = "28")]
    pub contour_point_list: ::prost::alloc::vec::Vec<Point2Df>,
}
impl ::prost::Name for Object2280 {
    const NAME: &'static str = "Object2280";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Object2280".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Object2280".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectData2280 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub mid_scan_timestamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub number_of_objects: u32,
    #[prost(message, repeated, tag = "5")]
    pub objects: ::prost::alloc::vec::Vec<Object2280>,
}
impl ::prost::Name for ObjectData2280 {
    const NAME: &'static str = "ObjectData2280";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2280".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2280".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ErrorWarning {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(bool, tag = "3")]
    pub err_internal_error: bool,
    #[prost(bool, tag = "4")]
    pub err_motor_1_fault: bool,
    #[prost(bool, tag = "5")]
    pub err_buffer_error_xmt_incomplete: bool,
    #[prost(bool, tag = "6")]
    pub err_buffer_error_overflow: bool,
    #[prost(bool, tag = "7")]
    pub err_apd_over_temperature: bool,
    #[prost(bool, tag = "8")]
    pub err_apd_under_temperature: bool,
    #[prost(bool, tag = "9")]
    pub err_apd_temperature_sensor_defect: bool,
    #[prost(bool, tag = "10")]
    pub err_motor_2_fault: bool,
    #[prost(bool, tag = "11")]
    pub err_motor_3_fault: bool,
    #[prost(bool, tag = "12")]
    pub err_motor_4_fault: bool,
    #[prost(bool, tag = "13")]
    pub err_motor_5_fault: bool,
    #[prost(bool, tag = "14")]
    pub err_int_no_scan_data: bool,
    #[prost(bool, tag = "15")]
    pub err_int_communication_error: bool,
    #[prost(bool, tag = "16")]
    pub err_int_incorrect_scan_data: bool,
    #[prost(bool, tag = "17")]
    pub err_config_fpga_not_configurable: bool,
    #[prost(bool, tag = "18")]
    pub err_config_incorrect_config_data: bool,
    #[prost(bool, tag = "19")]
    pub err_config_contains_incorrect_params: bool,
    #[prost(bool, tag = "20")]
    pub err_timeout_data_processing: bool,
    #[prost(bool, tag = "21")]
    pub err_timeout_env_model_computation_reset: bool,
    #[prost(bool, tag = "22")]
    pub wrn_int_communication_error: bool,
    #[prost(bool, tag = "23")]
    pub wrn_low_temperature: bool,
    #[prost(bool, tag = "24")]
    pub wrn_high_temperature: bool,
    #[prost(bool, tag = "25")]
    pub wrn_int_motor_1: bool,
    #[prost(bool, tag = "26")]
    pub wrn_sync_error: bool,
    #[prost(bool, tag = "27")]
    pub wrn_laser_1_start_pulse_missing: bool,
    #[prost(bool, tag = "28")]
    pub wrn_laser_2_start_pulse_missing: bool,
    #[prost(bool, tag = "29")]
    pub wrn_can_interface_blocked: bool,
    #[prost(bool, tag = "30")]
    pub wrn_eth_interface_blocked: bool,
    #[prost(bool, tag = "31")]
    pub wrn_incorrect_can_data_rcvd: bool,
    #[prost(bool, tag = "32")]
    pub wrn_int_incorrect_scan_data: bool,
    #[prost(bool, tag = "33")]
    pub wrn_eth_unkwn_incomplete_data: bool,
    #[prost(bool, tag = "34")]
    pub wrn_incorrect_or_forbidden_cmd_rcvd: bool,
    #[prost(bool, tag = "35")]
    pub wrn_memory_access_failure: bool,
    #[prost(bool, tag = "36")]
    pub wrn_int_overflow: bool,
    #[prost(bool, tag = "37")]
    pub wrn_ego_motion_data_missing: bool,
    #[prost(bool, tag = "38")]
    pub wrn_incorrect_mounting_params: bool,
    #[prost(bool, tag = "39")]
    pub wrn_no_obj_comp_due_to_scan_freq: bool,
}
impl ::prost::Name for ErrorWarning {
    const NAME: &'static str = "ErrorWarning";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ErrorWarning".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ErrorWarning".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanData2205 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub scan_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub scan_end_time_offset: u32,
    #[prost(bool, tag = "5")]
    pub fused_scan: bool,
    #[prost(uint32, tag = "6")]
    pub mirror_side: u32,
    #[prost(uint32, tag = "7")]
    pub coordinate_system: u32,
    #[prost(uint32, tag = "8")]
    pub scan_number: u32,
    #[prost(uint32, tag = "9")]
    pub scan_points: u32,
    #[prost(uint32, tag = "10")]
    pub number_of_scanner_infos: u32,
    #[prost(message, repeated, tag = "11")]
    pub scanner_info_list: ::prost::alloc::vec::Vec<ScannerInfo2205>,
    #[prost(message, repeated, tag = "12")]
    pub scan_point_list: ::prost::alloc::vec::Vec<ScanPoint2205>,
}
impl ::prost::Name for ScanData2205 {
    const NAME: &'static str = "ScanData2205";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2205".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2205".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScanPoint2204 {
    #[prost(float, tag = "1")]
    pub x_position: f32,
    #[prost(float, tag = "2")]
    pub y_position: f32,
    #[prost(float, tag = "3")]
    pub z_position: f32,
    #[prost(float, tag = "4")]
    pub echo_width: f32,
    #[prost(uint32, tag = "5")]
    pub device_id: u32,
    #[prost(uint32, tag = "6")]
    pub layer: u32,
    #[prost(uint32, tag = "7")]
    pub echo: u32,
    #[prost(uint32, tag = "8")]
    pub time_offset: u32,
    #[prost(bool, tag = "9")]
    pub ground: bool,
    #[prost(bool, tag = "10")]
    pub dirt: bool,
    #[prost(bool, tag = "11")]
    pub precipitation: bool,
}
impl ::prost::Name for ScanPoint2204 {
    const NAME: &'static str = "ScanPoint2204";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2204".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanPoint2204".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScannerInfo2204 {
    #[prost(uint32, tag = "1")]
    pub device_id: u32,
    #[prost(uint32, tag = "2")]
    pub scanner_type: u32,
    #[prost(uint32, tag = "3")]
    pub scan_number: u32,
    #[prost(float, tag = "4")]
    pub start_angle: f32,
    #[prost(float, tag = "5")]
    pub end_angle: f32,
    #[prost(float, tag = "6")]
    pub yaw_angle: f32,
    #[prost(float, tag = "7")]
    pub pitch_angle: f32,
    #[prost(float, tag = "8")]
    pub roll_angle: f32,
    #[prost(float, tag = "9")]
    pub offset_x: f32,
    #[prost(float, tag = "10")]
    pub offset_y: f32,
    #[prost(float, tag = "11")]
    pub offset_z: f32,
}
impl ::prost::Name for ScannerInfo2204 {
    const NAME: &'static str = "ScannerInfo2204";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScannerInfo2204".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScannerInfo2204".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanData2204 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(uint64, tag = "3")]
    pub scan_start_time: u64,
    #[prost(uint32, tag = "4")]
    pub scan_end_time_offset: u32,
    #[prost(bool, tag = "5")]
    pub ground_labeled: bool,
    #[prost(bool, tag = "6")]
    pub dirt_labeled: bool,
    #[prost(bool, tag = "7")]
    pub rain_labeled: bool,
    #[prost(bool, tag = "8")]
    pub fused_scan: bool,
    #[prost(uint32, tag = "9")]
    pub mirror_side: u32,
    #[prost(uint32, tag = "10")]
    pub coordinate_system: u32,
    #[prost(uint32, tag = "11")]
    pub scan_number: u32,
    #[prost(uint32, tag = "12")]
    pub scan_points: u32,
    #[prost(uint32, tag = "13")]
    pub number_of_scanner_infos: u32,
    #[prost(message, repeated, tag = "14")]
    pub scanner_info_list: ::prost::alloc::vec::Vec<ScannerInfo2204>,
    #[prost(message, repeated, tag = "15")]
    pub scan_point_list: ::prost::alloc::vec::Vec<ScanPoint2204>,
}
impl ::prost::Name for ScanData2204 {
    const NAME: &'static str = "ScanData2204";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2204".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2204".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScanData2208 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(uint32, tag = "3")]
    pub scan_number: u32,
    #[prost(uint32, tag = "4")]
    pub scanner_type: u32,
    #[prost(bool, tag = "5")]
    pub motor_on: bool,
    #[prost(bool, tag = "6")]
    pub laser_on: bool,
    #[prost(bool, tag = "7")]
    pub frequency_locked: bool,
    #[prost(uint32, tag = "8")]
    pub motor_rotating_direction: u32,
    #[prost(uint32, tag = "9")]
    pub angle_ticks_per_rotation: u32,
    #[prost(uint32, tag = "10")]
    pub scan_flags: u32,
    #[prost(int32, tag = "11")]
    pub mounting_yaw_angle_ticks: i32,
    #[prost(int32, tag = "12")]
    pub mounting_pitch_angle_ticks: i32,
    #[prost(int32, tag = "13")]
    pub mounting_roll_angle_ticks: i32,
    #[prost(int32, tag = "14")]
    pub mounting_position_x: i32,
    #[prost(int32, tag = "15")]
    pub mounting_position_y: i32,
    #[prost(int32, tag = "16")]
    pub mounting_position_z: i32,
    #[prost(uint32, tag = "17")]
    pub device_id: u32,
    #[prost(message, optional, tag = "18")]
    pub scan_start_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "19")]
    pub scan_end_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(int32, tag = "20")]
    pub start_angle_ticks: i32,
    #[prost(int32, tag = "21")]
    pub end_angle_ticks: i32,
    #[prost(uint32, tag = "22")]
    pub mirror_side: u32,
    #[prost(int32, tag = "23")]
    pub mirror_tilt: i32,
    #[prost(message, repeated, tag = "24")]
    pub scan_point_list: ::prost::alloc::vec::Vec<ScanPoint2208>,
}
impl ::prost::Name for ScanData2208 {
    const NAME: &'static str = "ScanData2208";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2208".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ScanData2208".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HostVehicleState2805 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(uint32, tag = "4")]
    pub scan_number: u32,
    #[prost(uint32, tag = "5")]
    pub error_flags: u32,
    #[prost(double, tag = "6")]
    pub longitudinal_velocity: f64,
    #[prost(double, tag = "7")]
    pub steering_wheel_angle: f64,
    #[prost(double, tag = "8")]
    pub front_wheel_angle: f64,
    #[prost(int32, tag = "9")]
    pub x_position: i32,
    #[prost(int32, tag = "10")]
    pub y_position: i32,
    #[prost(int32, tag = "11")]
    pub course_angle: i32,
    #[prost(uint32, tag = "12")]
    pub time_difference: u32,
    #[prost(int32, tag = "13")]
    pub x_difference: i32,
    #[prost(int32, tag = "14")]
    pub y_difference: i32,
    #[prost(int32, tag = "15")]
    pub heading_difference: i32,
    #[prost(int32, tag = "16")]
    pub current_yaw_rate: i32,
}
impl ::prost::Name for HostVehicleState2805 {
    const NAME: &'static str = "HostVehicleState2805";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2805".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2805".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CameraImage {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(uint32, tag = "3")]
    pub image_format: u32,
    #[prost(uint32, tag = "4")]
    pub us_since_power_on: u32,
    #[prost(message, optional, tag = "5")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(uint32, tag = "6")]
    pub device_id: u32,
    #[prost(message, optional, tag = "7")]
    pub mounting_position: ::core::option::Option<MountingPositionF>,
    #[prost(double, tag = "8")]
    pub horizontal_opening_angle: f64,
    #[prost(double, tag = "9")]
    pub vertical_opening_angle: f64,
    #[prost(uint32, tag = "10")]
    pub image_width: u32,
    #[prost(uint32, tag = "11")]
    pub image_height: u32,
    #[prost(uint32, tag = "12")]
    pub compressed_size: u32,
    #[prost(uint32, repeated, tag = "13")]
    pub image_buffer: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CameraImage {
    const NAME: &'static str = "CameraImage";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.CameraImage".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.CameraImage".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HostVehicleState2806 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(int32, tag = "4")]
    pub distance_x: i32,
    #[prost(int32, tag = "5")]
    pub distance_y: i32,
    #[prost(float, tag = "6")]
    pub course_angle: f32,
    #[prost(float, tag = "7")]
    pub longitudinal_velocity: f32,
    #[prost(float, tag = "8")]
    pub yaw_rate: f32,
    #[prost(float, tag = "9")]
    pub steering_wheel_angle: f32,
    #[prost(float, tag = "10")]
    pub cross_acceleration: f32,
    #[prost(float, tag = "11")]
    pub front_wheel_angle: f32,
    #[prost(float, tag = "12")]
    pub vehicle_width: f32,
    #[prost(float, tag = "13")]
    pub vehicle_front_to_front_axle: f32,
    #[prost(float, tag = "14")]
    pub rear_axle_to_front_axle: f32,
    #[prost(float, tag = "15")]
    pub rear_axle_to_vehicle_rear: f32,
    #[prost(float, tag = "16")]
    pub steer_ratio_poly_0: f32,
    #[prost(float, tag = "17")]
    pub steer_ratio_poly_1: f32,
    #[prost(float, tag = "18")]
    pub steer_ratio_poly_2: f32,
    #[prost(float, tag = "19")]
    pub steer_ratio_poly_3: f32,
}
impl ::prost::Name for HostVehicleState2806 {
    const NAME: &'static str = "HostVehicleState2806";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2806".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2806".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Velocity2D {
    #[prost(int32, tag = "1")]
    pub velocity_x: i32,
    #[prost(int32, tag = "2")]
    pub velocity_y: i32,
}
impl ::prost::Name for Velocity2D {
    const NAME: &'static str = "Velocity2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Velocity2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Velocity2D".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct Sigma2D {
    #[prost(uint32, tag = "1")]
    pub sigma_x: u32,
    #[prost(uint32, tag = "2")]
    pub sigma_y: u32,
}
impl ::prost::Name for Sigma2D {
    const NAME: &'static str = "Sigma2D";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.Sigma2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.Sigma2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HostVehicleState2807 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(int32, tag = "4")]
    pub distance_x: i32,
    #[prost(int32, tag = "5")]
    pub distance_y: i32,
    #[prost(float, tag = "6")]
    pub course_angle: f32,
    #[prost(float, tag = "7")]
    pub longitudinal_velocity: f32,
    #[prost(float, tag = "8")]
    pub yaw_rate: f32,
    #[prost(float, tag = "9")]
    pub steering_wheel_angle: f32,
    #[prost(float, tag = "10")]
    pub cross_acceleration: f32,
    #[prost(float, tag = "11")]
    pub front_wheel_angle: f32,
    #[prost(float, tag = "12")]
    pub vehicle_width: f32,
    #[prost(float, tag = "13")]
    pub vehicle_front_to_front_axle: f32,
    #[prost(float, tag = "14")]
    pub rear_axle_to_front_axle: f32,
    #[prost(float, tag = "15")]
    pub rear_axle_to_vehicle_rear: f32,
    #[prost(float, tag = "16")]
    pub steer_ratio_poly_0: f32,
    #[prost(float, tag = "17")]
    pub steer_ratio_poly_1: f32,
    #[prost(float, tag = "18")]
    pub steer_ratio_poly_2: f32,
    #[prost(float, tag = "19")]
    pub steer_ratio_poly_3: f32,
    #[prost(float, tag = "20")]
    pub longitudinal_acceleration: f32,
}
impl ::prost::Name for HostVehicleState2807 {
    const NAME: &'static str = "HostVehicleState2807";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2807".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.HostVehicleState2807".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObjectData2225 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub ibeo_header: ::core::option::Option<IbeoDataHeader>,
    #[prost(message, optional, tag = "3")]
    pub mid_scan_timestamp: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(uint32, tag = "4")]
    pub number_of_objects: u32,
    #[prost(message, repeated, tag = "5")]
    pub object_list: ::prost::alloc::vec::Vec<Object2225>,
}
impl ::prost::Name for ObjectData2225 {
    const NAME: &'static str = "ObjectData2225";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.ibeo_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2225".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.ibeo_msgs.msg.ObjectData2225".into()
    }
}
