// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Drive {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub mode: i32,
    #[prost(float, repeated, tag = "3")]
    pub drivers: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for Drive {
    const NAME: &'static str = "Drive";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Drive".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Drive".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Power {
    #[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 shore_power_connected: i32,
    #[prost(int32, tag = "4")]
    pub battery_connected: i32,
    #[prost(int32, tag = "5")]
    pub power_12v_user_nominal: i32,
    #[prost(int32, tag = "6")]
    pub charger_connected: i32,
    #[prost(int32, tag = "7")]
    pub charging_complete: i32,
    #[prost(float, repeated, tag = "8")]
    pub measured_voltages: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "9")]
    pub measured_currents: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for Power {
    const NAME: &'static str = "Power";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Power".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Power".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Fans {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, repeated, tag = "2")]
    pub fans: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for Fans {
    const NAME: &'static str = "Fans";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Fans".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Fans".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopStatus {
    #[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 stop_power_status: bool,
    #[prost(bool, tag = "4")]
    pub external_stop_present: bool,
    #[prost(bool, tag = "5")]
    pub needs_reset: bool,
}
impl ::prost::Name for StopStatus {
    const NAME: &'static str = "StopStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.StopStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.StopStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DriveFeedback {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(float, tag = "2")]
    pub current: f32,
    #[prost(float, tag = "3")]
    pub duty_cycle: f32,
    #[prost(float, tag = "4")]
    pub bridge_temperature: f32,
    #[prost(float, tag = "5")]
    pub motor_temperature: f32,
    #[prost(float, tag = "6")]
    pub measured_velocity: f32,
    #[prost(float, tag = "7")]
    pub measured_travel: f32,
    #[prost(bool, tag = "8")]
    pub driver_fault: bool,
}
impl ::prost::Name for DriveFeedback {
    const NAME: &'static str = "DriveFeedback";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.DriveFeedback".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.DriveFeedback".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Feedback {
    #[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, repeated, tag = "3")]
    pub drivers: ::prost::alloc::vec::Vec<DriveFeedback>,
    #[prost(int32, tag = "4")]
    pub commanded_mode: i32,
    #[prost(int32, tag = "5")]
    pub actual_mode: i32,
}
impl ::prost::Name for Feedback {
    const NAME: &'static str = "Feedback";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Feedback".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Feedback".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Rgb {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub red: u32,
    #[prost(uint32, tag = "3")]
    pub green: u32,
    #[prost(uint32, tag = "4")]
    pub blue: u32,
}
impl ::prost::Name for Rgb {
    const NAME: &'static str = "RGB";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.RGB".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.RGB".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Lights {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub lights: ::prost::alloc::vec::Vec<Rgb>,
}
impl ::prost::Name for Lights {
    const NAME: &'static str = "Lights";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Lights".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Lights".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Status {
    #[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 hardware_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub firmware_version: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub mcu_uptime: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(message, optional, tag = "6")]
    pub connection_uptime: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(float, tag = "7")]
    pub pcb_temperature: f32,
    #[prost(float, tag = "8")]
    pub mcu_temperature: f32,
}
impl ::prost::Name for Status {
    const NAME: &'static str = "Status";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.clearpath_platform_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.clearpath_platform_msgs.msg.Status".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.clearpath_platform_msgs.msg.Status".into()
    }
}
