162 lines
7.1 KiB
C#
162 lines
7.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace TBF.Entities
|
|
{
|
|
public class TestResult
|
|
{
|
|
public virtual int Id { get; protected set; }
|
|
public virtual string Name { get; set; }
|
|
public virtual int BatchNr { get; set; }
|
|
public virtual MetersKind MetersKind { get; set; }
|
|
public virtual IList<MeterTestResult> Meters { get; set; }
|
|
public virtual IList<MeterTestResult> CombinedMeters { get; set; }
|
|
|
|
/// Value copied from the procedure (Entities.Procedure)
|
|
public virtual string ProcedureName { get; set; }
|
|
public virtual string ProtocolTitle { get; set; }
|
|
|
|
/// Values copied from the test (Entities.Test)
|
|
public virtual int TestId { get; set; } /// Test entity ID to distinguish between tests with the same name
|
|
public virtual string TestName { get; set; }
|
|
public virtual int Part { get; set; }
|
|
public virtual bool DoNotEvaluate { get; set; } /// Not mapped to the database
|
|
public virtual bool DoNotPublish { get; set; } /// Not mapped to the database
|
|
public virtual float Qfrom { get; set; } /// Water flow low limit in [m3/h]
|
|
public virtual float Qto { get; set; } /// Water flow high limit in [m3/h]
|
|
public virtual float Volume { get; set; } /// Test volume (target) in [l]
|
|
public virtual float TstTime { get; set; } /// Test time (estimate) in [s]
|
|
public virtual int Repeats { get; set; }
|
|
public virtual bool Emptying { get; set; }
|
|
public virtual bool Zeroing { get; set; }
|
|
public virtual float PumpPower { get; set; } /// Power of the pump in [%] in the range 0 .. 100.0f, use values 0% and 100% for non-FM pumps
|
|
public virtual int Time2MassMsrmt { get; set; }
|
|
public virtual string Method { get; set; }
|
|
public virtual float ErrLimLo { get; set; } /// in [%] (usually < 0)
|
|
public virtual float ErrLimHi { get; set; } /// in [%] (usually > 0)
|
|
|
|
/// To be replaced by the virtual bench component parameters
|
|
public virtual string FeedingPath { get; set; }
|
|
public virtual string BenchPath { get; set; }
|
|
public virtual string OutputPath { get; set; }
|
|
public virtual string MetersPath { get; set; }
|
|
|
|
/// Results
|
|
public virtual DateTime TimeStart { get; set; } /// Date and time of the test start
|
|
public virtual DateTime TimeEnd { get; set; } /// Date and time of the test end
|
|
public virtual int RepetitionNr { get; set; } /// Repetition number from the set of repeated tests (1...)
|
|
public virtual float AmbientTempAve { get; set; } /// Average ambient air temperature [degC]
|
|
public virtual float AmbientPressAve { get; set; } /// Average ambient air pressure
|
|
public virtual float AmbientHumiAve { get; set; } /// Average ambient air relative humidity [%]
|
|
public virtual float PressInAvrg { get; set; } /// Input water pressure (average) [Bar]
|
|
public virtual float PressInStart { get; set; }
|
|
public virtual float PressInEnd { get; set; }
|
|
public virtual float PressOutAvrg { get; set; }
|
|
public virtual float PressOutStart { get; set; }
|
|
public virtual float PressOutEnd { get; set; }
|
|
public virtual float TempInAvrg { get; set; }
|
|
public virtual float TempInStart { get; set; }
|
|
public virtual float TempInEnd { get; set; }
|
|
public virtual float TempOutAvrg { get; set; }
|
|
public virtual float TempOutStart { get; set; }
|
|
public virtual float TempOutEnd { get; set; }
|
|
public virtual float TempDivAvrg { get; set; }
|
|
public virtual float TempDivStart { get; set; }
|
|
public virtual float TempDivEnd { get; set; }
|
|
public virtual float MassStartRaw { get; set; }
|
|
public virtual float MassStart { get; set; }
|
|
public virtual float MassEndRaw { get; set; }
|
|
public virtual float MassEnd { get; set; }
|
|
public virtual float MassDiff { get; set; }
|
|
public virtual float DensityIn { get; set; }
|
|
public virtual float DensityOut { get; set; }
|
|
public virtual float DensityDiv { get; set; }
|
|
public virtual float Buoyancy { get; set; } ///TODO -> map
|
|
public virtual float FlowMass { get; set; } /// from conventional true value
|
|
public virtual float FlowVolume { get; set; } /// from conventional true value
|
|
public virtual float VolumeCTV { get; set; } /// volume conventional true value
|
|
public virtual float VolumeMaster { get; set; } /// volume from the master flow meter
|
|
public virtual float Time { get; set; } /// measurement time in seconds
|
|
public virtual float ErrorMaster { get; set; }
|
|
public virtual float PulsesMaster { get; set; }
|
|
public virtual float ConstMaster { get; set; } /// Pulses per liter master flow meter
|
|
public virtual float QRise { get; set; } /// Detected Q_rise of a composed meter
|
|
public virtual float QFall { get; set; } /// Detected Q_fall of a composed meter
|
|
public virtual float TimeDivStart0 { get; set; }
|
|
public virtual float TimeDivStart1 { get; set; }
|
|
public virtual float TimeDivStart2 { get; set; }
|
|
public virtual float TimeDivStart3 { get; set; }
|
|
public virtual float TimeDivStart4 { get; set; }
|
|
public virtual float TimeDivStart5 { get; set; }
|
|
public virtual float TimeDivEnd0 { get; set; }
|
|
public virtual float TimeDivEnd1 { get; set; }
|
|
public virtual float TimeDivEnd2 { get; set; }
|
|
public virtual float TimeDivEnd3 { get; set; }
|
|
public virtual float TimeDivEnd4 { get; set; }
|
|
public virtual float TimeDivEnd5 { get; set; }
|
|
|
|
public TestResult()
|
|
{
|
|
Meters = new List<MeterTestResult>();
|
|
CombinedMeters = new List<MeterTestResult>();
|
|
}
|
|
|
|
public TestResult(MetersKind kind)
|
|
: this()
|
|
{
|
|
MetersKind = kind;
|
|
|
|
if (kind == MetersKind.Single)
|
|
{
|
|
for (int i = 0; i < Program.WMsCount; i++) Meters.Add(new MeterTestResult(this));
|
|
}
|
|
else if (kind == MetersKind.Combined)
|
|
{
|
|
int combinedCount = Program.WMsCount / 2;
|
|
for (int i = 0; i < 2 * combinedCount; i++) Meters.Add(new MeterTestResult(this));
|
|
for (int i = 0; i < combinedCount; i++) CombinedMeters.Add(new MeterTestResult(this));
|
|
}
|
|
}
|
|
|
|
public TestResult(Test test, int repetitionNr, MetersKind kind)
|
|
: this(kind)
|
|
{
|
|
if (test.Repeats == 1)
|
|
{
|
|
Name = test.Name;
|
|
}
|
|
else
|
|
{
|
|
Name = string.Format("{0} ({1}/{2})", test.Name, repetitionNr, test.Repeats);
|
|
}
|
|
RepetitionNr = repetitionNr;
|
|
|
|
/// Copy test parameters from Entities.Procedure object
|
|
ProcedureName = test.Procedure.Name;
|
|
ProtocolTitle = test.Procedure.ProtocolTitle;
|
|
|
|
/// Copy test parameters from Entities.Test object
|
|
TestId = test.Id;
|
|
TestName = test.Name;
|
|
Part = test.Part;
|
|
Qfrom = test.Qfrom;
|
|
Qto = test.Qto;
|
|
Volume = test.Volume;
|
|
TstTime = test.TstTime;
|
|
Repeats = test.Repeats;
|
|
Emptying = test.Emptying;
|
|
Zeroing = test.Zeroing;
|
|
PumpPower = PumpPower;
|
|
Time2MassMsrmt = test.Time2MassMsrmt;
|
|
Method = test.Method;
|
|
ErrLimLo = test.ErrLimLo;
|
|
ErrLimHi = test.ErrLimHi;
|
|
|
|
FeedingPath = test.FeedingPath;
|
|
BenchPath = test.BenchPath;
|
|
OutputPath = test.OutputPath;
|
|
MetersPath = test.MetersPath;
|
|
}
|
|
}
|
|
}
|