namespace Sick.SafetyScanners.DataStructures; /// /// Contains field data for warning and protective fields from a COLA2 variable command response /// public sealed class FieldData { /// /// Gets or sets whether the field data is valid /// public bool IsValid { get; init; } /// /// Gets or sets the version indicator (e.g., "V" for version) /// public string VersionCVersion { get; init; } = string.Empty; /// /// Gets or sets the major version number /// public byte VersionMajorVersionNumber { get; init; } /// /// Gets or sets the minor version number /// public byte VersionMinorVersionNumber { get; init; } /// /// Gets or sets the version release number /// public byte VersionReleaseNumber { get; init; } /// /// Gets or sets whether the field data is defined /// public bool IsDefined { get; init; } /// /// Gets or sets the evaluation method /// public byte EvalMethod { get; init; } /// /// Gets or sets the multiple sampling value /// public ushort MultiSampling { get; init; } /// /// Gets or sets the object resolution /// public ushort ObjectResolution { get; init; } /// /// Gets or sets the index of the field set this field belongs to /// public ushort FieldSetIndex { get; init; } /// /// Gets or sets the length of the field name /// public uint NameLength { get; init; } /// /// Gets or sets the field name string /// public string FieldName { get; init; } = string.Empty; /// /// Gets or sets whether this is a warning field /// public bool IsWarningField { get; init; } /// /// Gets or sets whether this is a protective field /// public bool IsProtectiveField { get; init; } /// /// Gets or sets the beam distances vector (in mm) /// One distance value per beam /// public IReadOnlyList BeamDistances { get; init; } = Array.Empty(); /// /// Gets or sets the start angle in radians /// public double StartAngle { get; init; } /// /// Gets or sets the end angle in radians /// public double EndAngle { get; init; } /// /// Gets or sets the angular beam resolution in radians /// public double AngularBeamResolution { get; init; } }