diff --git a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
index 45b78639d..57f0f5ee6 100644
--- a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
+++ b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
@@ -134,7 +134,12 @@ namespace TBF.BenchControl.Elde
{
controlCom.SetWeight(i, MettlerToledo.Standard.BalanceDev.Masses[i]);
}
- }
+
+ for (int i = 0; i < MettlerToledo.Multi.BalanceDev.BalancesCount; i++)
+ {
+ controlCom.SetWeight(i, MettlerToledo.Multi.BalanceDev.Masses[i]);
+ }
+ }
///
diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs
index b67c17aef..36b8962de 100644
--- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs
+++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs
@@ -34,6 +34,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi
/// Enumeration of balances via static fields and methods
///
static int nextBalanceIdx = 0;
+ static int currentBalanceIdx = 0;
public static new void ResetStaticProperties()
{
nextBalanceIdx = 0;
@@ -56,8 +57,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi
protected MsrmntState msrmntState;
/// The mass after StartMassMeasurement() when MsrmntState == MsrmntState.Valid
- public float Mass { get { return mass; } }
- protected float mass;
+ public float Mass { get { return Masses[balanceNr]; } }
/// The time stamp after StartMassMeasurement() when MsrmntState == MsrmntState.Valid
public int MsrmntTimeStamp { get { return msrmntTimeStamp; } }
@@ -91,7 +91,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi
public void Initialize()
{
- msrmntState = MsrmntState.Failed; /// Data not valid yet
+ msrmntState = MsrmntState.Busy; /// Data not valid yet
if (balanceCfg.DebugLevel == Entities.DebugMode.Simulate) return;
@@ -129,63 +129,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
serialPort.Write("Z\r\n");
}
- public void Taring()
- {
- if (balanceCfg.DebugLevel == Entities.DebugMode.Simulate) return;
-
- if (msrmntState == MsrmntState.Busy)
- {
- log.Warn("Taring() returns without starting taring the scale because measurementState == MeasurementState.Busy");
- return;
- }
-
- log.Info("Taring()");
-
- msrmntState = MsrmntState.Busy;
- stringBuilder.Clear();
- serialPort.Write("T\r\n");
- }
-
- ///
- /// Get a stable mass measurement
- ///
- public void GetStableMassMeasurement()
- {
- if (balanceCfg.DebugLevel == Entities.DebugMode.Simulate) return;
-
- if (msrmntState == MsrmntState.Busy)
- {
- log.Warn("GetStableMassMeasurement() returns without starting a measurement because measurementState == MeasurementState.Busy");
- return;
- }
-
- log.Info("GetStableMassMeasurement()");
-
- msrmntState = MsrmntState.Busy;
- stringBuilder.Clear();
- serialPort.Write("S\r\n");
- }
-
- ///
- /// Get an immediate mass measurement
- ///
- public void GetImmediateMassMeasurement()
- {
- if (balanceCfg.DebugLevel == Entities.DebugMode.Simulate) return;
-
- if (msrmntState == MsrmntState.Busy)
- {
- log.Warn("GetImmediateMassMeasurement() returns without starting a measurement because measurementState == MeasurementState.Busy");
- return;
- }
-
- log.Info("GetImmediateMassMeasurement()");
-
- msrmntState = MsrmntState.Busy;
- stringBuilder.Clear();
- serialPort.Write("SI\r\n");
- }
-
///
/// Parse characters received from the serial port
///
@@ -193,8 +136,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi
{
if (balanceCfg.DebugLevel == Entities.DebugMode.Simulate)
{
- mass = TestBenchSim.GetSimMass(balanceNr);
- Masses[balanceNr] = mass;
+ Masses[balanceNr] = TestBenchSim.GetSimMass(balanceNr);
msrmntState = MsrmntState.Valid;
msrmntTimeStamp = StateMachine.Time;
return;
@@ -204,8 +146,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
log.Debug("RunDevice()");
- if (msrmntState != MsrmntState.Busy) return; /// No measurement in progress
-
string justReceived = serialPort.ReadExisting();
if (justReceived != null && justReceived.Length > 0)
{
@@ -238,119 +178,37 @@ namespace TBF.BenchControl.MettlerToledo.Multi
string[] fields = received.Split(new char[] { ' ' });
- if (fields.Length == 1 && fields[0].Equals("ZA")) /// Zero when stable
+ if (fields.Length == 2 && fields[0].Equals("&")) /// Zero when stable
{
- mass = 0;
- Masses[balanceNr] = mass;
- //msrmntState = MsrmntState.Valid;
+ msrmntState = MsrmntState.Failed;
log.InfoFormat("Balance response = \"{0}\"", received);
- return;
}
- else if (fields.Length < 2)
+ else if (fields.Length == 3)
{
- msrmntState = MsrmntState.Failed;
- log.WarnFormat("Balance response = \"{0}\", Unexpected error !!!", received);
- return;
- }
-
- if (fields[0].Equals("Z")) /// Zero when stable
- {
- if (fields.Length == 2 && fields[1].Equals("A"))
- {
- mass = 0;
- Masses[balanceNr] = mass;
- //msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\"", received);
- return;
- }
- else
- {
- msrmntState = MsrmntState.Failed;
- log.WarnFormat("Balance response = \"{0}\", error !!!", received);
- }
- }
- else if (fields[0].Equals("S")) /// Stable mass: field[1] = field[2] = "kg"
- {
- if (fields.Length >= 3 &&
- float.TryParse(fields[1],
- NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
+ float tmpMass;
+ if (float.TryParse(fields[1],
+ NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
CultureInfo.InvariantCulture,
- out mass))
+ out tmpMass))
{
- if (fields[2].Equals("g")) mass /= 1000.0f;
- if (fields[2].Equals("t")) mass *= 1000.0f;
- Masses[balanceNr] = mass;
- msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\", Mass = {1}", received, mass);
- }
- else if (fields.Length == 2 && fields[1].Equals("-"))
- {
- mass = 0;
- Masses[balanceNr] = mass;
- msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\", Mass = {1}", received, mass);
- }
- else
- {
- msrmntState = MsrmntState.Failed;
- log.WarnFormat("Balance response = \"{0}\", Overload or and unexpected error !!!", received);
- bool b = float.TryParse(fields[1], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out mass);
-
- }
- }
- else if (fields[0].Equals("SD")) /// Dynamic mass: field[1] = field[2] = "kg"
- {
- if (fields.Length >= 3 &&
- float.TryParse(fields[1],
- NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
- CultureInfo.InvariantCulture,
- out mass))
- {
- if (fields[2].Equals("g")) mass /= 1000.0f;
- if (fields[2].Equals("t")) mass *= 1000.0f;
- Masses[balanceNr] = mass;
- msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\", Mass = {1}", received, mass);
- }
- else if (fields.Length == 2 && fields[1].Equals("-"))
- {
- mass = 0;
- Masses[balanceNr] = mass;
- msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\", Mass = {1}", received, mass);
- }
- else
- {
- msrmntState = MsrmntState.Failed;
- log.WarnFormat("Balance response = \"{0}\", Overload or and unexpected error !!!", received);
- bool b = float.TryParse(fields[1], NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture, out mass);
-
- }
- }
- else if (fields[0].Equals("TB")) /// Taring
- {
- if (fields.Length >= 3 &&
- float.TryParse(fields[1],
- NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingSign,
- CultureInfo.InvariantCulture,
- out mass))
- {
- if (fields[2].Equals("g")) mass /= 1000.0f;
- if (fields[2].Equals("t")) mass *= 1000.0f;
+ Masses[currentBalanceIdx] = tmpMass / 100.0f;
msrmntState = MsrmntState.Valid;
- log.InfoFormat("Balance response = \"{0}\", Tara = {1}", received, mass);
- }
- else
- {
- msrmntState = MsrmntState.Failed;
- log.WarnFormat("Balance response = \"{0}\", Overload or and unexpected error !!!", received);
- }
+ log.InfoFormat("Balance response = \"{0}\", Mass = {1}", received, tmpMass);
+ }
+
+ msrmntState = MsrmntState.Failed;
+ log.WarnFormat("Balance response = \"{0}\", Unexpected error !!!", received);
}
else
{
msrmntState = MsrmntState.Failed;
log.WarnFormat("Balance response = \"{0}\", Unexpected error !!!", received);
- }
+ }
+
+ if (++currentBalanceIdx >= nextBalanceIdx)
+ {
+ currentBalanceIdx = 0;
+ }
}
}
diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadMassOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadMassOp.cs
index 5a262cdaf..edfbf7358 100644
--- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadMassOp.cs
+++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadMassOp.cs
@@ -39,7 +39,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
public void Start()
{
done = false;
- balanceDev.GetImmediateMassMeasurement();
}
/// Run this operation
@@ -55,7 +54,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
result.Val = balanceDev.Mass;
done = true;
log.InfoFormat("ReadMassOp.Run() ... mass={0} ... returning Event.BalanceDone", balanceDev.Mass);
- balanceDev.GetImmediateMassMeasurement(); /// Start another measurement
return Event.BalanceDone; /// Mass read OK
}
else if (done)
@@ -64,7 +62,7 @@ namespace TBF.BenchControl.MettlerToledo.Multi
}
else
{
- return Event.None;
+ return Event.Busy;
}
}
diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadStableMassOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadStableMassOp.cs
index 6534c5f2f..11f1c18b6 100644
--- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadStableMassOp.cs
+++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/ReadStableMassOp.cs
@@ -49,7 +49,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
{
currentReadingsCount = 0;
massReadings = new float[totalReadingsCount];
- balanceDev.GetStableMassMeasurement();
}
/// Run this operation
@@ -83,7 +82,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
}
}
- balanceDev.GetStableMassMeasurement();
return Event.None;
}
diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/TaringOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/TaringOp.cs
index 585758a25..bd574dbf8 100644
--- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/TaringOp.cs
+++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/TaringOp.cs
@@ -38,7 +38,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
public void Start()
{
done = false;
- balanceDev.Taring();
}
/// Run this operation
@@ -67,7 +66,6 @@ namespace TBF.BenchControl.MettlerToledo.Multi
return Event.BalanceDone; /// Taring completed
}
- balanceDev.Taring(); /// Failed -> repeat taring
return Event.Busy;
}
diff --git a/TestBenchFramework/BenchControl/MettlerToledo/ReadMassesOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/ReadMassesOp.cs
index b648bf675..3af02322b 100644
--- a/TestBenchFramework/BenchControl/MettlerToledo/ReadMassesOp.cs
+++ b/TestBenchFramework/BenchControl/MettlerToledo/ReadMassesOp.cs
@@ -33,10 +33,6 @@ namespace TBF.BenchControl.MettlerToledo
{
Standard.BalanceDev.Balances[i].GetImmediateMassMeasurement();
}
- for (int i = 0; i < Multi.BalanceDev.BalancesCount; i++)
- {
- Multi.BalanceDev.Balances[i].GetImmediateMassMeasurement();
- }
}
/// Run this operation