// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SlipStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub is_slipping: bool,
}
impl ::prost::Name for SlipStatus {
    const NAME: &'static str = "SlipStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.SlipStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.SlipStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Button {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub is_pressed: bool,
    #[prost(message, optional, tag = "3")]
    pub last_start_pressed_time: ::core::option::Option<
        super::super::builtin_interfaces::msg::Time,
    >,
    #[prost(message, optional, tag = "4")]
    pub last_pressed_duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
}
impl ::prost::Name for Button {
    const NAME: &'static str = "Button";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.Button".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.Button".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HazardDetection {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub r#type: u32,
}
impl ::prost::Name for HazardDetection {
    const NAME: &'static str = "HazardDetection";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.HazardDetection".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.HazardDetection".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct LedColor {
    #[prost(uint32, tag = "1")]
    pub red: u32,
    #[prost(uint32, tag = "2")]
    pub green: u32,
    #[prost(uint32, tag = "3")]
    pub blue: u32,
}
impl ::prost::Name for LedColor {
    const NAME: &'static str = "LedColor";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.LedColor".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.LedColor".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LightringLeds {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub leds: ::prost::alloc::vec::Vec<LedColor>,
    #[prost(bool, tag = "3")]
    pub override_system: bool,
}
impl ::prost::Name for LightringLeds {
    const NAME: &'static str = "LightringLeds";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.LightringLeds".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.LightringLeds".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HazardDetectionVector {
    #[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<HazardDetection>,
}
impl ::prost::Name for HazardDetectionVector {
    const NAME: &'static str = "HazardDetectionVector";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.HazardDetectionVector"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.HazardDetectionVector"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct KidnapStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub is_kidnapped: bool,
}
impl ::prost::Name for KidnapStatus {
    const NAME: &'static str = "KidnapStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.KidnapStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.KidnapStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StopStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub is_stopped: bool,
}
impl ::prost::Name for StopStatus {
    const NAME: &'static str = "StopStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.StopStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.StopStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct InterfaceButtons {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub button_1: ::core::option::Option<Button>,
    #[prost(message, optional, tag = "3")]
    pub button_power: ::core::option::Option<Button>,
    #[prost(message, optional, tag = "4")]
    pub button_2: ::core::option::Option<Button>,
}
impl ::prost::Name for InterfaceButtons {
    const NAME: &'static str = "InterfaceButtons";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.InterfaceButtons".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.InterfaceButtons".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrIntensity {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "2")]
    pub value: i32,
}
impl ::prost::Name for IrIntensity {
    const NAME: &'static str = "IrIntensity";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.IrIntensity".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.IrIntensity".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrIntensityVector {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub readings: ::prost::alloc::vec::Vec<IrIntensity>,
}
impl ::prost::Name for IrIntensityVector {
    const NAME: &'static str = "IrIntensityVector";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.IrIntensityVector".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.IrIntensityVector".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelTicks {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "2")]
    pub ticks_left: i32,
    #[prost(int32, tag = "3")]
    pub ticks_right: i32,
}
impl ::prost::Name for WheelTicks {
    const NAME: &'static str = "WheelTicks";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelTicks".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelTicks".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AudioNote {
    #[prost(uint32, tag = "1")]
    pub frequency: u32,
    #[prost(message, optional, tag = "2")]
    pub max_runtime: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
}
impl ::prost::Name for AudioNote {
    const NAME: &'static str = "AudioNote";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.AudioNote".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.AudioNote".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AudioNoteVector {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub notes: ::prost::alloc::vec::Vec<AudioNote>,
    #[prost(bool, tag = "3")]
    pub append: bool,
}
impl ::prost::Name for AudioNoteVector {
    const NAME: &'static str = "AudioNoteVector";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.AudioNoteVector".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.AudioNoteVector".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DockStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub dock_visible: bool,
    #[prost(bool, tag = "3")]
    pub is_docked: bool,
}
impl ::prost::Name for DockStatus {
    const NAME: &'static str = "DockStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.DockStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.DockStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Mouse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub integrated_x: f32,
    #[prost(float, tag = "3")]
    pub integrated_y: f32,
    #[prost(uint32, tag = "4")]
    pub frame_id: u32,
    #[prost(uint32, tag = "5")]
    pub last_squal: u32,
}
impl ::prost::Name for Mouse {
    const NAME: &'static str = "Mouse";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.Mouse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.Mouse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "2")]
    pub current_ma_left: i32,
    #[prost(int32, tag = "3")]
    pub current_ma_right: i32,
    #[prost(int32, tag = "4")]
    pub pwm_left: i32,
    #[prost(int32, tag = "5")]
    pub pwm_right: i32,
    #[prost(bool, tag = "6")]
    pub wheels_enabled: bool,
}
impl ::prost::Name for WheelStatus {
    const NAME: &'static str = "WheelStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WheelVels {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub velocity_left: f32,
    #[prost(float, tag = "3")]
    pub velocity_right: f32,
}
impl ::prost::Name for WheelVels {
    const NAME: &'static str = "WheelVels";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelVels".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.WheelVels".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IrOpcode {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub opcode: u32,
    #[prost(uint32, tag = "3")]
    pub sensor: u32,
}
impl ::prost::Name for IrOpcode {
    const NAME: &'static str = "IrOpcode";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.irobot_create_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.irobot_create_msgs.msg.IrOpcode".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.irobot_create_msgs.msg.IrOpcode".into()
    }
}
