// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VehicleStateData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub blinker_state: u32,
    #[prost(uint32, tag = "3")]
    pub headlight_state: u32,
    #[prost(uint32, tag = "4")]
    pub wiper_state: u32,
    #[prost(uint32, tag = "5")]
    pub current_gear: u32,
    #[prost(uint32, tag = "6")]
    pub vehicle_mode: u32,
    #[prost(bool, tag = "7")]
    pub hand_brake_active: bool,
    #[prost(bool, tag = "8")]
    pub horn_active: bool,
    #[prost(bool, tag = "9")]
    pub autonomous_mode_active: bool,
}
impl ::prost::Name for VehicleStateData {
    const NAME: &'static str = "VehicleStateData";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleStateData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleStateData".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DetectedRadarObject {
    #[prost(int32, tag = "1")]
    pub id: i32,
    #[prost(message, optional, tag = "2")]
    pub sensor_aim: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "3")]
    pub sensor_right: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
    #[prost(message, optional, tag = "4")]
    pub sensor_position: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "5")]
    pub sensor_velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, tag = "6")]
    pub sensor_angle: f64,
    #[prost(message, optional, tag = "7")]
    pub object_position: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "8")]
    pub object_velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, optional, tag = "9")]
    pub object_relative_position: ::core::option::Option<
        super::super::geometry_msgs::msg::Point,
    >,
    #[prost(message, optional, tag = "10")]
    pub object_relative_velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(message, optional, tag = "11")]
    pub object_collider_size: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(uint32, tag = "12")]
    pub object_state: u32,
    #[prost(bool, tag = "13")]
    pub new_detection: bool,
}
impl ::prost::Name for DetectedRadarObject {
    const NAME: &'static str = "DetectedRadarObject";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.DetectedRadarObject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.DetectedRadarObject".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CanBusData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub speed_mps: f32,
    #[prost(float, tag = "3")]
    pub throttle_pct: f32,
    #[prost(float, tag = "4")]
    pub brake_pct: f32,
    #[prost(float, tag = "5")]
    pub steer_pct: f32,
    #[prost(bool, tag = "6")]
    pub parking_brake_active: bool,
    #[prost(bool, tag = "7")]
    pub high_beams_active: bool,
    #[prost(bool, tag = "8")]
    pub low_beams_active: bool,
    #[prost(bool, tag = "9")]
    pub hazard_lights_active: bool,
    #[prost(bool, tag = "10")]
    pub fog_lights_active: bool,
    #[prost(bool, tag = "11")]
    pub left_turn_signal_active: bool,
    #[prost(bool, tag = "12")]
    pub right_turn_signal_active: bool,
    #[prost(bool, tag = "13")]
    pub wipers_active: bool,
    #[prost(bool, tag = "14")]
    pub reverse_gear_active: bool,
    #[prost(int32, tag = "15")]
    pub selected_gear: i32,
    #[prost(bool, tag = "16")]
    pub engine_active: bool,
    #[prost(float, tag = "17")]
    pub engine_rpm: f32,
    #[prost(double, tag = "18")]
    pub gps_latitude: f64,
    #[prost(double, tag = "19")]
    pub gps_longitude: f64,
    #[prost(double, tag = "20")]
    pub gps_altitude: f64,
    #[prost(message, optional, tag = "21")]
    pub orientation: ::core::option::Option<
        super::super::geometry_msgs::msg::Quaternion,
    >,
    #[prost(message, optional, tag = "22")]
    pub linear_velocities: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
}
impl ::prost::Name for CanBusData {
    const NAME: &'static str = "CanBusData";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.CanBusData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.CanBusData".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BoundingBox3D {
    #[prost(message, optional, tag = "1")]
    pub position: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "2")]
    pub size: ::core::option::Option<super::super::geometry_msgs::msg::Vector3>,
}
impl ::prost::Name for BoundingBox3D {
    const NAME: &'static str = "BoundingBox3D";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.BoundingBox3D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.BoundingBox3D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Signal {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(string, tag = "3")]
    pub label: ::prost::alloc::string::String,
    #[prost(float, tag = "4")]
    pub score: f32,
    #[prost(message, optional, tag = "5")]
    pub bbox: ::core::option::Option<BoundingBox3D>,
}
impl ::prost::Name for Signal {
    const NAME: &'static str = "Signal";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Signal".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Signal".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SignalArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub signals: ::prost::alloc::vec::Vec<Signal>,
}
impl ::prost::Name for SignalArray {
    const NAME: &'static str = "SignalArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.SignalArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.SignalArray".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct BoundingBox2D {
    #[prost(float, tag = "1")]
    pub x: f32,
    #[prost(float, tag = "2")]
    pub y: f32,
    #[prost(float, tag = "3")]
    pub width: f32,
    #[prost(float, tag = "4")]
    pub height: f32,
}
impl ::prost::Name for BoundingBox2D {
    const NAME: &'static str = "BoundingBox2D";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.BoundingBox2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.BoundingBox2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection2D {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(string, tag = "3")]
    pub label: ::prost::alloc::string::String,
    #[prost(float, tag = "4")]
    pub score: f32,
    #[prost(message, optional, tag = "5")]
    pub bbox: ::core::option::Option<BoundingBox2D>,
    #[prost(message, optional, tag = "6")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Twist>,
}
impl ::prost::Name for Detection2D {
    const NAME: &'static str = "Detection2D";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection2D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection2D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection2DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub detections: ::prost::alloc::vec::Vec<Detection2D>,
}
impl ::prost::Name for Detection2DArray {
    const NAME: &'static str = "Detection2DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection2DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection2DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectedRadarObjectArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub objects: ::prost::alloc::vec::Vec<DetectedRadarObject>,
}
impl ::prost::Name for DetectedRadarObjectArray {
    const NAME: &'static str = "DetectedRadarObjectArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.DetectedRadarObjectArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.DetectedRadarObjectArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection3D {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(string, tag = "3")]
    pub label: ::prost::alloc::string::String,
    #[prost(float, tag = "4")]
    pub score: f32,
    #[prost(message, optional, tag = "5")]
    pub bbox: ::core::option::Option<BoundingBox3D>,
    #[prost(message, optional, tag = "6")]
    pub velocity: ::core::option::Option<super::super::geometry_msgs::msg::Twist>,
}
impl ::prost::Name for Detection3D {
    const NAME: &'static str = "Detection3D";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection3D".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection3D".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VehicleControlData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub acceleration_pct: f32,
    #[prost(float, tag = "3")]
    pub braking_pct: f32,
    #[prost(float, tag = "4")]
    pub target_wheel_angle: f32,
    #[prost(float, tag = "5")]
    pub target_wheel_angular_rate: f32,
    #[prost(uint32, tag = "6")]
    pub target_gear: u32,
}
impl ::prost::Name for VehicleControlData {
    const NAME: &'static str = "VehicleControlData";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleControlData".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleControlData".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VehicleOdometry {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub velocity: f32,
    #[prost(float, tag = "3")]
    pub front_wheel_angle: f32,
    #[prost(float, tag = "4")]
    pub rear_wheel_angle: f32,
}
impl ::prost::Name for VehicleOdometry {
    const NAME: &'static str = "VehicleOdometry";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleOdometry".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.VehicleOdometry".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Detection3DArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub detections: ::prost::alloc::vec::Vec<Detection3D>,
}
impl ::prost::Name for Detection3DArray {
    const NAME: &'static str = "Detection3DArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection3DArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Detection3DArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ultrasonic {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub minimum_distance: f32,
}
impl ::prost::Name for Ultrasonic {
    const NAME: &'static str = "Ultrasonic";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.lgsvl_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.lgsvl_msgs.msg.Ultrasonic".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.lgsvl_msgs.msg.Ultrasonic".into()
    }
}
