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