SetFlowOp with 'delay' parameter (default 0), flow setting starts after this delay in sec.

This commit is contained in:
Milan Hanajik
2022-01-28 14:43:42 +01:00
parent ecc92176f3
commit 851c51aa7c
15 changed files with 94 additions and 73 deletions
+4 -3
View File
@@ -51,11 +51,12 @@ namespace TBF.Rig.Dummy.RegValve
/// <param name="requiredFlowHi">Higher limit of the required flow [m3/h]</param>
/// <param name="measuredFlow">Measured flow [m3/h]</param>
/// <param name="timeout">Timeout in [s]</param>
/// <param name="delay">Flow setting starts after this delay in [s]</param>
/// <returns>SetFlowOp instance</returns>
public IOperation SetFlowOp(GenericDevices.IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi,
DoubleBox measuredFlow, int timeout)
DoubleBox measuredFlow, int timeout, int delay)
{
return new SetFlowOp(this, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout);
return new SetFlowOp(this, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout, delay);
}
/// <summary>
@@ -71,7 +72,7 @@ namespace TBF.Rig.Dummy.RegValve
public IOperation SetFlowAndMeasureOp(GenericDevices.IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi,
DoubleBox measuredFlow, int timeout, float filterConstant)
{
return new SetFlowOp(this, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout, true);
return new SetFlowOp(this, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout, 0, true);
}
/// <summary>
+6 -12
View File
@@ -26,6 +26,7 @@ namespace TBF.Rig.Dummy.RegValve
readonly double reqFlowHi;
readonly double reqFlowAve;
readonly int timeout;
readonly int delay;
readonly bool leaveMeasurementRunning;
readonly double nominalFlow;
@@ -45,10 +46,11 @@ namespace TBF.Rig.Dummy.RegValve
/// <param name="requiredFlowHi">Upper limit of the flow to be achieved in [m3/h]</param>
/// <param name="pidCoef">PID coefficient (float)</param>
/// <param name="timeout">Timeout for the flow setting in [s]</param>
/// <param name="delay">Flow setting starts after this delay in [s]</param>
/// <param name="leaveMeasurementRunning">true = Leave the measurement running after op. stop</param>
/// <remarks>Only Elde.Valve flow are used, other flow on the lists are ignored</remarks>
public SetFlowOp(IRegValve regulValve, IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi,
DoubleBox measuredFlow, int timeout, bool leaveMeasurementRunning)
DoubleBox measuredFlow, int timeout, int delay, bool leaveMeasurementRunning)
{
this.regulValve = regulValve as RegValve;
if (this.regulValve == null) throw new ArgumentNullException("regValve is null or not Dummy.RegulValve");
@@ -62,6 +64,7 @@ namespace TBF.Rig.Dummy.RegValve
this.measuredFlow = measuredFlow;
this.timeout = timeout;
this.delay = delay;
this.leaveMeasurementRunning = leaveMeasurementRunning;
@@ -72,17 +75,8 @@ namespace TBF.Rig.Dummy.RegValve
/// Set required water flow - Do not leave the measurement running.
/// Events: FlowSet
/// </summary>
public SetFlowOp(IRegValve regValve, IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi, DoubleBox measuredFlow, int timeout)
: this(regValve, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout, false)
{
}
/// <summary>
/// Set required water flow - No timeout.
/// Events: FlowSet
/// </summary>
public SetFlowOp(IRegValve regValve, IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi, DoubleBox measuredFlow)
: this(regValve, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, int.MaxValue, false)
public SetFlowOp(IRegValve regValve, IFlowMeter flowMeter, double requiredFlowLo, double requiredFlowHi, DoubleBox measuredFlow, int timeout, int delay)
: this(regValve, flowMeter, requiredFlowLo, requiredFlowHi, measuredFlow, timeout, delay, false)
{
}