namespace Sick.SafetyScanners.DataStructures; /// /// Contains the configuration data from a COLA2 variable command response /// Used for current and persistent sensor configuration /// public sealed class ConfigData { /// /// 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 the host IP address /// public string HostIp { get; init; } = string.Empty; /// /// Gets or sets the host UDP port /// public ushort HostUdpPort { get; init; } /// /// Gets or sets the channel number (0-3) /// public byte Channel { get; init; } /// /// Gets or sets whether the channel is enabled /// public bool Enabled { get; init; } /// /// Gets or sets the interface type /// public InterfaceType EInterfaceType { get; init; } /// /// Gets or sets the publishing frequency (publish every n-th scan) /// public ushort PublishingFrequency { get; init; } /// /// 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 enabled features (bit flags) /// Bit 0: GeneralSystemState, Bit 1: DerivedSettings, Bit 2: MeasurementData, /// Bit 3: IntrusionData, Bit 4: ApplicationData /// public ushort Features { get; init; } /// /// Gets or sets whether general system state feature is enabled /// public bool GeneralSystemStateEnabled { get; init; } /// /// Gets or sets whether derived settings feature is enabled /// public bool DerivedSettingsEnabled { get; init; } /// /// Gets or sets whether measurement data feature is enabled /// public bool MeasurementDataEnabled { get; init; } /// /// Gets or sets whether intrusion data feature is enabled /// public bool IntrusionDataEnabled { get; init; } /// /// Gets or sets whether application data feature is enabled /// public bool ApplicationDataEnabled { get; init; } // Derived values (similar to DerivedValues structure) /// /// Gets or sets the multiplication factor for beam distances /// public ushort DerivedMultiplicationFactor { get; init; } /// /// Gets or sets the number of beams /// public ushort DerivedNumberOfBeams { get; init; } /// /// Gets or sets the scan time in milliseconds /// public ushort DerivedScanTime { get; init; } /// /// Gets or sets the derived start angle in radians /// public double DerivedStartAngle { get; init; } /// /// Gets or sets the angular beam resolution in radians /// public double DerivedAngularBeamResolution { get; init; } /// /// Gets or sets the interbeam period in microseconds /// public uint DerivedInterbeamPeriod { get; init; } }