Initial commit

This commit is contained in:
2026-07-03 16:37:12 +07:00
commit 63b8c1ea8b
1931 changed files with 640587 additions and 0 deletions

View File

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