Initial commit

This commit is contained in:
2026-07-13 09:25:40 +07:00
parent c08ff54676
commit bccfb156d7
1938 changed files with 641646 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
namespace Sick.SafetyScanners.DataStructures;
/// <summary>
/// Contains the general system state including run/standby modes, cut-off paths, monitoring cases, and errors
/// </summary>
public sealed class GeneralSystemState
{
/// <summary>
/// Gets or sets whether run mode is active
/// </summary>
public bool IsRunModeActive { get; init; }
/// <summary>
/// Gets or sets whether standby mode is active
/// </summary>
public bool IsStandbyModeActive { get; init; }
/// <summary>
/// Gets or sets whether a contamination warning exists
/// </summary>
public bool HasContaminationWarning { get; init; }
/// <summary>
/// Gets or sets whether a contamination error exists
/// </summary>
public bool HasContaminationError { get; init; }
/// <summary>
/// Gets or sets whether the reference contour status is true
/// </summary>
public bool ReferenceContourStatus { get; init; }
/// <summary>
/// Gets or sets whether manipulation status is set to true
/// </summary>
public bool ManipulationStatus { get; init; }
/// <summary>
/// Gets or sets the state for all safe cut-off paths
/// </summary>
public IReadOnlyList<bool> SafeCutOffPaths { get; init; } = [];
/// <summary>
/// Gets or sets the state of all non-safe cut-off paths
/// </summary>
public IReadOnlyList<bool> NonSafeCutOffPaths { get; init; } = [];
/// <summary>
/// Gets or sets whether a cut-off path has to be reset
/// </summary>
public IReadOnlyList<bool> ResetRequiredCutOffPaths { get; init; } = [];
/// <summary>
/// Gets or sets the current monitoring case number for table 1
/// </summary>
public byte CurrentMonitoringCaseNoTable1 { get; init; }
/// <summary>
/// Gets or sets the current monitoring case number for table 2
/// </summary>
public byte CurrentMonitoringCaseNoTable2 { get; init; }
/// <summary>
/// Gets or sets the current monitoring case number for table 3
/// </summary>
public byte CurrentMonitoringCaseNoTable3 { get; init; }
/// <summary>
/// Gets or sets the current monitoring case number for table 4
/// </summary>
public byte CurrentMonitoringCaseNoTable4 { get; init; }
/// <summary>
/// Gets or sets whether an application error exists
/// </summary>
public bool HasApplicationError { get; init; }
/// <summary>
/// Gets or sets whether a device error exists
/// </summary>
public bool HasDeviceError { get; init; }
/// <summary>
/// Gets whether general system state is empty (not enabled)
/// </summary>
public bool IsEmpty { get; init; }
}