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; }
}