Files
I150/srcs/RobotNet10/RobotApp/Communication/Sick.SafetyScanners/DataStructures/StatusOverview.cs
2026-07-03 16:37:12 +07:00

187 lines
4.2 KiB
C#

namespace Sick.SafetyScanners.DataStructures;
/// <summary>
/// Device state enumeration for SICK Safety Scanner
/// </summary>
public enum DeviceState : byte
{
/// <summary>
/// Normal state
/// </summary>
Normal = 0,
/// <summary>
/// Error state
/// </summary>
Error = 1,
/// <summary>
/// Initialization state
/// </summary>
Initialization = 2,
/// <summary>
/// Shutdown state
/// </summary>
Shutdown = 3,
/// <summary>
/// Optics cover calibration state
/// </summary>
OpticsCoverCalibration = 4
}
/// <summary>
/// Config state enumeration for SICK Safety Scanner
/// </summary>
public enum ConfigState : byte
{
/// <summary>
/// Unknown config state
/// </summary>
Unknown = 0,
/// <summary>
/// Config required
/// </summary>
ConfigRequired = 1,
/// <summary>
/// Config in progress
/// </summary>
ConfigInProgress = 2,
/// <summary>
/// Not verified
/// </summary>
NotVerified = 3,
/// <summary>
/// Rejected
/// </summary>
Rejected = 4,
/// <summary>
/// Verified
/// </summary>
Verified = 5,
/// <summary>
/// Internal error
/// </summary>
InternalError = 6,
/// <summary>
/// Verification in progress
/// </summary>
VerificationInProgress = 7
}
/// <summary>
/// Application state enumeration for SICK Safety Scanner
/// </summary>
public enum ApplicationState : byte
{
/// <summary>
/// Application stopped
/// </summary>
Stopped = 0,
/// <summary>
/// Application starting
/// </summary>
Starting = 1,
/// <summary>
/// Waiting for partners
/// </summary>
WaitingForPartners = 2,
/// <summary>
/// Waiting for inputs
/// </summary>
WaitingForInputs = 3,
/// <summary>
/// Application started
/// </summary>
Started = 4,
/// <summary>
/// Sleep mode
/// </summary>
SleepMode = 5
}
/// <summary>
/// Contains the status overview from a COLA2 variable command response
/// </summary>
public sealed class StatusOverview
{
/// <summary>
/// Gets or sets the version indicator (e.g., "V" for version)
/// </summary>
public string VersionCVersion { get; init; } = string.Empty;
/// <summary>
/// Gets or sets the major version number
/// </summary>
public byte VersionMajorVersionNumber { get; init; }
/// <summary>
/// Gets or sets the minor version number
/// </summary>
public byte VersionMinorVersionNumber { get; init; }
/// <summary>
/// Gets or sets the version release number
/// </summary>
public byte VersionReleaseNumber { get; init; }
/// <summary>
/// Gets or sets the device state
/// </summary>
public DeviceState DeviceState { get; init; }
/// <summary>
/// Gets or sets the config state
/// </summary>
public ConfigState ConfigState { get; init; }
/// <summary>
/// Gets or sets the application state
/// </summary>
public ApplicationState ApplicationState { get; init; }
/// <summary>
/// Gets or sets the current time power on count
/// </summary>
public uint CurrentTimePowerOnCount { get; init; }
/// <summary>
/// Gets or sets the current time (milliseconds since midnight)
/// </summary>
public uint CurrentTimeTime { get; init; }
/// <summary>
/// Gets or sets the current date (days since 1980-01-01)
/// </summary>
public ushort CurrentTimeDate { get; init; }
/// <summary>
/// Gets or sets the error info code
/// </summary>
public uint ErrorInfoCode { get; init; }
/// <summary>
/// Gets or sets the error info time (milliseconds since midnight)
/// </summary>
public uint ErrorInfoTime { get; init; }
/// <summary>
/// Gets or sets the error info date (days since 1980-01-01)
/// </summary>
public ushort ErrorInfoDate { get; init; }
}