121 lines
5.7 KiB
C#
121 lines
5.7 KiB
C#
///
|
|
/// Copyright (c) 2013-2016 Sensus Metering Systems
|
|
///
|
|
using System;
|
|
|
|
namespace Results.Entities
|
|
{
|
|
public class MeterTestRslt
|
|
{
|
|
public virtual int Id { get; protected set; }
|
|
|
|
public virtual byte CompoundMeterId { get; set; } /// 0=single, 1=compound/main, 2=compound/aux., 3=compound/overal, 4=heat meter volume, 5=heat meter energy
|
|
public virtual double PulsesMeter { get; set; } /// # of water meter or heat meter pulses
|
|
public virtual double PulsesMaster { get; set; } /// # of reference flowmeter pulses (gated by this water meter pulses)
|
|
public virtual double PulsesPerLiter { get; set; } /// [l ^ -1], in case of heat meters (CompoundMeterId==5) pulses per kWh in [kWh ^ -1]
|
|
public virtual double VolumeStart { get; set; } /// Volume or energy (CompoundMeterId==5) on test start in [l] or [J]
|
|
public virtual double VolumeEnd { get; set; } /// Volume or energy (CompoundMeterId==5) on test end in [l] or [J]
|
|
public virtual double VolumeMeter { get; set; } /// Measured volume or energy (CompoundMeterId==5) in [l] or [J]
|
|
public virtual double VolumeRef { get; set; } /// Reference volume or energy (CompoundMeterId==5) in [l] or [J]
|
|
public virtual double TimestampStart { get; set; } /// [s]
|
|
public virtual double TimestampEnd { get; set; } /// [s]
|
|
public virtual double TestTime { get; set; } /// [s]
|
|
|
|
/// Main result
|
|
public virtual double Error { get; set; } /// [%]
|
|
public virtual double KorrErrQ { get; set; } /// [%] not mapped to results DB, saved to Oracle DB
|
|
public virtual bool TestDone { get; set; } /// true = test was completed
|
|
public virtual bool Passed { get; set; } /// true = test passed, water meter is OK
|
|
|
|
public virtual WaterMeter WaterMeter { get; set; } /// reference to the WaterMeter entity
|
|
public virtual TestRslt TestRslt { get; set; } /// reference to the TestRslt entity
|
|
|
|
/// Wrappers
|
|
public virtual string Name() { return TestRslt.Name(); }
|
|
public virtual DateTime StartTime() { return TestRslt.StartTime; }
|
|
public virtual DateTime EndTime() { return TestRslt.EndTime; }
|
|
public virtual double FlowSetTime() { return TestRslt.FlowSetTime; } /// [s]
|
|
public virtual double FlowMass() { return TestRslt.FlowMass; } /// [kg/h]
|
|
public virtual double FlowVolume() { return TestRslt.FlowVolume; } /// [m3/h]
|
|
public virtual double ErrorMaster() { return TestRslt.ErrorMaster; } /// [%]
|
|
public virtual double DensityOut() { return TestRslt.DensityOut; }
|
|
public virtual Components Components(){ return TestRslt.Components; }
|
|
///
|
|
public virtual TestData TestData() { return TestRslt.TestData; }
|
|
///
|
|
public virtual int Repeats() { return TestData().Repeats; }
|
|
public virtual double Qfrom() { return TestData().Qfrom; } /// [m3/h]
|
|
public virtual double Qto() { return TestData().Qto; } /// [m3/h]
|
|
public virtual double TargetVolume() { return TestData().TargetVolume; } /// [l]
|
|
public virtual double TargetTime() { return TestData().TargetTime; } /// [s]
|
|
public virtual string Method() { return TestData().Method; }
|
|
public virtual double ErrLimLo() { return TestData().ErrLimLo; } /// [%]
|
|
public virtual double ErrLimHi() { return TestData().ErrLimHi; } /// [%]
|
|
public virtual double Uncertainty() { return TestData().Uncertainty; } /// [%]
|
|
|
|
public virtual string ProcedureName() { return WaterMeter.Batch.ProcedureName; }
|
|
public virtual int BatchNr() { return WaterMeter.Batch.BatchNr; }
|
|
public virtual string SerialNr() { return WaterMeter.SerialNr; }
|
|
public virtual string EndState() { return WaterMeter.EndState; }
|
|
public virtual double QRise() { return WaterMeter.QRise; } /// [m3/h]
|
|
public virtual double QFall() { return WaterMeter.QFall; } /// [m3/h]
|
|
|
|
public virtual bool Evaluate() { return TestData().Evaluate; }
|
|
public virtual Config.Entities.Publish Publish() { return (Config.Entities.Publish)TestData().Publish; }
|
|
|
|
public virtual WaterMeterData WaterMeterData() { return WaterMeter.WaterMeterData; }
|
|
public virtual Batch Batch() { return WaterMeter.Batch; }
|
|
|
|
public virtual bool IsPilotRslt()
|
|
{
|
|
return (CompoundMeterId == (byte)Config.Entities.CompoundMeterId.Single) ||
|
|
(CompoundMeterId == (byte)Config.Entities.CompoundMeterId.Compound) ||
|
|
(CompoundMeterId == (byte)Config.Entities.CompoundMeterId.HeatMeterEnergy);
|
|
}
|
|
|
|
public virtual string PassedColorStr()
|
|
{
|
|
return Utils.PassedColorStr(Passed, Evaluate());
|
|
}
|
|
|
|
public MeterTestRslt()
|
|
{
|
|
TestDone = false;
|
|
Passed = false;
|
|
}
|
|
|
|
public MeterTestRslt(WaterMeter waterMeterRslt, TestRslt testRslt, Config.Entities.CompoundMeterId compoundMeterId)
|
|
: this()
|
|
{
|
|
WaterMeter = waterMeterRslt;
|
|
TestRslt = testRslt;
|
|
CompoundMeterId = (byte)compoundMeterId;
|
|
}
|
|
|
|
public virtual void CopyContentFrom(MeterTestRslt src)
|
|
{
|
|
if (src == null) return;
|
|
|
|
PulsesMeter = src.PulsesMeter;
|
|
PulsesMaster = src.PulsesMaster;
|
|
PulsesPerLiter = src.PulsesPerLiter;
|
|
VolumeStart = src.VolumeStart;
|
|
VolumeEnd = src.VolumeEnd;
|
|
VolumeMeter = src.VolumeMeter;
|
|
VolumeRef = src.VolumeRef;
|
|
TimestampStart = src.TimestampStart;
|
|
TimestampEnd = src.TimestampEnd;
|
|
TestTime = src.TestTime;
|
|
Error = src.Error;
|
|
KorrErrQ = src.KorrErrQ;
|
|
TestDone = src.TestDone;
|
|
Passed = src.Passed;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return (TestRslt != null) ? Name() : base.ToString();
|
|
}
|
|
}
|
|
}
|