// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearReject {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for GearReject {
    const NAME: &'static str = "GearReject";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.GearReject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.GearReject".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OnePedal {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for OnePedal {
    const NAME: &'static str = "OnePedal";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.OnePedal".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.OnePedal".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HeadlightCtrlHigh {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for HeadlightCtrlHigh {
    const NAME: &'static str = "HeadlightCtrlHigh";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.HeadlightCtrlHigh".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.HeadlightCtrlHigh".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearDiagnostics {
    #[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(bool, tag = "3")]
    pub degraded: bool,
    #[prost(bool, tag = "4")]
    pub degraded_cmd_type: bool,
    #[prost(bool, tag = "5")]
    pub degraded_comms: bool,
    #[prost(bool, tag = "6")]
    pub degraded_comms_dbw: bool,
    #[prost(bool, tag = "7")]
    pub degraded_comms_dbw_gateway: bool,
    #[prost(bool, tag = "8")]
    pub degraded_comms_dbw_steer: bool,
    #[prost(bool, tag = "9")]
    pub degraded_comms_dbw_brake: bool,
    #[prost(bool, tag = "10")]
    pub degraded_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "11")]
    pub degraded_comms_vehicle: bool,
    #[prost(bool, tag = "12")]
    pub degraded_comms_vehicle_1: bool,
    #[prost(bool, tag = "13")]
    pub degraded_comms_vehicle_2: bool,
    #[prost(bool, tag = "14")]
    pub degraded_comms_actuator: bool,
    #[prost(bool, tag = "15")]
    pub degraded_comms_actuator_1: bool,
    #[prost(bool, tag = "16")]
    pub degraded_comms_actuator_2: bool,
    #[prost(bool, tag = "17")]
    pub degraded_internal: bool,
    #[prost(bool, tag = "18")]
    pub degraded_control_performance: bool,
    #[prost(bool, tag = "19")]
    pub degraded_param_mismatch: bool,
    #[prost(bool, tag = "20")]
    pub degraded_vehicle: bool,
    #[prost(bool, tag = "21")]
    pub degraded_vehicle_speed: bool,
    #[prost(bool, tag = "22")]
    pub degraded_actuator: bool,
    #[prost(bool, tag = "23")]
    pub degraded_gear_mismatch: bool,
    #[prost(bool, tag = "24")]
    pub degraded_power: bool,
    #[prost(bool, tag = "25")]
    pub degraded_calibration: bool,
    #[prost(bool, tag = "26")]
    pub fault: bool,
    #[prost(bool, tag = "27")]
    pub fault_power: bool,
    #[prost(bool, tag = "28")]
    pub fault_comms: bool,
    #[prost(bool, tag = "29")]
    pub fault_comms_dbw: bool,
    #[prost(bool, tag = "30")]
    pub fault_comms_dbw_gateway: bool,
    #[prost(bool, tag = "31")]
    pub fault_comms_dbw_steer: bool,
    #[prost(bool, tag = "32")]
    pub fault_comms_dbw_brake: bool,
    #[prost(bool, tag = "33")]
    pub fault_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "34")]
    pub fault_comms_vehicle: bool,
    #[prost(bool, tag = "35")]
    pub fault_comms_vehicle_1: bool,
    #[prost(bool, tag = "36")]
    pub fault_comms_vehicle_2: bool,
    #[prost(bool, tag = "37")]
    pub fault_comms_actuator: bool,
    #[prost(bool, tag = "38")]
    pub fault_comms_actuator_1: bool,
    #[prost(bool, tag = "39")]
    pub fault_comms_actuator_2: bool,
    #[prost(bool, tag = "40")]
    pub fault_internal: bool,
    #[prost(bool, tag = "41")]
    pub fault_vehicle: bool,
    #[prost(bool, tag = "42")]
    pub fault_vehicle_speed: bool,
    #[prost(bool, tag = "43")]
    pub fault_actuator: bool,
    #[prost(bool, tag = "44")]
    pub fault_actuator_config: bool,
    #[prost(bool, tag = "45")]
    pub fault_param_mismatch: bool,
    #[prost(bool, tag = "46")]
    pub fault_calibration: bool,
}
impl ::prost::Name for GearDiagnostics {
    const NAME: &'static str = "GearDiagnostics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.GearDiagnostics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.GearDiagnostics".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrafficSignInfo {
    #[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 status: u32,
    #[prost(bool, tag = "4")]
    pub camera_used: bool,
    #[prost(bool, tag = "5")]
    pub navigation_used: bool,
    #[prost(uint32, tag = "6")]
    pub speed_units: u32,
    #[prost(float, tag = "7")]
    pub speed_limit: f32,
}
impl ::prost::Name for TrafficSignInfo {
    const NAME: &'static str = "TrafficSignInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.TrafficSignInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.TrafficSignInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Quality {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for Quality {
    const NAME: &'static str = "Quality";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.Quality".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.Quality".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrakeInfo {
    #[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(float, tag = "3")]
    pub brake_torque_pedal: f32,
    #[prost(float, tag = "4")]
    pub brake_torque_request: f32,
    #[prost(float, tag = "5")]
    pub brake_torque_actual: f32,
    #[prost(message, optional, tag = "6")]
    pub brake_pedal_qf: ::core::option::Option<Quality>,
    #[prost(float, tag = "7")]
    pub brake_vacuum: f32,
    #[prost(bool, tag = "8")]
    pub abs_active: bool,
    #[prost(bool, tag = "9")]
    pub abs_enabled: bool,
    #[prost(bool, tag = "10")]
    pub esc_active: bool,
    #[prost(bool, tag = "11")]
    pub esc_enabled: bool,
    #[prost(bool, tag = "12")]
    pub trac_active: bool,
    #[prost(bool, tag = "13")]
    pub trac_enabled: bool,
}
impl ::prost::Name for BrakeInfo {
    const NAME: &'static str = "BrakeInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DecelSrc {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for DecelSrc {
    const NAME: &'static str = "DecelSrc";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.DecelSrc".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.DecelSrc".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DriverAssist {
    #[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(float, tag = "3")]
    pub decel: f32,
    #[prost(message, optional, tag = "4")]
    pub decel_src: ::core::option::Option<DecelSrc>,
    #[prost(bool, tag = "5")]
    pub fcw_active: bool,
    #[prost(bool, tag = "6")]
    pub fcw_enabled: bool,
    #[prost(bool, tag = "7")]
    pub aeb_active: bool,
    #[prost(bool, tag = "8")]
    pub aeb_precharge: bool,
    #[prost(bool, tag = "9")]
    pub aeb_enabled: bool,
    #[prost(bool, tag = "10")]
    pub acc_braking: bool,
    #[prost(bool, tag = "11")]
    pub acc_enabled: bool,
    #[prost(bool, tag = "12")]
    pub blis_l_alert: bool,
    #[prost(bool, tag = "13")]
    pub blis_l_enabled: bool,
    #[prost(bool, tag = "14")]
    pub blis_r_alert: bool,
    #[prost(bool, tag = "15")]
    pub blis_r_enabled: bool,
    #[prost(bool, tag = "16")]
    pub cta_l_alert: bool,
    #[prost(bool, tag = "17")]
    pub cta_l_enabled: bool,
    #[prost(bool, tag = "18")]
    pub cta_r_alert: bool,
    #[prost(bool, tag = "19")]
    pub cta_r_enabled: bool,
}
impl ::prost::Name for DriverAssist {
    const NAME: &'static str = "DriverAssist";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.DriverAssist".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.DriverAssist".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AmbientLight {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for AmbientLight {
    const NAME: &'static str = "AmbientLight";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.AmbientLight".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.AmbientLight".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TurnSignal {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for TurnSignal {
    const NAME: &'static str = "TurnSignal";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignal".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignal".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TurnSignalReport {
    #[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 input: ::core::option::Option<TurnSignal>,
    #[prost(message, optional, tag = "4")]
    pub cmd: ::core::option::Option<TurnSignal>,
    #[prost(message, optional, tag = "5")]
    pub output: ::core::option::Option<TurnSignal>,
    #[prost(message, optional, tag = "6")]
    pub feedback: ::core::option::Option<TurnSignal>,
    #[prost(bool, tag = "7")]
    pub ready: bool,
    #[prost(bool, tag = "8")]
    pub override_active: bool,
    #[prost(bool, tag = "9")]
    pub override_other: bool,
    #[prost(bool, tag = "10")]
    pub timeout: bool,
    #[prost(bool, tag = "11")]
    pub bad_crc: bool,
    #[prost(bool, tag = "12")]
    pub bad_rc: bool,
    #[prost(bool, tag = "13")]
    pub degraded: bool,
    #[prost(bool, tag = "14")]
    pub degraded_cmd_type: bool,
    #[prost(bool, tag = "15")]
    pub degraded_comms_dbw_steer: bool,
    #[prost(bool, tag = "16")]
    pub degraded_comms_dbw_brake: bool,
    #[prost(bool, tag = "17")]
    pub degraded_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "18")]
    pub degraded_comms_vehicle: bool,
    #[prost(bool, tag = "19")]
    pub degraded_control_performance: bool,
    #[prost(bool, tag = "20")]
    pub fault: bool,
    #[prost(bool, tag = "21")]
    pub fault_comms_vehicle: bool,
}
impl ::prost::Name for TurnSignalReport {
    const NAME: &'static str = "TurnSignalReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignalReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignalReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrakeCmd {
    #[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(float, tag = "3")]
    pub cmd: f32,
    #[prost(float, tag = "4")]
    pub rate_inc: f32,
    #[prost(float, tag = "5")]
    pub rate_dec: f32,
    #[prost(uint32, tag = "6")]
    pub cmd_type: u32,
    #[prost(bool, tag = "7")]
    pub enable: bool,
    #[prost(bool, tag = "8")]
    pub clear: bool,
    #[prost(bool, tag = "9")]
    pub ignore: bool,
}
impl ::prost::Name for BrakeCmd {
    const NAME: &'static str = "BrakeCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SystemSyncMode {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for SystemSyncMode {
    const NAME: &'static str = "SystemSyncMode";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemSyncMode".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemSyncMode".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelPositions {
    #[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(int32, tag = "3")]
    pub front_left: i32,
    #[prost(int32, tag = "4")]
    pub front_right: i32,
    #[prost(int32, tag = "5")]
    pub rear_left: i32,
    #[prost(int32, tag = "6")]
    pub rear_right: i32,
}
impl ::prost::Name for WheelPositions {
    const NAME: &'static str = "WheelPositions";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.WheelPositions".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.WheelPositions".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Wiper {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for Wiper {
    const NAME: &'static str = "Wiper";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.Wiper".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.Wiper".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonitorThrottle {
    #[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(float, tag = "3")]
    pub pedal_pc: f32,
    #[prost(message, optional, tag = "4")]
    pub pedal_qf: ::core::option::Option<Quality>,
}
impl ::prost::Name for MonitorThrottle {
    const NAME: &'static str = "MonitorThrottle";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorThrottle".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorThrottle".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HeadlightCtrlLow {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for HeadlightCtrlLow {
    const NAME: &'static str = "HeadlightCtrlLow";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.HeadlightCtrlLow".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.HeadlightCtrlLow".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrkBrkStat {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for PrkBrkStat {
    const NAME: &'static str = "PrkBrkStat";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.PrkBrkStat".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.PrkBrkStat".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiscReport {
    #[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 parking_brake: ::core::option::Option<PrkBrkStat>,
    #[prost(bool, tag = "4")]
    pub passenger_detect: bool,
    #[prost(bool, tag = "5")]
    pub passenger_airbag: bool,
    #[prost(bool, tag = "6")]
    pub buckle_driver: bool,
    #[prost(bool, tag = "7")]
    pub buckle_passenger: bool,
    #[prost(bool, tag = "8")]
    pub door_driver: bool,
    #[prost(bool, tag = "9")]
    pub door_passenger: bool,
    #[prost(bool, tag = "10")]
    pub door_rear_left: bool,
    #[prost(bool, tag = "11")]
    pub door_rear_right: bool,
    #[prost(bool, tag = "12")]
    pub door_hood: bool,
    #[prost(bool, tag = "13")]
    pub door_trunk: bool,
    #[prost(bool, tag = "14")]
    pub btn_ld_ok: bool,
    #[prost(bool, tag = "15")]
    pub btn_ld_up: bool,
    #[prost(bool, tag = "16")]
    pub btn_ld_down: bool,
    #[prost(bool, tag = "17")]
    pub btn_ld_left: bool,
    #[prost(bool, tag = "18")]
    pub btn_ld_right: bool,
    #[prost(bool, tag = "19")]
    pub btn_rd_ok: bool,
    #[prost(bool, tag = "20")]
    pub btn_rd_up: bool,
    #[prost(bool, tag = "21")]
    pub btn_rd_down: bool,
    #[prost(bool, tag = "22")]
    pub btn_rd_left: bool,
    #[prost(bool, tag = "23")]
    pub btn_rd_right: bool,
    #[prost(bool, tag = "24")]
    pub btn_cc_mode: bool,
    #[prost(bool, tag = "25")]
    pub btn_cc_on: bool,
    #[prost(bool, tag = "26")]
    pub btn_cc_off: bool,
    #[prost(bool, tag = "27")]
    pub btn_cc_res: bool,
    #[prost(bool, tag = "28")]
    pub btn_cc_cncl: bool,
    #[prost(bool, tag = "29")]
    pub btn_cc_on_off: bool,
    #[prost(bool, tag = "30")]
    pub btn_cc_res_cncl: bool,
    #[prost(bool, tag = "31")]
    pub btn_cc_res_inc: bool,
    #[prost(bool, tag = "32")]
    pub btn_cc_res_dec: bool,
    #[prost(bool, tag = "33")]
    pub btn_cc_set_inc: bool,
    #[prost(bool, tag = "34")]
    pub btn_cc_set_dec: bool,
    #[prost(bool, tag = "35")]
    pub btn_acc_gap_inc: bool,
    #[prost(bool, tag = "36")]
    pub btn_acc_gap_dec: bool,
    #[prost(bool, tag = "37")]
    pub btn_limit_on_off: bool,
    #[prost(bool, tag = "38")]
    pub btn_la_on_off: bool,
    #[prost(bool, tag = "39")]
    pub btn_apa: bool,
    #[prost(bool, tag = "40")]
    pub btn_media: bool,
    #[prost(bool, tag = "41")]
    pub btn_vol_inc: bool,
    #[prost(bool, tag = "42")]
    pub btn_vol_dec: bool,
    #[prost(bool, tag = "43")]
    pub btn_mute: bool,
    #[prost(bool, tag = "44")]
    pub btn_speak: bool,
    #[prost(bool, tag = "45")]
    pub btn_prev: bool,
    #[prost(bool, tag = "46")]
    pub btn_next: bool,
    #[prost(bool, tag = "47")]
    pub btn_call_start: bool,
    #[prost(bool, tag = "48")]
    pub btn_call_end: bool,
    #[prost(message, optional, tag = "49")]
    pub wiper: ::core::option::Option<Wiper>,
    #[prost(bool, tag = "50")]
    pub headlight_low: bool,
    #[prost(bool, tag = "51")]
    pub headlight_high: bool,
    #[prost(message, optional, tag = "52")]
    pub headlight_low_control: ::core::option::Option<HeadlightCtrlLow>,
    #[prost(message, optional, tag = "53")]
    pub headlight_high_control: ::core::option::Option<HeadlightCtrlHigh>,
    #[prost(message, optional, tag = "54")]
    pub ambient_light: ::core::option::Option<AmbientLight>,
    #[prost(float, tag = "55")]
    pub outside_air_temp: f32,
}
impl ::prost::Name for MiscReport {
    const NAME: &'static str = "MiscReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.MiscReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.MiscReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DriveMode {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for DriveMode {
    const NAME: &'static str = "DriveMode";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.DriveMode".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.DriveMode".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearNum {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for GearNum {
    const NAME: &'static str = "GearNum";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.GearNum".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.GearNum".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThrottleInfo {
    #[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(float, tag = "3")]
    pub accel_pedal_pc: f32,
    #[prost(message, optional, tag = "4")]
    pub accel_pedal_qf: ::core::option::Option<Quality>,
    #[prost(message, optional, tag = "5")]
    pub one_pedal: ::core::option::Option<OnePedal>,
    #[prost(float, tag = "6")]
    pub engine_rpm: f32,
    #[prost(message, optional, tag = "7")]
    pub drive_mode: ::core::option::Option<DriveMode>,
    #[prost(message, optional, tag = "8")]
    pub gear_num: ::core::option::Option<GearNum>,
}
impl ::prost::Name for ThrottleInfo {
    const NAME: &'static str = "ThrottleInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VehicleVelocity {
    #[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(float, tag = "3")]
    pub vehicle_velocity_brake: f32,
    #[prost(float, tag = "4")]
    pub vehicle_velocity_propulsion: f32,
    #[prost(uint32, tag = "5")]
    pub dir_src: u32,
}
impl ::prost::Name for VehicleVelocity {
    const NAME: &'static str = "VehicleVelocity";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.VehicleVelocity".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.VehicleVelocity".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UlcCmd {
    #[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(float, tag = "3")]
    pub cmd: f32,
    #[prost(float, tag = "4")]
    pub limit_accel: f32,
    #[prost(float, tag = "5")]
    pub limit_decel: f32,
    #[prost(float, tag = "6")]
    pub limit_jerk_throttle: f32,
    #[prost(float, tag = "7")]
    pub limit_jerk_brake: f32,
    #[prost(uint32, tag = "8")]
    pub cmd_type: u32,
    #[prost(bool, tag = "9")]
    pub enable: bool,
    #[prost(bool, tag = "10")]
    pub clear: bool,
    #[prost(bool, tag = "11")]
    pub enable_shift: bool,
    #[prost(bool, tag = "12")]
    pub enable_shift_park: bool,
    #[prost(bool, tag = "13")]
    pub coast_decel: bool,
}
impl ::prost::Name for UlcCmd {
    const NAME: &'static str = "UlcCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.UlcCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.UlcCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThrottleCmd {
    #[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(float, tag = "3")]
    pub cmd: f32,
    #[prost(float, tag = "4")]
    pub rate_inc: f32,
    #[prost(float, tag = "5")]
    pub rate_dec: f32,
    #[prost(uint32, tag = "6")]
    pub cmd_type: u32,
    #[prost(bool, tag = "7")]
    pub enable: bool,
    #[prost(bool, tag = "8")]
    pub clear: bool,
    #[prost(bool, tag = "9")]
    pub ignore: bool,
}
impl ::prost::Name for ThrottleCmd {
    const NAME: &'static str = "ThrottleCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelSpeeds {
    #[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(float, tag = "3")]
    pub front_left: f32,
    #[prost(float, tag = "4")]
    pub front_right: f32,
    #[prost(float, tag = "5")]
    pub rear_left: f32,
    #[prost(float, tag = "6")]
    pub rear_right: f32,
}
impl ::prost::Name for WheelSpeeds {
    const NAME: &'static str = "WheelSpeeds";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.WheelSpeeds".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.WheelSpeeds".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SteeringOffset {
    #[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(float, tag = "3")]
    pub steering_wheel_angle: f32,
    #[prost(float, tag = "4")]
    pub steering_wheel_angle_raw: f32,
    #[prost(float, tag = "5")]
    pub steering_wheel_angle_offset: f32,
    #[prost(uint32, tag = "6")]
    pub offset_type: u32,
}
impl ::prost::Name for SteeringOffset {
    const NAME: &'static str = "SteeringOffset";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringOffset".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringOffset".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UlcReport {
    #[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 cmd_type: u32,
    #[prost(float, tag = "4")]
    pub vel_ref: f32,
    #[prost(float, tag = "5")]
    pub vel_meas: f32,
    #[prost(float, tag = "6")]
    pub accel_ref: f32,
    #[prost(float, tag = "7")]
    pub accel_meas: f32,
    #[prost(bool, tag = "8")]
    pub coast_decel: bool,
    #[prost(bool, tag = "9")]
    pub ready: bool,
    #[prost(bool, tag = "10")]
    pub enabled: bool,
    #[prost(bool, tag = "11")]
    pub override_active: bool,
    #[prost(bool, tag = "12")]
    pub override_latched: bool,
    #[prost(bool, tag = "13")]
    pub preempted: bool,
    #[prost(bool, tag = "14")]
    pub timeout: bool,
    #[prost(bool, tag = "15")]
    pub bad_crc: bool,
    #[prost(bool, tag = "16")]
    pub bad_rc: bool,
}
impl ::prost::Name for UlcReport {
    const NAME: &'static str = "UlcReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.UlcReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.UlcReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CmdSrc {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for CmdSrc {
    const NAME: &'static str = "CmdSrc";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.CmdSrc".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.CmdSrc".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Ignition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for Ignition {
    const NAME: &'static str = "Ignition";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.Ignition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.Ignition".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PrkBrkCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for PrkBrkCmd {
    const NAME: &'static str = "PrkBrkCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.PrkBrkCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.PrkBrkCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Gear {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for Gear {
    const NAME: &'static str = "Gear";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.Gear".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.Gear".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearCmd {
    #[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 cmd: ::core::option::Option<Gear>,
}
impl ::prost::Name for GearCmd {
    const NAME: &'static str = "GearCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.GearCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.GearCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SteeringCmd {
    #[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(float, tag = "3")]
    pub cmd: f32,
    #[prost(float, tag = "4")]
    pub cmd_rate: f32,
    #[prost(float, tag = "5")]
    pub cmd_accel: f32,
    #[prost(uint32, tag = "6")]
    pub cmd_type: u32,
    #[prost(bool, tag = "7")]
    pub enable: bool,
    #[prost(bool, tag = "8")]
    pub clear: bool,
    #[prost(bool, tag = "9")]
    pub ignore: bool,
}
impl ::prost::Name for SteeringCmd {
    const NAME: &'static str = "SteeringCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FuelLevel {
    #[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(float, tag = "3")]
    pub fuel_level: f32,
    #[prost(float, tag = "4")]
    pub fuel_range: f32,
    #[prost(float, tag = "5")]
    pub odometer: f32,
}
impl ::prost::Name for FuelLevel {
    const NAME: &'static str = "FuelLevel";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.FuelLevel".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.FuelLevel".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TurnSignalCmd {
    #[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 cmd: ::core::option::Option<TurnSignal>,
}
impl ::prost::Name for TurnSignalCmd {
    const NAME: &'static str = "TurnSignalCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignalCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.TurnSignalCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GearReport {
    #[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 gear: ::core::option::Option<Gear>,
    #[prost(message, optional, tag = "4")]
    pub cmd: ::core::option::Option<Gear>,
    #[prost(message, optional, tag = "5")]
    pub driver: ::core::option::Option<Gear>,
    #[prost(message, optional, tag = "6")]
    pub reject: ::core::option::Option<GearReject>,
    #[prost(bool, tag = "7")]
    pub power_latched: bool,
    #[prost(bool, tag = "8")]
    pub external_control: bool,
    #[prost(bool, tag = "9")]
    pub ready: bool,
    #[prost(bool, tag = "10")]
    pub override_active: bool,
    #[prost(bool, tag = "11")]
    pub override_other: bool,
    #[prost(bool, tag = "12")]
    pub fault: bool,
    #[prost(bool, tag = "13")]
    pub bad_crc: bool,
    #[prost(bool, tag = "14")]
    pub degraded: bool,
    #[prost(message, optional, tag = "15")]
    pub cmd_src: ::core::option::Option<CmdSrc>,
}
impl ::prost::Name for GearReport {
    const NAME: &'static str = "GearReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.GearReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.GearReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EcuInfo {
    #[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(string, tag = "3")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub version: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub mac_addr: ::prost::alloc::string::String,
    #[prost(string, tag = "6")]
    pub config_hash: ::prost::alloc::string::String,
    #[prost(uint32, tag = "7")]
    pub config_count_modified: u32,
    #[prost(uint32, tag = "8")]
    pub config_count_configured: u32,
    #[prost(bool, tag = "9")]
    pub config_nvm_blank: bool,
    #[prost(bool, tag = "10")]
    pub config_nvm_write_pending: bool,
    #[prost(string, tag = "11")]
    pub build_date: ::prost::alloc::string::String,
    #[prost(string, tag = "12")]
    pub license_date: ::prost::alloc::string::String,
    #[prost(bool, tag = "13")]
    pub control_licensed: bool,
    #[prost(string, tag = "14")]
    pub log_filename: ::prost::alloc::string::String,
    #[prost(bool, tag = "15")]
    pub log_filesystem_present: bool,
    #[prost(bool, tag = "16")]
    pub log_fault: bool,
}
impl ::prost::Name for EcuInfo {
    const NAME: &'static str = "EcuInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.EcuInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.EcuInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatteryTraction {
    #[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(float, tag = "3")]
    pub state_of_charge: f32,
    #[prost(float, tag = "4")]
    pub voltage: f32,
    #[prost(float, tag = "5")]
    pub current: f32,
    #[prost(float, tag = "6")]
    pub temperature: f32,
    #[prost(uint32, tag = "7")]
    pub status: u32,
}
impl ::prost::Name for BatteryTraction {
    const NAME: &'static str = "BatteryTraction";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.BatteryTraction".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.BatteryTraction".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SystemState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub value: u32,
}
impl ::prost::Name for SystemState {
    const NAME: &'static str = "SystemState";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonitorCmd {
    #[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 cmd_type: u32,
}
impl ::prost::Name for MonitorCmd {
    const NAME: &'static str = "MonitorCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SteeringDiagnostics {
    #[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(bool, tag = "3")]
    pub degraded: bool,
    #[prost(bool, tag = "4")]
    pub degraded_cmd_type: bool,
    #[prost(bool, tag = "5")]
    pub degraded_comms: bool,
    #[prost(bool, tag = "6")]
    pub degraded_comms_dbw: bool,
    #[prost(bool, tag = "7")]
    pub degraded_comms_dbw_gateway: bool,
    #[prost(bool, tag = "8")]
    pub degraded_comms_dbw_brake: bool,
    #[prost(bool, tag = "9")]
    pub degraded_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "10")]
    pub degraded_comms_dbw_gear: bool,
    #[prost(bool, tag = "11")]
    pub degraded_comms_vehicle: bool,
    #[prost(bool, tag = "12")]
    pub degraded_comms_actuator: bool,
    #[prost(bool, tag = "13")]
    pub degraded_internal: bool,
    #[prost(bool, tag = "14")]
    pub degraded_control_performance: bool,
    #[prost(bool, tag = "15")]
    pub degraded_param_mismatch: bool,
    #[prost(bool, tag = "16")]
    pub degraded_vehicle: bool,
    #[prost(bool, tag = "17")]
    pub degraded_actuator: bool,
    #[prost(bool, tag = "18")]
    pub degraded_vehicle_speed: bool,
    #[prost(bool, tag = "19")]
    pub degraded_calibration: bool,
    #[prost(bool, tag = "20")]
    pub fault: bool,
    #[prost(bool, tag = "21")]
    pub fault_power: bool,
    #[prost(bool, tag = "22")]
    pub fault_comms: bool,
    #[prost(bool, tag = "23")]
    pub fault_comms_dbw: bool,
    #[prost(bool, tag = "24")]
    pub fault_comms_dbw_gateway: bool,
    #[prost(bool, tag = "25")]
    pub fault_comms_dbw_brake: bool,
    #[prost(bool, tag = "26")]
    pub fault_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "27")]
    pub fault_comms_dbw_gear: bool,
    #[prost(bool, tag = "28")]
    pub fault_comms_vehicle: bool,
    #[prost(bool, tag = "29")]
    pub fault_comms_actuator: bool,
    #[prost(bool, tag = "30")]
    pub fault_internal: bool,
    #[prost(bool, tag = "31")]
    pub fault_vehicle: bool,
    #[prost(bool, tag = "32")]
    pub fault_vehicle_speed: bool,
    #[prost(bool, tag = "33")]
    pub fault_angle_sensor: bool,
    #[prost(bool, tag = "34")]
    pub fault_torque_sensor_1: bool,
    #[prost(bool, tag = "35")]
    pub fault_torque_sensor_2: bool,
    #[prost(bool, tag = "36")]
    pub fault_torque_sensor_mismatch: bool,
    #[prost(bool, tag = "37")]
    pub fault_actuator: bool,
    #[prost(bool, tag = "38")]
    pub fault_actuator_torque_sensor: bool,
    #[prost(bool, tag = "39")]
    pub fault_actuator_config: bool,
    #[prost(bool, tag = "40")]
    pub fault_actuator_assist: bool,
    #[prost(bool, tag = "41")]
    pub fault_control_performance: bool,
    #[prost(bool, tag = "42")]
    pub fault_param_mismatch: bool,
    #[prost(bool, tag = "43")]
    pub fault_param_limits: bool,
    #[prost(bool, tag = "44")]
    pub fault_calibration: bool,
}
impl ::prost::Name for SteeringDiagnostics {
    const NAME: &'static str = "SteeringDiagnostics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringDiagnostics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringDiagnostics".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Battery {
    #[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(float, tag = "3")]
    pub state_of_charge: f32,
    #[prost(float, tag = "4")]
    pub voltage: f32,
    #[prost(float, tag = "5")]
    pub current: f32,
    #[prost(float, tag = "6")]
    pub temperature: f32,
    #[prost(message, optional, tag = "7")]
    pub ignition: ::core::option::Option<Ignition>,
}
impl ::prost::Name for Battery {
    const NAME: &'static str = "Battery";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.Battery".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.Battery".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrakeDiagnostics {
    #[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(bool, tag = "3")]
    pub degraded: bool,
    #[prost(bool, tag = "4")]
    pub degraded_cmd_type: bool,
    #[prost(bool, tag = "5")]
    pub degraded_comms: bool,
    #[prost(bool, tag = "6")]
    pub degraded_comms_dbw: bool,
    #[prost(bool, tag = "7")]
    pub degraded_comms_dbw_gateway: bool,
    #[prost(bool, tag = "8")]
    pub degraded_comms_dbw_steer: bool,
    #[prost(bool, tag = "9")]
    pub degraded_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "10")]
    pub degraded_comms_dbw_gear: bool,
    #[prost(bool, tag = "11")]
    pub degraded_comms_vehicle: bool,
    #[prost(bool, tag = "12")]
    pub degraded_comms_actuator: bool,
    #[prost(bool, tag = "13")]
    pub degraded_comms_actuator_1: bool,
    #[prost(bool, tag = "14")]
    pub degraded_comms_actuator_2: bool,
    #[prost(bool, tag = "15")]
    pub degraded_internal: bool,
    #[prost(bool, tag = "16")]
    pub degraded_control_performance: bool,
    #[prost(bool, tag = "17")]
    pub degraded_param_mismatch: bool,
    #[prost(bool, tag = "18")]
    pub degraded_btsi_stuck_low: bool,
    #[prost(bool, tag = "19")]
    pub degraded_btsi_stuck_high: bool,
    #[prost(bool, tag = "20")]
    pub degraded_vehicle: bool,
    #[prost(bool, tag = "21")]
    pub degraded_vehicle_speed: bool,
    #[prost(bool, tag = "22")]
    pub degraded_bped_feedback: bool,
    #[prost(bool, tag = "23")]
    pub degraded_actuator: bool,
    #[prost(bool, tag = "24")]
    pub degraded_actuator_1: bool,
    #[prost(bool, tag = "25")]
    pub degraded_actuator_2: bool,
    #[prost(bool, tag = "26")]
    pub degraded_actuator_aeb_deny: bool,
    #[prost(bool, tag = "27")]
    pub degraded_actuator_warm: bool,
    #[prost(bool, tag = "28")]
    pub degraded_calibration: bool,
    #[prost(bool, tag = "29")]
    pub fault: bool,
    #[prost(bool, tag = "30")]
    pub fault_power: bool,
    #[prost(bool, tag = "31")]
    pub fault_comms: bool,
    #[prost(bool, tag = "32")]
    pub fault_internal: bool,
    #[prost(bool, tag = "33")]
    pub fault_vehicle: bool,
    #[prost(bool, tag = "34")]
    pub fault_actuator: bool,
    #[prost(bool, tag = "35")]
    pub fault_comms_dbw: bool,
    #[prost(bool, tag = "36")]
    pub fault_comms_dbw_gateway: bool,
    #[prost(bool, tag = "37")]
    pub fault_comms_dbw_steer: bool,
    #[prost(bool, tag = "38")]
    pub fault_comms_dbw_thrtl: bool,
    #[prost(bool, tag = "39")]
    pub fault_comms_dbw_gear: bool,
    #[prost(bool, tag = "40")]
    pub fault_comms_vehicle: bool,
    #[prost(bool, tag = "41")]
    pub fault_comms_actuator: bool,
    #[prost(bool, tag = "42")]
    pub fault_comms_actuator_1: bool,
    #[prost(bool, tag = "43")]
    pub fault_comms_actuator_2: bool,
    #[prost(bool, tag = "44")]
    pub fault_vehicle_speed: bool,
    #[prost(bool, tag = "45")]
    pub fault_actuator_acc_deny: bool,
    #[prost(bool, tag = "46")]
    pub fault_actuator_pedal_sensor: bool,
    #[prost(bool, tag = "47")]
    pub fault_bped_sensor_1: bool,
    #[prost(bool, tag = "48")]
    pub fault_bped_sensor_2: bool,
    #[prost(bool, tag = "49")]
    pub fault_bped_sensor_mismatch: bool,
    #[prost(bool, tag = "50")]
    pub fault_actuator_1: bool,
    #[prost(bool, tag = "51")]
    pub fault_actuator_2: bool,
    #[prost(bool, tag = "52")]
    pub fault_control_performance: bool,
    #[prost(bool, tag = "53")]
    pub fault_param_mismatch: bool,
    #[prost(bool, tag = "54")]
    pub fault_param_limits: bool,
    #[prost(bool, tag = "55")]
    pub fault_calibration: bool,
}
impl ::prost::Name for BrakeDiagnostics {
    const NAME: &'static str = "BrakeDiagnostics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeDiagnostics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeDiagnostics".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BrakeReport {
    #[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 cmd_type: u32,
    #[prost(float, tag = "4")]
    pub pressure_input: f32,
    #[prost(float, tag = "5")]
    pub pressure_cmd: f32,
    #[prost(float, tag = "6")]
    pub pressure_output: f32,
    #[prost(float, tag = "7")]
    pub torque_input: f32,
    #[prost(float, tag = "8")]
    pub torque_cmd: f32,
    #[prost(float, tag = "9")]
    pub torque_output: f32,
    #[prost(float, tag = "10")]
    pub accel_cmd: f32,
    #[prost(float, tag = "11")]
    pub accel_output: f32,
    #[prost(float, tag = "12")]
    pub percent_input: f32,
    #[prost(float, tag = "13")]
    pub percent_cmd: f32,
    #[prost(float, tag = "14")]
    pub percent_output: f32,
    #[prost(bool, tag = "15")]
    pub btsi_cmd: bool,
    #[prost(bool, tag = "16")]
    pub yield_request: bool,
    #[prost(bool, tag = "17")]
    pub limiting_value: bool,
    #[prost(bool, tag = "18")]
    pub limiting_rate: bool,
    #[prost(bool, tag = "19")]
    pub external_control: bool,
    #[prost(bool, tag = "20")]
    pub ready: bool,
    #[prost(bool, tag = "21")]
    pub enabled: bool,
    #[prost(bool, tag = "22")]
    pub override_active: bool,
    #[prost(bool, tag = "23")]
    pub override_other: bool,
    #[prost(bool, tag = "24")]
    pub override_latched: bool,
    #[prost(bool, tag = "25")]
    pub timeout: bool,
    #[prost(bool, tag = "26")]
    pub fault: bool,
    #[prost(bool, tag = "27")]
    pub bad_crc: bool,
    #[prost(bool, tag = "28")]
    pub bad_rc: bool,
    #[prost(bool, tag = "29")]
    pub degraded: bool,
    #[prost(float, tag = "30")]
    pub limit_value: f32,
    #[prost(float, tag = "31")]
    pub brake_available_duration: f32,
    #[prost(bool, tag = "32")]
    pub brake_available_full: bool,
    #[prost(bool, tag = "33")]
    pub req_shift_park: bool,
    #[prost(bool, tag = "34")]
    pub req_park_brake: bool,
    #[prost(bool, tag = "35")]
    pub external_button: bool,
    #[prost(bool, tag = "36")]
    pub comms_loss_armed: bool,
    #[prost(message, optional, tag = "37")]
    pub cmd_src: ::core::option::Option<CmdSrc>,
}
impl ::prost::Name for BrakeReport {
    const NAME: &'static str = "BrakeReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.BrakeReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SystemReport {
    #[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(bool, tag = "3")]
    pub inhibit: bool,
    #[prost(bool, tag = "4")]
    pub validate_cmd_crc_rc: bool,
    #[prost(message, optional, tag = "5")]
    pub system_sync_mode: ::core::option::Option<SystemSyncMode>,
    #[prost(message, optional, tag = "6")]
    pub state: ::core::option::Option<SystemState>,
    #[prost(uint32, tag = "7")]
    pub reason_disengage: u32,
    #[prost(uint32, tag = "8")]
    pub reason_not_ready: u32,
    #[prost(string, tag = "9")]
    pub reason_disengage_str: ::prost::alloc::string::String,
    #[prost(string, tag = "10")]
    pub reason_not_ready_str: ::prost::alloc::string::String,
    #[prost(bool, tag = "11")]
    pub btn_enable: bool,
    #[prost(bool, tag = "12")]
    pub btn_disable: bool,
    #[prost(bool, tag = "13")]
    pub lockout: bool,
    #[prost(bool, tag = "14")]
    pub r#override: bool,
    #[prost(bool, tag = "15")]
    pub ready: bool,
    #[prost(bool, tag = "16")]
    pub enabled: bool,
    #[prost(bool, tag = "17")]
    pub fault: bool,
    #[prost(bool, tag = "18")]
    pub bad_crc: bool,
    #[prost(bool, tag = "19")]
    pub bad_rc: bool,
}
impl ::prost::Name for SystemReport {
    const NAME: &'static str = "SystemReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SystemReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThrottleReport {
    #[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 cmd_type: u32,
    #[prost(float, tag = "4")]
    pub percent_input: f32,
    #[prost(float, tag = "5")]
    pub percent_cmd: f32,
    #[prost(float, tag = "6")]
    pub percent_output: f32,
    #[prost(bool, tag = "7")]
    pub yield_request: bool,
    #[prost(bool, tag = "8")]
    pub limiting_value: bool,
    #[prost(bool, tag = "9")]
    pub limiting_rate: bool,
    #[prost(bool, tag = "10")]
    pub external_control: bool,
    #[prost(bool, tag = "11")]
    pub ready: bool,
    #[prost(bool, tag = "12")]
    pub enabled: bool,
    #[prost(bool, tag = "13")]
    pub override_active: bool,
    #[prost(bool, tag = "14")]
    pub override_other: bool,
    #[prost(bool, tag = "15")]
    pub override_latched: bool,
    #[prost(bool, tag = "16")]
    pub timeout: bool,
    #[prost(bool, tag = "17")]
    pub fault: bool,
    #[prost(bool, tag = "18")]
    pub bad_crc: bool,
    #[prost(bool, tag = "19")]
    pub bad_rc: bool,
    #[prost(bool, tag = "20")]
    pub degraded: bool,
    #[prost(float, tag = "21")]
    pub limit_value: f32,
    #[prost(message, optional, tag = "22")]
    pub cmd_src: ::core::option::Option<CmdSrc>,
}
impl ::prost::Name for ThrottleReport {
    const NAME: &'static str = "ThrottleReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EyeTracker {
    #[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(float, tag = "3")]
    pub attention: f32,
    #[prost(uint32, tag = "4")]
    pub gaze: u32,
    #[prost(bool, tag = "5")]
    pub eyes_present: bool,
}
impl ::prost::Name for EyeTracker {
    const NAME: &'static str = "EyeTracker";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.EyeTracker".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.EyeTracker".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TirePressures {
    #[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(float, tag = "3")]
    pub front_left: f32,
    #[prost(float, tag = "4")]
    pub front_right: f32,
    #[prost(float, tag = "5")]
    pub rear_left: f32,
    #[prost(float, tag = "6")]
    pub rear_right: f32,
    #[prost(float, tag = "7")]
    pub spare: f32,
}
impl ::prost::Name for TirePressures {
    const NAME: &'static str = "TirePressures";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.TirePressures".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.TirePressures".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SteeringReport {
    #[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(float, tag = "3")]
    pub steering_wheel_angle: f32,
    #[prost(float, tag = "4")]
    pub steering_column_torque: f32,
    #[prost(float, tag = "5")]
    pub cmd: f32,
    #[prost(uint32, tag = "6")]
    pub cmd_type: u32,
    #[prost(bool, tag = "7")]
    pub limiting_value: bool,
    #[prost(bool, tag = "8")]
    pub limiting_rate: bool,
    #[prost(bool, tag = "9")]
    pub external_control: bool,
    #[prost(bool, tag = "10")]
    pub ready: bool,
    #[prost(bool, tag = "11")]
    pub enabled: bool,
    #[prost(bool, tag = "12")]
    pub override_active: bool,
    #[prost(bool, tag = "13")]
    pub override_other: bool,
    #[prost(bool, tag = "14")]
    pub override_latched: bool,
    #[prost(bool, tag = "15")]
    pub timeout: bool,
    #[prost(bool, tag = "16")]
    pub fault: bool,
    #[prost(bool, tag = "17")]
    pub bad_crc: bool,
    #[prost(bool, tag = "18")]
    pub bad_rc: bool,
    #[prost(bool, tag = "19")]
    pub degraded: bool,
    #[prost(float, tag = "20")]
    pub limit_rate: f32,
    #[prost(float, tag = "21")]
    pub limit_value: f32,
    #[prost(message, optional, tag = "22")]
    pub cmd_src: ::core::option::Option<CmdSrc>,
}
impl ::prost::Name for SteeringReport {
    const NAME: &'static str = "SteeringReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.SteeringReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MiscCmd {
    #[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 parking_brake: ::core::option::Option<PrkBrkCmd>,
}
impl ::prost::Name for MiscCmd {
    const NAME: &'static str = "MiscCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.MiscCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.MiscCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonitorReport {
    #[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(bool, tag = "3")]
    pub fault: bool,
    #[prost(bool, tag = "4")]
    pub shutoff: bool,
    #[prost(bool, tag = "5")]
    pub shutoff_on_motion: bool,
    #[prost(bool, tag = "6")]
    pub stationary: bool,
    #[prost(uint32, tag = "7")]
    pub fault_test: u32,
    #[prost(uint32, tag = "8")]
    pub fault_system: u32,
    #[prost(uint32, tag = "9")]
    pub fault_steer: u32,
    #[prost(uint32, tag = "10")]
    pub fault_brake: u32,
    #[prost(uint32, tag = "11")]
    pub fault_thrtl: u32,
    #[prost(uint32, tag = "12")]
    pub fault_gear: u32,
    #[prost(uint32, tag = "13")]
    pub fault_ulc: u32,
    #[prost(uint32, tag = "14")]
    pub fault_vehicle_velocity: u32,
    #[prost(uint32, tag = "15")]
    pub fault_steer_feedback: u32,
    #[prost(uint32, tag = "16")]
    pub fault_steer_input: u32,
    #[prost(uint32, tag = "17")]
    pub fault_steer_param: u32,
    #[prost(uint32, tag = "18")]
    pub fault_steer_limit: u32,
    #[prost(uint32, tag = "19")]
    pub fault_steer_override: u32,
    #[prost(uint32, tag = "20")]
    pub fault_steer_cmd: u32,
    #[prost(uint32, tag = "21")]
    pub fault_steer_cmd_rate: u32,
    #[prost(uint32, tag = "22")]
    pub fault_steer_cmd_en: u32,
    #[prost(uint32, tag = "23")]
    pub fault_steer_cmd_sys: u32,
    #[prost(uint32, tag = "24")]
    pub fault_steer_cmd_ovr: u32,
    #[prost(uint32, tag = "25")]
    pub fault_brake_feedback: u32,
    #[prost(uint32, tag = "26")]
    pub fault_brake_input: u32,
    #[prost(uint32, tag = "27")]
    pub fault_brake_param: u32,
    #[prost(uint32, tag = "28")]
    pub fault_brake_limit: u32,
    #[prost(uint32, tag = "29")]
    pub fault_brake_override: u32,
    #[prost(uint32, tag = "30")]
    pub fault_brake_cmd: u32,
    #[prost(uint32, tag = "31")]
    pub fault_brake_cmd_ulc: u32,
    #[prost(uint32, tag = "32")]
    pub fault_brake_cmd_en: u32,
    #[prost(uint32, tag = "33")]
    pub fault_brake_cmd_sys: u32,
    #[prost(uint32, tag = "34")]
    pub fault_brake_cmd_ovr: u32,
    #[prost(uint32, tag = "35")]
    pub fault_thrtl_feedback: u32,
    #[prost(uint32, tag = "36")]
    pub fault_thrtl_input: u32,
    #[prost(uint32, tag = "37")]
    pub fault_thrtl_param: u32,
    #[prost(uint32, tag = "38")]
    pub fault_thrtl_limit: u32,
    #[prost(uint32, tag = "39")]
    pub fault_thrtl_override: u32,
    #[prost(uint32, tag = "40")]
    pub fault_thrtl_cmd: u32,
    #[prost(uint32, tag = "41")]
    pub fault_thrtl_cmd_ulc: u32,
    #[prost(uint32, tag = "42")]
    pub fault_thrtl_cmd_en: u32,
    #[prost(uint32, tag = "43")]
    pub fault_thrtl_cmd_sys: u32,
    #[prost(uint32, tag = "44")]
    pub fault_thrtl_cmd_ovr: u32,
    #[prost(uint32, tag = "45")]
    pub fault_gear_feedback: u32,
    #[prost(uint32, tag = "46")]
    pub fault_gear_input: u32,
    #[prost(uint32, tag = "47")]
    pub fault_gear_param: u32,
    #[prost(uint32, tag = "48")]
    pub fault_gear_override: u32,
    #[prost(uint32, tag = "49")]
    pub fault_gear_cmd: u32,
    #[prost(uint32, tag = "50")]
    pub fault_gear_cmd_ulc: u32,
    #[prost(uint32, tag = "51")]
    pub fault_system_param: u32,
    #[prost(bool, tag = "52")]
    pub steer_cmd_match_oem: bool,
    #[prost(bool, tag = "53")]
    pub steer_cmd_match_dbw: bool,
    #[prost(bool, tag = "54")]
    pub brake_cmd_match_oem: bool,
    #[prost(bool, tag = "55")]
    pub brake_cmd_match_dbw: bool,
    #[prost(bool, tag = "56")]
    pub thrtl_cmd_match_oem: bool,
    #[prost(bool, tag = "57")]
    pub thrtl_cmd_match_dbw: bool,
    #[prost(bool, tag = "58")]
    pub gear_cmd_match_oem: bool,
    #[prost(bool, tag = "59")]
    pub gear_cmd_match_dbw: bool,
}
impl ::prost::Name for MonitorReport {
    const NAME: &'static str = "MonitorReport";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorReport".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.MonitorReport".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ThrottleDiagnostics {
    #[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(bool, tag = "3")]
    pub degraded: bool,
    #[prost(bool, tag = "4")]
    pub degraded_cmd_type: bool,
    #[prost(bool, tag = "5")]
    pub degraded_comms: bool,
    #[prost(bool, tag = "6")]
    pub degraded_comms_dbw: bool,
    #[prost(bool, tag = "7")]
    pub degraded_comms_dbw_gateway: bool,
    #[prost(bool, tag = "8")]
    pub degraded_comms_dbw_steer: bool,
    #[prost(bool, tag = "9")]
    pub degraded_comms_dbw_brake: bool,
    #[prost(bool, tag = "10")]
    pub degraded_comms_dbw_gear: bool,
    #[prost(bool, tag = "11")]
    pub degraded_internal: bool,
    #[prost(bool, tag = "12")]
    pub degraded_control_performance: bool,
    #[prost(bool, tag = "13")]
    pub degraded_param_mismatch: bool,
    #[prost(bool, tag = "14")]
    pub degraded_vehicle: bool,
    #[prost(bool, tag = "15")]
    pub degraded_vehicle_speed: bool,
    #[prost(bool, tag = "16")]
    pub degraded_aped_feedback: bool,
    #[prost(bool, tag = "17")]
    pub degraded_actuator_pedal_sensor: bool,
    #[prost(bool, tag = "18")]
    pub degraded_sensor: bool,
    #[prost(bool, tag = "19")]
    pub degraded_calibration: bool,
    #[prost(bool, tag = "20")]
    pub fault: bool,
    #[prost(bool, tag = "21")]
    pub fault_power: bool,
    #[prost(bool, tag = "22")]
    pub fault_comms: bool,
    #[prost(bool, tag = "23")]
    pub fault_comms_dbw: bool,
    #[prost(bool, tag = "24")]
    pub fault_comms_dbw_gateway: bool,
    #[prost(bool, tag = "25")]
    pub fault_comms_dbw_steer: bool,
    #[prost(bool, tag = "26")]
    pub fault_comms_dbw_brake: bool,
    #[prost(bool, tag = "27")]
    pub fault_comms_dbw_gear: bool,
    #[prost(bool, tag = "28")]
    pub fault_internal: bool,
    #[prost(bool, tag = "29")]
    pub fault_vehicle: bool,
    #[prost(bool, tag = "30")]
    pub fault_vehicle_speed: bool,
    #[prost(bool, tag = "31")]
    pub fault_sensor: bool,
    #[prost(bool, tag = "32")]
    pub fault_aped_sensor_1: bool,
    #[prost(bool, tag = "33")]
    pub fault_aped_sensor_2: bool,
    #[prost(bool, tag = "34")]
    pub fault_aped_sensor_mismatch: bool,
    #[prost(bool, tag = "35")]
    pub fault_actuator_pedal_sensor: bool,
    #[prost(bool, tag = "36")]
    pub fault_control_performance: bool,
    #[prost(bool, tag = "37")]
    pub fault_param_mismatch: bool,
    #[prost(bool, tag = "38")]
    pub fault_param_limits: bool,
    #[prost(bool, tag = "39")]
    pub fault_calibration: bool,
}
impl ::prost::Name for ThrottleDiagnostics {
    const NAME: &'static str = "ThrottleDiagnostics";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.ds_dbw_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleDiagnostics".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.ds_dbw_msgs.msg.ThrottleDiagnostics".into()
    }
}
