133 lines
3.0 KiB
C#
133 lines
3.0 KiB
C#
using System;
|
|
using Xylem.Common.CommonCore.Consts;
|
|
|
|
namespace Xylem.Common.Metrology.Measurements
|
|
{
|
|
/// <inheritdoc />
|
|
/// <summary>
|
|
/// struct to hold a measurement record
|
|
/// </summary>
|
|
public class MeasurementRecord : IMeasurementRecord
|
|
{
|
|
/// <summary>
|
|
/// physical channel 1, 2 and 3
|
|
/// </summary>
|
|
public Int32 Channel = 0;
|
|
|
|
/// <summary>
|
|
/// actual volume in cubic meters
|
|
/// </summary>
|
|
public Double VolumeCm;
|
|
|
|
/// <summary>
|
|
/// Forward volume in cubic meters
|
|
/// </summary>
|
|
public Double ForwardVolumeCm;
|
|
|
|
/// <summary>
|
|
/// Reverse volume in cubic meters as negative value
|
|
/// </summary>
|
|
public Double NegativeReverseVolumeCm;
|
|
|
|
/// <summary>
|
|
/// Flow rate in cubic meters per hour
|
|
/// </summary>
|
|
public Double FlowRateCmPh;
|
|
|
|
/// <summary>
|
|
/// Overflow volume
|
|
/// </summary>
|
|
public Double OverflowVolumeCm;
|
|
|
|
/// <summary>
|
|
/// time converted to seconds
|
|
/// </summary>
|
|
public Double TimeS;
|
|
|
|
/// <summary>
|
|
/// Overflow time
|
|
/// </summary>
|
|
public Double OverflowTimeS;
|
|
|
|
/// <summary>
|
|
/// CRC16 CCITT
|
|
/// </summary>
|
|
public UInt16 Crc;
|
|
|
|
/// <summary>
|
|
/// record is valid
|
|
/// </summary>
|
|
public Boolean IsValid;
|
|
|
|
/// <summary>
|
|
/// Mark package as start, end, intermediate or not sync
|
|
/// </summary>
|
|
public SyncMarkRecord SyncMarkRecord;
|
|
|
|
/// <summary>
|
|
/// time when package was decoded
|
|
/// </summary>
|
|
public DateTimeOffset DecodedTime;
|
|
|
|
/// <summary>
|
|
/// time when package was received
|
|
/// </summary>
|
|
public DateTimeOffset ReceivedTime;
|
|
|
|
/// <inheritdoc />
|
|
public Double GetVolumeCm()
|
|
{
|
|
return VolumeCm;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public Double GetTimeS()
|
|
{
|
|
return TimeS;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public SyncMarkRecord GetDataSyncMark()
|
|
{
|
|
return SyncMarkRecord;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public Int32 GetChannel()
|
|
{
|
|
//channel 0 is for the entire device without a physical channel assignment
|
|
return Channel;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public Double GetOverflowVolumeCm()
|
|
{
|
|
return OverflowVolumeCm;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public Double GetOverflowTimeS()
|
|
{
|
|
return OverflowTimeS;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public Object Clone()
|
|
{
|
|
return MemberwiseClone();
|
|
}
|
|
|
|
public Double GetNegativeReserveVolumeCm()
|
|
{
|
|
return NegativeReverseVolumeCm;
|
|
|
|
|
|
}
|
|
|
|
public Double GetForwardVolumeCm()
|
|
{
|
|
return ForwardVolumeCm;
|
|
}
|
|
}
|
|
}
|