diff --git a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
index 045b7510a..75c7bebfa 100644
--- a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
+++ b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
@@ -106,7 +106,8 @@ namespace TBF.BenchControl.Elde
/// State of valves sent out - buffered by the last SendCommand()
public ulong Route { get { return route; } }
- ulong valvesToInvert; /// Route = valesToInvert ^ RequiredRouteWithoutInvertedVlaves
+ ulong valvesToInvert; /// Route = valesToInvert ^ RequiredRouteWithoutInvertedVlaves
+ readonly ulong routeMask; /// This mask masks out virtual valves, routeMask is set in the constructor
///
/// Initialization data updated by constructors of children components
@@ -128,8 +129,6 @@ namespace TBF.BenchControl.Elde
public uint[] BalanceRange = new uint[2];
- readonly ulong routeMask; /// This mask masks out virtual valves, routeMask is set in the constructor
-
///
/// Private values sent by the last SendCommand()
///
@@ -412,6 +411,18 @@ namespace TBF.BenchControl.Elde
return oldRoute ^ route;
}
+ ///
+ /// Set Route to value returned by RRoute. Take virtual valves into account.
+ ///
+ /// 'ulong' with bits of valves that have changed set to '1'
+ public ulong SyncRoute()
+ {
+ ulong oldRoute = route;
+ route = (RRoute & routeMask) | (route & (~routeMask));
+ log.DebugFormat("SyncRoute(), new route = {0}", Utils.ShowRoute(route));
+ return oldRoute ^ route;
+ }
+
///
/// Regulation valves control.
///
diff --git a/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs b/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
index e19e6c605..4188019a2 100644
--- a/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
+++ b/TestBenchFramework/BenchControl/Elde/StartMeasurementOp.cs
@@ -57,7 +57,8 @@ namespace TBF.BenchControl.Elde
/// Start this operation
public void Start()
{
- controlBoard.SendCommand(Command.Start, flowMeterIdx, controlBoard.RRoute, refPulses, testMethod,
+ controlBoard.SyncRoute();
+ controlBoard.SendCommand(Command.Start, flowMeterIdx, controlBoard.Route, refPulses, testMethod,
filterConstant, 20, 0, StopDevs.None);
}
diff --git a/TestBenchFramework/BenchControl/Elde/StopPreviousOp.cs b/TestBenchFramework/BenchControl/Elde/StopPreviousOp.cs
index 98bbac97d..50b2997dc 100644
--- a/TestBenchFramework/BenchControl/Elde/StopPreviousOp.cs
+++ b/TestBenchFramework/BenchControl/Elde/StopPreviousOp.cs
@@ -32,9 +32,10 @@ namespace TBF.BenchControl.Elde
/// Start this operation
public void Start()
{
+ controlBoard.SyncRoute();
controlBoard.SendCommand(Command.Stop,
0, /// ref. flowmeter number
- controlBoard.RRoute, /// route
+ controlBoard.Route, /// route
0, /// ref. pulses
TestMethods.Diverter,
0.0f,
diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs
index 1e7a1518e..b5fa5e85b 100644
--- a/TestBenchFramework/Properties/AssemblyInfo.cs
+++ b/TestBenchFramework/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("1.5.64.1")]
-[assembly: AssemblyFileVersion("1.5.64.1")]
+[assembly: AssemblyVersion("1.5.65.1")]
+[assembly: AssemblyFileVersion("1.5.65.1")]