// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Field {
    #[prost(float, repeated, tag = "1")]
    pub ranges: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, tag = "2")]
    pub start_angle: f32,
    #[prost(float, tag = "3")]
    pub angular_resolution: f32,
    #[prost(bool, tag = "4")]
    pub protective_field: bool,
}
impl ::prost::Name for Field {
    const NAME: &'static str = "Field";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.Field".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.Field".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MonitoringCase {
    #[prost(int32, tag = "1")]
    pub monitoring_case_number: i32,
    #[prost(int32, repeated, tag = "2")]
    pub fields: ::prost::alloc::vec::Vec<i32>,
    #[prost(bool, repeated, tag = "3")]
    pub fields_valid: ::prost::alloc::vec::Vec<bool>,
}
impl ::prost::Name for MonitoringCase {
    const NAME: &'static str = "MonitoringCase";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.MonitoringCase"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.MonitoringCase"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplicationInputs {
    #[prost(bool, repeated, tag = "1")]
    pub unsafe_inputs_input_sources: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "2")]
    pub unsafe_inputs_flags: ::prost::alloc::vec::Vec<bool>,
    #[prost(uint32, repeated, tag = "3")]
    pub monitoring_case_number_inputs: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, repeated, tag = "4")]
    pub monitoring_case_number_inputs_flags: ::prost::alloc::vec::Vec<bool>,
    #[prost(int32, tag = "5")]
    pub linear_velocity_inputs_velocity_0: i32,
    #[prost(bool, tag = "6")]
    pub linear_velocity_inputs_velocity_0_valid: bool,
    #[prost(bool, tag = "7")]
    pub linear_velocity_inputs_velocity_0_transmitted_safely: bool,
    #[prost(int32, tag = "8")]
    pub linear_velocity_inputs_velocity_1: i32,
    #[prost(bool, tag = "9")]
    pub linear_velocity_inputs_velocity_1_valid: bool,
    #[prost(bool, tag = "10")]
    pub linear_velocity_inputs_velocity_1_transmitted_safely: bool,
    #[prost(uint32, tag = "11")]
    pub sleep_mode_input: u32,
}
impl ::prost::Name for ApplicationInputs {
    const NAME: &'static str = "ApplicationInputs";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationInputs"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationInputs"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplicationOutputs {
    #[prost(bool, repeated, tag = "1")]
    pub evaluation_path_outputs_eval_out: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "2")]
    pub evaluation_path_outputs_is_safe: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "3")]
    pub evaluation_path_outputs_is_valid: ::prost::alloc::vec::Vec<bool>,
    #[prost(uint32, repeated, tag = "4")]
    pub monitoring_case_number_outputs: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, repeated, tag = "5")]
    pub monitoring_case_number_outputs_flags: ::prost::alloc::vec::Vec<bool>,
    #[prost(uint32, tag = "6")]
    pub sleep_mode_output: u32,
    #[prost(bool, tag = "7")]
    pub sleep_mode_output_valid: bool,
    #[prost(bool, tag = "8")]
    pub error_flag_contamination_warning: bool,
    #[prost(bool, tag = "9")]
    pub error_flag_contamination_error: bool,
    #[prost(bool, tag = "10")]
    pub error_flag_manipulation_error: bool,
    #[prost(bool, tag = "11")]
    pub error_flag_glare: bool,
    #[prost(bool, tag = "12")]
    pub error_flag_reference_contour_intruded: bool,
    #[prost(bool, tag = "13")]
    pub error_flag_critical_error: bool,
    #[prost(bool, tag = "14")]
    pub error_flags_are_valid: bool,
    #[prost(int32, tag = "15")]
    pub linear_velocity_outputs_velocity_0: i32,
    #[prost(bool, tag = "16")]
    pub linear_velocity_outputs_velocity_0_valid: bool,
    #[prost(bool, tag = "17")]
    pub linear_velocity_outputs_velocity_0_transmitted_safely: bool,
    #[prost(int32, tag = "18")]
    pub linear_velocity_outputs_velocity_1: i32,
    #[prost(bool, tag = "19")]
    pub linear_velocity_outputs_velocity_1_valid: bool,
    #[prost(bool, tag = "20")]
    pub linear_velocity_outputs_velocity_1_transmitted_safely: bool,
    #[prost(int32, repeated, tag = "21")]
    pub resulting_velocity: ::prost::alloc::vec::Vec<i32>,
    #[prost(bool, repeated, tag = "22")]
    pub resulting_velocity_flags: ::prost::alloc::vec::Vec<bool>,
}
impl ::prost::Name for ApplicationOutputs {
    const NAME: &'static str = "ApplicationOutputs";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationOutputs"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationOutputs"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ApplicationData {
    #[prost(message, optional, tag = "1")]
    pub inputs: ::core::option::Option<ApplicationInputs>,
    #[prost(message, optional, tag = "2")]
    pub outputs: ::core::option::Option<ApplicationOutputs>,
}
impl ::prost::Name for ApplicationData {
    const NAME: &'static str = "ApplicationData";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ApplicationData"
            .into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DataHeader {
    #[prost(uint32, tag = "1")]
    pub version_version: u32,
    #[prost(uint32, tag = "2")]
    pub version_major_version: u32,
    #[prost(uint32, tag = "3")]
    pub version_minor_version: u32,
    #[prost(uint32, tag = "4")]
    pub version_release: u32,
    #[prost(uint32, tag = "5")]
    pub serial_number_of_device: u32,
    #[prost(uint32, tag = "6")]
    pub serial_number_of_channel_plug: u32,
    #[prost(uint32, tag = "7")]
    pub channel_number: u32,
    #[prost(uint32, tag = "8")]
    pub sequence_number: u32,
    #[prost(uint32, tag = "9")]
    pub scan_number: u32,
    #[prost(uint32, tag = "10")]
    pub timestamp_date: u32,
    #[prost(uint32, tag = "11")]
    pub timestamp_time: u32,
}
impl ::prost::Name for DataHeader {
    const NAME: &'static str = "DataHeader";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.DataHeader"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.DataHeader"
            .into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct DerivedValues {
    #[prost(uint32, tag = "1")]
    pub multiplication_factor: u32,
    #[prost(uint32, tag = "2")]
    pub number_of_beams: u32,
    #[prost(uint32, tag = "3")]
    pub scan_time: u32,
    #[prost(float, tag = "4")]
    pub start_angle: f32,
    #[prost(float, tag = "5")]
    pub angular_beam_resolution: f32,
    #[prost(uint32, tag = "6")]
    pub interbeam_period: u32,
}
impl ::prost::Name for DerivedValues {
    const NAME: &'static str = "DerivedValues";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.DerivedValues"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.DerivedValues"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GeneralSystemState {
    #[prost(bool, tag = "1")]
    pub run_mode_active: bool,
    #[prost(bool, tag = "2")]
    pub standby_mode_active: bool,
    #[prost(bool, tag = "3")]
    pub contamination_warning: bool,
    #[prost(bool, tag = "4")]
    pub contamination_error: bool,
    #[prost(bool, tag = "5")]
    pub reference_contour_status: bool,
    #[prost(bool, tag = "6")]
    pub manipulation_status: bool,
    #[prost(bool, repeated, tag = "7")]
    pub safe_cut_off_path: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "8")]
    pub non_safe_cut_off_path: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "9")]
    pub reset_required_cut_off_path: ::prost::alloc::vec::Vec<bool>,
    #[prost(uint32, tag = "10")]
    pub current_monitoring_case_no_table_1: u32,
    #[prost(uint32, tag = "11")]
    pub current_monitoring_case_no_table_2: u32,
    #[prost(uint32, tag = "12")]
    pub current_monitoring_case_no_table_3: u32,
    #[prost(uint32, tag = "13")]
    pub current_monitoring_case_no_table_4: u32,
    #[prost(bool, tag = "14")]
    pub application_error: bool,
    #[prost(bool, tag = "15")]
    pub device_error: bool,
}
impl ::prost::Name for GeneralSystemState {
    const NAME: &'static str = "GeneralSystemState";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.GeneralSystemState"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.GeneralSystemState"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IntrusionDatum {
    #[prost(uint32, tag = "1")]
    pub size: u32,
    #[prost(bool, repeated, tag = "2")]
    pub flags: ::prost::alloc::vec::Vec<bool>,
}
impl ::prost::Name for IntrusionDatum {
    const NAME: &'static str = "IntrusionDatum";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.IntrusionDatum"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.IntrusionDatum"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct IntrusionData {
    #[prost(message, repeated, tag = "1")]
    pub data: ::prost::alloc::vec::Vec<IntrusionDatum>,
}
impl ::prost::Name for IntrusionData {
    const NAME: &'static str = "IntrusionData";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.IntrusionData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.IntrusionData"
            .into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ScanPoint {
    #[prost(float, tag = "1")]
    pub angle: f32,
    #[prost(uint32, tag = "2")]
    pub distance: u32,
    #[prost(uint32, tag = "3")]
    pub reflectivity: u32,
    #[prost(bool, tag = "4")]
    pub valid: bool,
    #[prost(bool, tag = "5")]
    pub infinite: bool,
    #[prost(bool, tag = "6")]
    pub glare: bool,
    #[prost(bool, tag = "7")]
    pub reflector: bool,
    #[prost(bool, tag = "8")]
    pub contamination: bool,
    #[prost(bool, tag = "9")]
    pub contamination_warning: bool,
}
impl ::prost::Name for ScanPoint {
    const NAME: &'static str = "ScanPoint";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ScanPoint"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ScanPoint"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MeasurementData {
    #[prost(uint32, tag = "1")]
    pub number_of_beams: u32,
    #[prost(message, repeated, tag = "2")]
    pub scan_points: ::prost::alloc::vec::Vec<ScanPoint>,
}
impl ::prost::Name for MeasurementData {
    const NAME: &'static str = "MeasurementData";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.MeasurementData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.MeasurementData"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RawMicroScanData {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<DataHeader>,
    #[prost(message, optional, tag = "2")]
    pub derived_values: ::core::option::Option<DerivedValues>,
    #[prost(message, optional, tag = "3")]
    pub general_system_state: ::core::option::Option<GeneralSystemState>,
    #[prost(message, optional, tag = "4")]
    pub measurement_data: ::core::option::Option<MeasurementData>,
    #[prost(message, optional, tag = "5")]
    pub intrusion_data: ::core::option::Option<IntrusionData>,
    #[prost(message, optional, tag = "6")]
    pub application_data: ::core::option::Option<ApplicationData>,
}
impl ::prost::Name for RawMicroScanData {
    const NAME: &'static str = "RawMicroScanData";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.RawMicroScanData"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.RawMicroScanData"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExtendedLaserScan {
    #[prost(message, optional, tag = "1")]
    pub laser_scan: ::core::option::Option<super::super::sensor_msgs::msg::LaserScan>,
    #[prost(bool, repeated, tag = "2")]
    pub reflektor_status: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "3")]
    pub reflektor_median: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "4")]
    pub intrusion: ::prost::alloc::vec::Vec<bool>,
}
impl ::prost::Name for ExtendedLaserScan {
    const NAME: &'static str = "ExtendedLaserScan";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ExtendedLaserScan"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.ExtendedLaserScan"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OutputPaths {
    #[prost(bool, repeated, tag = "1")]
    pub status: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "2")]
    pub is_safe: ::prost::alloc::vec::Vec<bool>,
    #[prost(bool, repeated, tag = "3")]
    pub is_valid: ::prost::alloc::vec::Vec<bool>,
    #[prost(int32, tag = "4")]
    pub active_monitoring_case: i32,
}
impl ::prost::Name for OutputPaths {
    const NAME: &'static str = "OutputPaths";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.OutputPaths"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.sick_safetyscanners2_interfaces.msg.OutputPaths"
            .into()
    }
}
