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,99 @@
namespace Sick.SafetyScanners.DataStructures;
/// <summary>
/// Contains field data for warning and protective fields from a COLA2 variable command response
/// </summary>
public sealed class FieldData
{
/// <summary>
/// Gets or sets whether the field data is valid
/// </summary>
public bool IsValid { get; init; }
/// <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 whether the field data is defined
/// </summary>
public bool IsDefined { get; init; }
/// <summary>
/// Gets or sets the evaluation method
/// </summary>
public byte EvalMethod { get; init; }
/// <summary>
/// Gets or sets the multiple sampling value
/// </summary>
public ushort MultiSampling { get; init; }
/// <summary>
/// Gets or sets the object resolution
/// </summary>
public ushort ObjectResolution { get; init; }
/// <summary>
/// Gets or sets the index of the field set this field belongs to
/// </summary>
public ushort FieldSetIndex { get; init; }
/// <summary>
/// Gets or sets the length of the field name
/// </summary>
public uint NameLength { get; init; }
/// <summary>
/// Gets or sets the field name string
/// </summary>
public string FieldName { get; init; } = string.Empty;
/// <summary>
/// Gets or sets whether this is a warning field
/// </summary>
public bool IsWarningField { get; init; }
/// <summary>
/// Gets or sets whether this is a protective field
/// </summary>
public bool IsProtectiveField { get; init; }
/// <summary>
/// Gets or sets the beam distances vector (in mm)
/// One distance value per beam
/// </summary>
public IReadOnlyList<ushort> BeamDistances { get; init; } = Array.Empty<ushort>();
/// <summary>
/// Gets or sets the start angle in radians
/// </summary>
public double StartAngle { get; init; }
/// <summary>
/// Gets or sets the end angle in radians
/// </summary>
public double EndAngle { get; init; }
/// <summary>
/// Gets or sets the angular beam resolution in radians
/// </summary>
public double AngularBeamResolution { get; init; }
}