namespace Sick.SafetyScanners.DataStructures; /// /// Contains application outputs from a UDP data packet /// public sealed class ApplicationOutputs { /// /// Gets or sets the state of the non-safe cut-off paths (eval out) /// public IReadOnlyList EvalOut { get; init; } = Array.Empty(); /// /// Gets or sets whether a cut-off path from the output paths is safe /// public IReadOnlyList EvalOutIsSafe { get; init; } = Array.Empty(); /// /// Gets or sets whether the output path is valid /// public IReadOnlyList EvalOutIsValid { get; init; } = Array.Empty(); /// /// Gets or sets the currently active monitoring case numbers /// public IReadOnlyList MonitoringCases { get; init; } = Array.Empty(); /// /// Gets or sets whether the corresponding monitoring case number is valid /// public IReadOnlyList MonitoringCaseFlags { get; init; } = Array.Empty(); /// /// Gets or sets the state of the sleep mode output /// public sbyte SleepModeOutput { get; init; } /// /// Gets or sets whether a contamination warning is present /// public bool HostErrorFlagContaminationWarning { get; init; } /// /// Gets or sets whether a contamination error is present /// public bool HostErrorFlagContaminationError { get; init; } /// /// Gets or sets whether a manipulation error is present /// public bool HostErrorFlagManipulationError { get; init; } /// /// Gets or sets whether glare is present /// public bool HostErrorFlagGlare { get; init; } /// /// Gets or sets whether a reference contour is intruded /// public bool HostErrorFlagReferenceContourIntruded { get; init; } /// /// Gets or sets whether a critical error is present /// public bool HostErrorFlagCriticalError { get; init; } /// /// Gets or sets the first linear velocity output /// public short Velocity0 { get; init; } /// /// Gets or sets the second linear velocity output /// public short Velocity1 { get; init; } /// /// Gets or sets whether the first linear velocity output is valid /// public bool IsVelocity0Valid { get; init; } /// /// Gets or sets whether the second linear velocity output is valid /// public bool IsVelocity1Valid { get; init; } /// /// Gets or sets whether the first linear velocity output is transmitted safely /// public bool IsVelocity0TransmittedSafely { get; init; } /// /// Gets or sets whether the second linear velocity output is transmitted safely /// public bool IsVelocity1TransmittedSafely { get; init; } /// /// Gets or sets the resulting velocity for each monitoring case table /// public IReadOnlyList ResultingVelocity { get; init; } = Array.Empty(); /// /// Gets or sets whether the resulting velocities are valid /// public IReadOnlyList ResultingVelocityIsValid { get; init; } = Array.Empty(); /// /// Gets or sets whether the sleep mode is valid /// public bool FlagsSleepModeOutputIsValid { get; init; } /// /// Gets or sets whether the error flags are valid /// public bool FlagsHostErrorFlagsAreValid { get; init; } }