namespace Sick.SafetyScanners.DataStructures; /// /// Contains the content of the data header of a UDP data packet /// public sealed class DataHeader { /// /// Gets or sets the version indicator (capital letter 'V' or 'R' for releases) /// public byte VersionIndicator { get; init; } /// /// Gets or sets the major version number /// public byte VersionMajor { get; init; } /// /// Gets or sets the minor version number /// public byte VersionMinor { get; init; } /// /// Gets or sets the release of the version /// public byte VersionRelease { get; init; } /// /// Gets or sets the serial number of the device /// public uint SerialNumberOfDevice { get; init; } /// /// Gets or sets the serial number of the system plug /// public uint SerialNumberOfSystemPlug { get; init; } /// /// Gets or sets the channel number (0-3) /// public byte ChannelNumber { get; init; } /// /// Gets or sets the sequence number (increases with each measurement) /// public uint SequenceNumber { get; init; } /// /// Gets or sets the scan number /// public uint ScanNumber { get; init; } /// /// Gets or sets the timestamp date /// public ushort TimestampDate { get; init; } /// /// Gets or sets the timestamp time /// public uint TimestampTime { get; init; } /// /// Gets or sets the general system state block offset /// public ushort GeneralSystemStateBlockOffset { get; init; } /// /// Gets or sets the general system state block size /// public ushort GeneralSystemStateBlockSize { get; init; } /// /// Gets or sets the derived values block offset /// public ushort DerivedValuesBlockOffset { get; init; } /// /// Gets or sets the derived values block size /// public ushort DerivedValuesBlockSize { get; init; } /// /// Gets or sets the measurement data block offset /// public ushort MeasurementDataBlockOffset { get; init; } /// /// Gets or sets the measurement data block size /// public ushort MeasurementDataBlockSize { get; init; } /// /// Gets or sets the intrusion data block offset /// public ushort IntrusionDataBlockOffset { get; init; } /// /// Gets or sets the intrusion data block size /// public ushort IntrusionDataBlockSize { get; init; } /// /// Gets or sets the application data block offset /// public ushort ApplicationDataBlockOffset { get; init; } /// /// Gets or sets the application data block size /// public ushort ApplicationDataBlockSize { get; init; } /// /// Gets whether the data header is empty /// public bool IsEmpty { get; init; } }