116 lines
4.7 KiB
C#
116 lines
4.7 KiB
C#
///
|
|
/// Copyright (c) 2013-2015 Sensus Metering Systems
|
|
/// Author: Milan Hanajik
|
|
///
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Config.Entities
|
|
{
|
|
/// <summary>
|
|
/// Test, consisting of one or more repetitions of the test 'SingleTest'.
|
|
/// </summary>
|
|
public class Test : IHasItemNr
|
|
{
|
|
public virtual int Id { get; protected set; }
|
|
public virtual int ItemNr { get; set; }
|
|
public virtual string Name { get; set; }
|
|
public virtual int Part { get; set; } /// Part=0 ... test of all WM-s
|
|
/// Part>0 ... part of a set of tests with the same Name: subset of WM-s is given by MetersPath
|
|
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 TimeBeforeFlow { get; set; } /// Delay time before the start of flow control in [s]
|
|
public virtual int TimeFlow2Mass { get; set; } /// Delay time from the flow stable to the 1st mass measurement in [s]
|
|
public virtual int TimeMass2Start { get; set; } /// Delay time from the 1st mass measurement to the test start in [s]
|
|
public virtual int TimeStop2Mass { get; set; } /// Delay time from the test end (diverted) to the 2nd mass measuremen in [s]
|
|
public virtual string Method { get; set; }
|
|
public virtual float ErrLimLo { get; set; } /// in [%] (usually < 0)
|
|
public virtual float ErrLimHi { get; set; } /// in [%] (usually > 0)
|
|
public virtual float Uncertainty { get; set; } /// int [%] makes error limits tighter: 0 <= Uncertainty <= abs(ErrLimXx)
|
|
public virtual double TolerRed { get; set; } /// = Filter
|
|
public virtual TestRedType RedType { get; set; }
|
|
public virtual string FeedingPath { get; set; }
|
|
public virtual string BenchPath { get; set; }
|
|
public virtual string OutputPath { get; set; }
|
|
public virtual string MetersPath { get; set; }
|
|
public virtual string RelTransBefore { get; set; }
|
|
public virtual string RelTransBetween { get; set; }
|
|
public virtual string RelTransAfter { get; set; }
|
|
public virtual string TransitionAfter { get; set; }
|
|
|
|
public virtual IList<ComponentTest> MoreParams { get; set; }
|
|
|
|
public virtual Procedure Procedure { get; set; }
|
|
|
|
/// ------------- Additional stuff not mapped into the database -------------
|
|
|
|
public Test()
|
|
{
|
|
MoreParams = new List<ComponentTest>();
|
|
|
|
///
|
|
/// Default values
|
|
///
|
|
Repeats = 1;
|
|
Emptying = false;
|
|
Zeroing = false;
|
|
PumpPower = 60.0f; /// [%]
|
|
TimeBeforeFlow = 10; /// [s] time before the start of flow control in [s]
|
|
TimeFlow2Mass = 5; /// [s] time from the flow stable to the 1st mass measurement in [s]
|
|
TimeMass2Start = 1; /// [s] time from the 1st mass measurement to the test start in [s]
|
|
TimeStop2Mass = 5; /// [s] between the test end and the final mass measurement
|
|
ErrLimLo = -2.0f; /// [%] lower error limit
|
|
ErrLimHi = 2.0f; /// [%] upper error limit
|
|
Uncertainty = 0;
|
|
TolerRed = 0; /// = Filter parameter
|
|
}
|
|
|
|
public Test(string name, int itemNr, Procedure procedure)
|
|
: this()
|
|
{
|
|
Name = name;
|
|
ItemNr = itemNr;
|
|
Procedure = procedure;
|
|
}
|
|
|
|
// Makes a new copy of this object (not just a reference)
|
|
public virtual Test Clone()
|
|
{
|
|
Test result = new Test(Name, ItemNr, Procedure);
|
|
|
|
result.Part = Part;
|
|
result.Qfrom = Qfrom;
|
|
result.Qto = Qto;
|
|
result.Volume = Volume;
|
|
result.TstTime = TstTime;
|
|
result.Repeats = Repeats;
|
|
result.Emptying = Emptying;
|
|
result.Zeroing = Zeroing;
|
|
result.PumpPower = PumpPower;
|
|
result.TimeBeforeFlow = TimeBeforeFlow;
|
|
result.TimeFlow2Mass = TimeFlow2Mass;
|
|
result.TimeMass2Start = TimeMass2Start;
|
|
result.TimeStop2Mass = TimeStop2Mass;
|
|
result.Method = Method;
|
|
result.ErrLimLo = ErrLimLo;
|
|
result.ErrLimHi = ErrLimHi;
|
|
result.Uncertainty = Uncertainty;
|
|
result.TolerRed = TolerRed;
|
|
result.RedType = RedType;
|
|
result.FeedingPath = FeedingPath;
|
|
result.BenchPath = BenchPath;
|
|
result.OutputPath = OutputPath;
|
|
result.MetersPath = MetersPath;
|
|
foreach (var prms in MoreParams) { result.MoreParams.Add(prms.Clone()); }
|
|
|
|
return result;
|
|
}
|
|
}
|
|
}
|