// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActuatorUniqueIdReq {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
}
impl ::prost::Name for ActuatorUniqueIdReq {
    const NAME: &'static str = "ActuatorUniqueIdReq";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ActuatorUniqueIdReq"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ActuatorUniqueIdReq"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PriorityConfigCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub handshake_priority: u32,
    #[prost(uint32, tag = "4")]
    pub auto_reply_priority: u32,
    #[prost(uint32, tag = "5")]
    pub scheduled_priority: u32,
    #[prost(uint32, tag = "6")]
    pub polled_priority: u32,
}
impl ::prost::Name for PriorityConfigCmd {
    const NAME: &'static str = "PriorityConfigCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PriorityConfigCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PriorityConfigCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReassignCommandIdCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub command_id_index: u32,
    #[prost(uint32, tag = "4")]
    pub user_command_id: u32,
    #[prost(bool, tag = "5")]
    pub disable_default_command_id: bool,
}
impl ::prost::Name for ReassignCommandIdCmd {
    const NAME: &'static str = "ReassignCommandIdCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReassignCommandIdCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReassignCommandIdCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub shaft_extension: f64,
}
impl ::prost::Name for PositionRpt {
    const NAME: &'static str = "PositionRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionRpt"
            .into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportIndex {
    #[prost(uint32, tag = "1")]
    pub report_index: u32,
}
impl ::prost::Name for ReportIndex {
    const NAME: &'static str = "ReportIndex";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReportIndex"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReportIndex"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ScheduledReportRatesReq {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(message, optional, tag = "3")]
    pub index_1: ::core::option::Option<ReportIndex>,
    #[prost(uint32, tag = "4")]
    pub index_1_report_time: u32,
    #[prost(message, optional, tag = "5")]
    pub index_2: ::core::option::Option<ReportIndex>,
    #[prost(uint32, tag = "6")]
    pub index_2_report_time: u32,
}
impl ::prost::Name for ScheduledReportRatesReq {
    const NAME: &'static str = "ScheduledReportRatesReq";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ScheduledReportRatesReq"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ScheduledReportRatesReq"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigureOutputsKpKiCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub kp: u32,
    #[prost(uint32, tag = "4")]
    pub ki: u32,
}
impl ::prost::Name for ConfigureOutputsKpKiCmd {
    const NAME: &'static str = "ConfigureOutputsKpKiCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsKpKiCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsKpKiCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MotorOverCurrentConfigCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub over_current: u32,
}
impl ::prost::Name for MotorOverCurrentConfigCmd {
    const NAME: &'static str = "MotorOverCurrentConfigCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.MotorOverCurrentConfigCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.MotorOverCurrentConfigCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoZeroCalCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(bool, tag = "3")]
    pub auto_reply: bool,
}
impl ::prost::Name for AutoZeroCalCmd {
    const NAME: &'static str = "AutoZeroCalCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.AutoZeroCalCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.AutoZeroCalCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionReachErrorTimeConfigCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub position_reach_error_time: u32,
}
impl ::prost::Name for PositionReachErrorTimeConfigCmd {
    const NAME: &'static str = "PositionReachErrorTimeConfigCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionReachErrorTimeConfigCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionReachErrorTimeConfigCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SoftwareVersionReq {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
}
impl ::prost::Name for SoftwareVersionReq {
    const NAME: &'static str = "SoftwareVersionReq";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.SoftwareVersionReq"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.SoftwareVersionReq"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EnhancedPositionRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub shaft_extension: f64,
    #[prost(bool, tag = "3")]
    pub motor_overload_error: bool,
    #[prost(bool, tag = "4")]
    pub clutch_overload_error: bool,
    #[prost(bool, tag = "5")]
    pub motor_open_load_error: bool,
    #[prost(bool, tag = "6")]
    pub clutch_open_load_error: bool,
    #[prost(bool, tag = "7")]
    pub position_reach_error: bool,
    #[prost(bool, tag = "8")]
    pub hardware_warning_1_error: bool,
    #[prost(bool, tag = "9")]
    pub hardware_warning_2_error: bool,
    #[prost(uint32, tag = "10")]
    pub motor_current: u32,
}
impl ::prost::Name for EnhancedPositionRpt {
    const NAME: &'static str = "EnhancedPositionRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.EnhancedPositionRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.EnhancedPositionRpt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigureOutputsKdFreqDeadbandCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub kd: u32,
    #[prost(uint32, tag = "4")]
    pub closed_loop_freq: u32,
    #[prost(double, tag = "5")]
    pub error_dead_band: f64,
}
impl ::prost::Name for ConfigureOutputsKdFreqDeadbandCmd {
    const NAME: &'static str = "ConfigureOutputsKdFreqDeadbandCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsKdFreqDeadbandCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsKdFreqDeadbandCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ConfigureOutputsPwmFreqCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub min_pwm_pct: u32,
    #[prost(uint32, tag = "4")]
    pub max_pwm_pct: u32,
    #[prost(uint32, tag = "5")]
    pub pwm_freq: u32,
}
impl ::prost::Name for ConfigureOutputsPwmFreqCmd {
    const NAME: &'static str = "ConfigureOutputsPwmFreqCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsPwmFreqCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ConfigureOutputsPwmFreqCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SoftwareRevisionRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub software_version_0: u32,
    #[prost(uint32, tag = "3")]
    pub software_version_1: u32,
    #[prost(uint32, tag = "4")]
    pub software_version_2: u32,
    #[prost(uint32, tag = "5")]
    pub software_day: u32,
    #[prost(uint32, tag = "6")]
    pub software_month_year: u32,
}
impl ::prost::Name for SoftwareRevisionRpt {
    const NAME: &'static str = "SoftwareRevisionRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.SoftwareRevisionRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.SoftwareRevisionRpt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UniqueDeviceIdRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint64, tag = "2")]
    pub actuator_id_first_6: u64,
    #[prost(uint64, tag = "3")]
    pub actuator_id_last_6: u64,
}
impl ::prost::Name for UniqueDeviceIdRpt {
    const NAME: &'static str = "UniqueDeviceIdRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.UniqueDeviceIdRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.UniqueDeviceIdRpt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MotorCurrentRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub motor_current: u32,
}
impl ::prost::Name for MotorCurrentRpt {
    const NAME: &'static str = "MotorCurrentRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.MotorCurrentRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.MotorCurrentRpt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ZeroingMessageRpt {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub chip_1_voltage: u32,
    #[prost(uint32, tag = "3")]
    pub chip_2_voltage: u32,
    #[prost(uint32, tag = "4")]
    pub chip_error_1: u32,
    #[prost(uint32, tag = "5")]
    pub chip_error_2: u32,
}
impl ::prost::Name for ZeroingMessageRpt {
    const NAME: &'static str = "ZeroingMessageRpt";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ZeroingMessageRpt"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ZeroingMessageRpt"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResetCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub reset_type: u32,
    #[prost(bool, tag = "4")]
    pub reset_user_rpt_id: bool,
    #[prost(bool, tag = "5")]
    pub reset_user_cmd_id_1: bool,
    #[prost(bool, tag = "6")]
    pub reset_user_cmd_id_2: bool,
    #[prost(bool, tag = "7")]
    pub reset_user_cmd_id_3: bool,
    #[prost(bool, tag = "8")]
    pub reset_user_cmd_id_4: bool,
    #[prost(bool, tag = "9")]
    pub disable_user_rpt_id: bool,
    #[prost(bool, tag = "10")]
    pub reenable_default_cmd_id: bool,
}
impl ::prost::Name for ResetCmd {
    const NAME: &'static str = "ResetCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ResetCmd".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ResetCmd".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportPollReq {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(message, repeated, tag = "3")]
    pub report_indices: ::prost::alloc::vec::Vec<ReportIndex>,
}
impl ::prost::Name for ReportPollReq {
    const NAME: &'static str = "ReportPollReq";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReportPollReq"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReportPollReq"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PositionCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(bool, tag = "3")]
    pub auto_reply: bool,
    #[prost(double, tag = "4")]
    pub position: f64,
    #[prost(bool, tag = "5")]
    pub clutch_enable: bool,
    #[prost(bool, tag = "6")]
    pub motor_enable: bool,
}
impl ::prost::Name for PositionCmd {
    const NAME: &'static str = "PositionCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.PositionCmd"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReassignReportIdCmd {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(bool, tag = "2")]
    pub confirm: bool,
    #[prost(uint32, tag = "3")]
    pub user_report_id: u32,
    #[prost(bool, tag = "4")]
    pub use_user_report_id: bool,
}
impl ::prost::Name for ReassignReportIdCmd {
    const NAME: &'static str = "ReassignReportIdCmd";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReassignReportIdCmd"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.kartech_linear_actuator_msgs.msg.ReassignReportIdCmd"
            .into()
    }
}
