diff --git a/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs b/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
index 284fed251..f303985e9 100644
--- a/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
+++ b/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
@@ -6,11 +6,11 @@ namespace TBF.BenchControl.Elde
public class StartMeasurementOp : IOperation
{
private static readonly ILog log = LogManager.GetLogger(typeof(StartMeasurementOp));
- public override string ToString() { return string.Format("StartMeasurementOp(ref={0},pulses={1})", flowMeter.Idx1, refPulses); }
+ public override string ToString() { return string.Format("StartMeasurementOp(ref={0},pulses={1})", flowMeterIdx, refPulses); }
/// Set by the constructor
readonly ControlBoardDev controlBoard;
- readonly Elde.FlowMeter.FlowMeter flowMeter;
+ readonly int flowMeterIdx;
readonly int refPulses; /// Number of reference pulses for a complete test
readonly TestMethods testMethod;
readonly float filterConstant;
@@ -31,8 +31,18 @@ namespace TBF.BenchControl.Elde
if (controlBoardDev == null) throw new ArgumentNullException("controlBoardDev");
this.controlBoard = controlBoardDev;
- this.flowMeter = flowMeter as Elde.FlowMeter.FlowMeter;
- if (this.flowMeter == null) throw new ArgumentException("flowMeter is null or is not Elde");
+ if (flowMeter is Elde.FlowMeter.FlowMeter)
+ {
+ flowMeterIdx = (flowMeter as Elde.FlowMeter.FlowMeter).Idx1;
+ }
+ else if (flowMeter is Elde.FlowMeterCouple.FlowMeter)
+ {
+ flowMeterIdx = 0;
+ }
+ else
+ {
+ throw new ArgumentException("flowMeter is null or is not Elde");
+ }
this.refPulses = refPulses;
this.testMethod = method;
@@ -44,7 +54,7 @@ namespace TBF.BenchControl.Elde
/// Start this operation
public void Start()
{
- controlBoard.SendCommand(Command.Start, flowMeter.Idx1, controlBoard.RRoute, refPulses, testMethod,
+ controlBoard.SendCommand(Command.Start, flowMeterIdx, controlBoard.RRoute, refPulses, testMethod,
filterConstant, 20, 0, StopDevs.None);
}
diff --git a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs
index 5235571ca..1cfe06117 100644
--- a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs
+++ b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs
@@ -609,7 +609,7 @@ namespace TBF.BenchControl.Sequences
data.TestResult = tstRslt;
//float ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
- float refPulsesPerLtr = 7200.0f / outPath.FlowMeter.NominalFlow; /// [pulse/ltr]
+ float refPulsesPerLtr = 1.0f / outPath.FlowMeter.LtrPerPulse; /// [pulse/ltr]
data.RefPulses = cBrd.EtPulses(0);
@@ -710,7 +710,7 @@ namespace TBF.BenchControl.Sequences
sb.Append(";"); sb.Append(tstRslt.Time); /// t
sb.Append(";"); sb.Append(tstRslt.ErrorMaster); /// Eelm . . . chyba etalonu voci komercne pravej hodnote
sb.Append(";"); sb.Append(" "); /// Emass . . . chyba druheho etalonu voci komercne pravej hodnote (teraz vynechavame)
- sb.Append(";"); sb.Append(7200.0f / outPath.FlowMeter.NominalFlow);
+ sb.Append(";"); sb.Append(1.0f / outPath.FlowMeter.LtrPerPulse);
/// Const.MID . konstanta eatlonu
sb.Append(";"); sb.Append(" "); /// Const.MA . . konstanta druheho etalonu
sb.Append(";"); sb.Append(tstRslt.TimeDivStart0); /// Time Div Start celkovy cas v [ms]
diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
index f94fe7565..4f5ed90df 100644
--- a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
@@ -36,11 +36,13 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
IList e; /// Events from currently running operations
Event retVal = Event.Done;
- /// Notes:
- /// float timeHr = volumeLtr / (1000.0f * targetFlow);
- /// float timeSec = 3600.0f * timeHr;
- /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
- int totalPulses = (int)(7200.0f * test.Volume / outPath.FlowMeter.NominalFlow); /// Nominal flow in [m3/h]
+ ltrPerRefPulse = outPath.FlowMeter.LtrPerPulse; /// [ltr/pulse], nominal flow in [m3/h]
+
+ /// Notes:
+ /// float timeHr = volumeLtr / (1000.0f * targetFlow);
+ /// float timeSec = 3600.0f * timeHr;
+ /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
+ int totalPulses = (int)(test.Volume / ltrPerRefPulse);
ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
///
diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
index a9bb6f1bd..9f719ac60 100644
--- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
@@ -40,14 +40,14 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection
while (!e.Contains(Event.PreviousStopped));
- /// Notes:
- /// float timeHr = volumeLtr / (1000.0f * targetFlow);
- /// float timeSec = 3600.0f * timeHr;
- /// uint refPulses = (uint)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
- int totalPulses = (int)(7200.0f * test.Volume / outPath.FlowMeter.NominalFlow); /// Nominal flow in [m3/h]
+ ltrPerRefPulse = outPath.FlowMeter.LtrPerPulse; /// [ltr/pulse], nominal flow in [m3/h]
- ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
- ///
+ /// Notes:
+ /// float timeHr = volumeLtr / (1000.0f * targetFlow);
+ /// float timeSec = 3600.0f * timeHr;
+ /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
+ int totalPulses = (int)(test.Volume / ltrPerRefPulse);
+
processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);
/// Meters path is required for the following:
diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
index b8591e3d1..a04e633e8 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
@@ -36,13 +36,13 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
IList e; /// Events from currently running operations
Event retVal = Event.Done;
- /// Notes:
- /// float timeHr = volumeLtr / (1000.0f * targetFlow);
- /// float timeSec = 3600.0f * timeHr;
- /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
- int totalPulses = (int)(7200.0f * test.Volume / outPath.FlowMeter.NominalFlow); /// Nominal flow in [m3/h]
+ ltrPerRefPulse = outPath.FlowMeter.LtrPerPulse; /// [ltr/pulse], nominal flow in [m3/h]
- ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
+ /// Notes:
+ /// float timeHr = volumeLtr / (1000.0f * targetFlow);
+ /// float timeSec = 3600.0f * timeHr;
+ /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
+ int totalPulses = (int)(test.Volume / ltrPerRefPulse);
processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
index 0e83f9ed5..15650388d 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
@@ -36,13 +36,13 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
IList e; /// Events from currently running operations
Event retVal = Event.Done;
- /// Notes:
- /// float timeHr = volumeLtr / (1000.0f * targetFlow);
- /// float timeSec = 3600.0f * timeHr;
- /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
- int totalPulses = (int)(7200.0f * test.Volume / outPath.FlowMeter.NominalFlow); /// Nominal flow in [m3/h]
+ ltrPerRefPulse = outPath.FlowMeter.LtrPerPulse; /// [ltr/pulse], nominal flow in [m3/h]
- ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
+ /// Notes:
+ /// float timeHr = volumeLtr / (1000.0f * targetFlow);
+ /// float timeSec = 3600.0f * timeHr;
+ /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
+ int totalPulses = (int)(test.Volume / ltrPerRefPulse);
processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);
@@ -253,9 +253,9 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
tstRslt.FlowVolume = 3600.0f * ltrPerRefPulse * cBrd.EtPulses(0) / tstRslt.Time; /// [l/h]
tstRslt.PulsesMaster = cBrd.EtPulses(0); /// Pulses of the master flow meter (test total)
/// TODO: tuto pokracovat
- tstRslt.VolumeMaster = ltrPerRefPulse * tstRslt.PulsesMaster; /// [l] volume from the master flow meter
- tstRslt.VolumeCTV = 1.00103f * 1000.0f * tstRslt.MassDiff / tstRslt.DensityOut; /// [l] 1000.0f is because density is in [kg/m3]
- tstRslt.ConstMaster = ltrPerRefPulse * tstRslt.VolumeCTV / tstRslt.VolumeMaster;
+ tstRslt.VolumeMaster = ltrPerRefPulse * tstRslt.PulsesMaster; /// [l] volume from the master flow meter
+ tstRslt.ConstMaster = outPath.FlowMeter.LtrPerPulseCorrected(tstRslt.FlowVolume);
+ tstRslt.VolumeCTV = tstRslt.ConstMaster * tstRslt.PulsesMaster; /// [l] 1000.0f is because density is in [kg/m3]
/// Corrected master pulses per liter
if (tstRslt.VolumeCTV <= float.Epsilon)
{
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
index 6a847d917..66eef7b80 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
@@ -43,9 +43,6 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
/// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
int totalPulses = (int)(test.Volume / ltrPerRefPulse);
- /// Double total pulses for 'added' flowmeters
- if (outPath.FlowMeter.Cfg.Name.Contains("+")) { totalPulses *= 2; }
-
processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);
int repetitionNr = 1; /// First test: repetitionNr=1
diff --git a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
index 59d2ba444..aa08107f3 100644
--- a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
@@ -36,13 +36,13 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration
IList e; /// Events from currently running operations
Event retVal = Event.Done;
- /// Notes:
- /// float timeHr = volumeLtr / (1000.0f * targetFlow);
- /// float timeSec = 3600.0f * timeHr;
- /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
- int totalPulses = (int)(7200.0f * test.Volume / outPath.FlowMeter.NominalFlow); /// Nominal flow in [m3/h]
+ ltrPerRefPulse = outPath.FlowMeter.LtrPerPulse; /// [ltr/pulse], nominal flow in [m3/h]
- ltrPerRefPulse = outPath.FlowMeter.NominalFlow / 7200.0f; /// [ltr/pulse]
+ /// Notes:
+ /// float timeHr = volumeLtr / (1000.0f * targetFlow);
+ /// float timeSec = 3600.0f * timeHr;
+ /// int refPulses = (int)(timeSec * (2000.0f * targetFlow / pOut.FlowMeter.NominalFlow));
+ int totalPulses = (int)(test.Volume / ltrPerRefPulse);
processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);