// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActiveMonitoringCase {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub monitoring_case_1: u32,
    #[prost(uint32, tag = "3")]
    pub monitoring_case_2: u32,
    #[prost(uint32, tag = "4")]
    pub monitoring_case_3: u32,
    #[prost(uint32, tag = "5")]
    pub monitoring_case_4: u32,
}
impl ::prost::Name for ActiveMonitoringCase {
    const NAME: &'static str = "ActiveMonitoringCase";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ActiveMonitoringCase"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ActiveMonitoringCase"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeneralStatus {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub run_mode_active: u32,
    #[prost(uint32, tag = "3")]
    pub device_error: u32,
    #[prost(uint32, tag = "4")]
    pub application_error: u32,
    #[prost(uint32, tag = "5")]
    pub sleep_mode: u32,
    #[prost(uint32, tag = "6")]
    pub wait_for_input: u32,
    #[prost(uint32, tag = "7")]
    pub wait_for_cluster: u32,
    #[prost(uint32, tag = "8")]
    pub contamination_warning: u32,
    #[prost(uint32, tag = "9")]
    pub contamination_error: u32,
    #[prost(uint32, tag = "10")]
    pub dead_zone_detection: u32,
    #[prost(uint32, tag = "11")]
    pub temperature_warning: u32,
}
impl ::prost::Name for GeneralStatus {
    const NAME: &'static str = "GeneralStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.GeneralStatus"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.GeneralStatus"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeviceStatus {
    #[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(message, optional, tag = "4")]
    pub general_status: ::core::option::Option<GeneralStatus>,
    #[prost(uint32, tag = "5")]
    pub cop_safety_related: u32,
    #[prost(uint32, tag = "6")]
    pub cop_non_safety_related: u32,
    #[prost(uint32, tag = "7")]
    pub cop_reset_required: u32,
    #[prost(message, optional, tag = "8")]
    pub active_monitoring_case: ::core::option::Option<ActiveMonitoringCase>,
    #[prost(uint32, tag = "9")]
    pub contamination_level: u32,
}
impl ::prost::Name for DeviceStatus {
    const NAME: &'static str = "DeviceStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.DeviceStatus"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.DeviceStatus"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldInformation {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub field_id: u32,
    #[prost(uint32, tag = "3")]
    pub field_set_id: u32,
    #[prost(uint32, tag = "4")]
    pub field_result: u32,
    #[prost(uint32, tag = "5")]
    pub eval_method: u32,
    #[prost(uint32, tag = "6")]
    pub field_active: u32,
}
impl ::prost::Name for FieldInformation {
    const NAME: &'static str = "FieldInformation";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.FieldInformation"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.FieldInformation"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IoConfigured {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_5: u32,
    #[prost(uint32, tag = "3")]
    pub pin_6: u32,
    #[prost(uint32, tag = "4")]
    pub pin_7: u32,
    #[prost(uint32, tag = "5")]
    pub pin_8: u32,
}
impl ::prost::Name for IoConfigured {
    const NAME: &'static str = "IOConfigured";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOConfigured"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOConfigured"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IoDirection {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_5: u32,
    #[prost(uint32, tag = "3")]
    pub pin_6: u32,
    #[prost(uint32, tag = "4")]
    pub pin_7: u32,
    #[prost(uint32, tag = "5")]
    pub pin_8: u32,
}
impl ::prost::Name for IoDirection {
    const NAME: &'static str = "IODirection";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IODirection"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IODirection"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IoInputValues {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_5: u32,
    #[prost(uint32, tag = "3")]
    pub pin_6: u32,
    #[prost(uint32, tag = "4")]
    pub pin_7: u32,
    #[prost(uint32, tag = "5")]
    pub pin_8: u32,
}
impl ::prost::Name for IoInputValues {
    const NAME: &'static str = "IOInputValues";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOInputValues"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOInputValues"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IoOutputValues {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub pin_5: u32,
    #[prost(uint32, tag = "3")]
    pub pin_6: u32,
    #[prost(uint32, tag = "4")]
    pub pin_7: u32,
    #[prost(uint32, tag = "5")]
    pub pin_8: u32,
}
impl ::prost::Name for IoOutputValues {
    const NAME: &'static str = "IOOutputValues";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOOutputValues"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOOutputValues"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IoossdsState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub ossd1a: u32,
    #[prost(uint32, tag = "3")]
    pub ossd1b: u32,
    #[prost(uint32, tag = "4")]
    pub ossd2a: u32,
    #[prost(uint32, tag = "5")]
    pub ossd2b: u32,
}
impl ::prost::Name for IoossdsState {
    const NAME: &'static str = "IOOSSDSState";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOOSSDSState"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.IOOSSDSState"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CameraIo {
    #[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 configured: ::core::option::Option<IoConfigured>,
    #[prost(message, optional, tag = "4")]
    pub direction: ::core::option::Option<IoDirection>,
    #[prost(message, optional, tag = "5")]
    pub input_values: ::core::option::Option<IoInputValues>,
    #[prost(message, optional, tag = "6")]
    pub output_values: ::core::option::Option<IoOutputValues>,
    #[prost(message, optional, tag = "7")]
    pub ossds_state: ::core::option::Option<IoossdsState>,
    #[prost(uint32, tag = "8")]
    pub ossds_dyn_count: u32,
    #[prost(uint32, tag = "9")]
    pub ossds_crc: u32,
    #[prost(uint32, tag = "10")]
    pub ossds_io_status: u32,
    #[prost(uint32, tag = "11")]
    pub dynamic_speed_a: u32,
    #[prost(uint32, tag = "12")]
    pub dynamic_speed_b: u32,
    #[prost(uint32, tag = "13")]
    pub dynamic_valid_flags: u32,
}
impl ::prost::Name for CameraIo {
    const NAME: &'static str = "CameraIO";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.CameraIO".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.CameraIO".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoiObservationResultData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub task_result: u32,
    #[prost(uint32, tag = "3")]
    pub result_safe: u32,
    #[prost(uint32, tag = "4")]
    pub result_valid: u32,
    #[prost(uint32, tag = "5")]
    pub distance_valid: u32,
    #[prost(uint32, tag = "6")]
    pub distance_safe: u32,
}
impl ::prost::Name for RoiObservationResultData {
    const NAME: &'static str = "ROIObservationResultData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIObservationResultData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIObservationResultData"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoiObservationSafetyData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub invalid_due_to_invalid_pixels: u32,
    #[prost(uint32, tag = "3")]
    pub invalid_due_to_variance: u32,
    #[prost(uint32, tag = "4")]
    pub invalid_due_to_overexposure: u32,
    #[prost(uint32, tag = "5")]
    pub invalid_due_to_underexposure: u32,
    #[prost(uint32, tag = "6")]
    pub invalid_due_to_temporal_variance: u32,
    #[prost(uint32, tag = "7")]
    pub invalid_due_to_outside_of_measurement_range: u32,
    #[prost(uint32, tag = "8")]
    pub invalid_due_to_retro_reflector_interference: u32,
    #[prost(uint32, tag = "9")]
    pub contamination_error: u32,
    #[prost(uint32, tag = "10")]
    pub quality_class: u32,
    #[prost(uint32, tag = "11")]
    pub slot_active: u32,
}
impl ::prost::Name for RoiObservationSafetyData {
    const NAME: &'static str = "ROIObservationSafetyData";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIObservationSafetyData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIObservationSafetyData"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Roi {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(message, optional, tag = "3")]
    pub result_data: ::core::option::Option<RoiObservationResultData>,
    #[prost(message, optional, tag = "4")]
    pub safety_data: ::core::option::Option<RoiObservationSafetyData>,
    #[prost(uint32, tag = "5")]
    pub distance_value: u32,
}
impl ::prost::Name for Roi {
    const NAME: &'static str = "ROI";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROI".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROI".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoiArray {
    #[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 rois: ::prost::alloc::vec::Vec<Roi>,
}
impl ::prost::Name for RoiArray {
    const NAME: &'static str = "ROIArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.ROIArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FieldInformationArray {
    #[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 fields: ::prost::alloc::vec::Vec<FieldInformation>,
}
impl ::prost::Name for FieldInformationArray {
    const NAME: &'static str = "FieldInformationArray";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.FieldInformationArray"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.sick_safevisionary_interfaces.msg.FieldInformationArray"
            .into()
    }
}
