diff --git a/TestBenchFramework/BenchControl/Dummy/Balance/Component.cs b/TestBenchFramework/BenchControl/Dummy/Balance/Component.cs index c1e594b18..ac0a65886 100644 --- a/TestBenchFramework/BenchControl/Dummy/Balance/Component.cs +++ b/TestBenchFramework/BenchControl/Dummy/Balance/Component.cs @@ -55,6 +55,11 @@ namespace TBF.BenchControl.Dummy.Balance return this; } + public IOperation GetSerNumOp(ref string serialNumber) + { + return null; + } + /// Start this operation public void Start() { diff --git a/TestBenchFramework/BenchControl/GenericDevices/IScale.cs b/TestBenchFramework/BenchControl/GenericDevices/IScale.cs index 9deeb01b0..18d2f1a6f 100644 --- a/TestBenchFramework/BenchControl/GenericDevices/IScale.cs +++ b/TestBenchFramework/BenchControl/GenericDevices/IScale.cs @@ -79,5 +79,12 @@ namespace TBF.BenchControl.GenericDevices /// Method: false = slow (precise), true = fast (immediate) /// ReadMassAverageOp instance reference casted to IOperaton IOperation ReadStableMassOp(ref DoubleBox mass, int readingsCount, double maxSpread, Config.Entities.MassMethod method); - } + + /// + /// Events: Done, Error + /// + /// Reference to the serialNumber + /// GetBalanceSerNumOp instance reference casted to IOperaton + IOperation GetSerNumOp(ref string serialNumber); + } } diff --git a/TestBenchFramework/BenchControl/GenericDevices/IScale2.cs b/TestBenchFramework/BenchControl/GenericDevices/IScale2.cs deleted file mode 100644 index 5937a7629..000000000 --- a/TestBenchFramework/BenchControl/GenericDevices/IScale2.cs +++ /dev/null @@ -1,17 +0,0 @@ -/// -/// Copyright (c) 2013-2015 Sensus Metering Systems -/// -using TBF.BenchControl.Generic; - -namespace TBF.BenchControl.GenericDevices -{ - public interface IScale2 : IScale, IComponent - { - /// - /// Events: Done, Error - /// - /// Reference to the serialNumber - /// GetBalanceSNOp instance reference casted to IOperaton - IOperation GetBalanceSNOp(ref string serialNumber); - } -} diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs index f30cb932d..f21f1c845 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Multi/BalanceDev.cs @@ -315,5 +315,15 @@ namespace TBF.BenchControl.MettlerToledo.Multi { return new ReadStableMassOp(this, ref mass, readingsCount, maxSpread, method); } - } + + /// + /// Events: BalanceDone, Error + /// + /// Reference to the serialNumber + /// GetBalanceSNOp instance reference casted to IOperaton + public IOperation GetSerNumOp(ref string serialNumber) + { + return null; + } + } } diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceDev.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceDev.cs index 73e88f344..f25468091 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceDev.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceDev.cs @@ -491,5 +491,15 @@ namespace TBF.BenchControl.MettlerToledo.Standard { return new ReadStableMassOp(this, ref mass, readingsCount, maxSpread, method); } + + /// + /// Events: BalanceDone, Error + /// + /// Reference to the serialNumber + /// GetBalanceSNOp instance reference casted to IOperaton + public virtual IOperation GetSerNumOp(ref string serialNumber) + { + return null; + } } } diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewDev.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewDev.cs index c9e002b5b..88f89ebfc 100644 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewDev.cs +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/BalanceNewDev.cs @@ -1,12 +1,8 @@ /// /// Copyright (c) 2013-2017 Sensus Metering Systems -/// Author: Milan Hanajik /// using System; -using System.Collections.Generic; using System.Globalization; -using System.Text; -using System.IO.Ports; using log4net; using Config.Entities; using TBF.BenchControl.Generic; @@ -19,7 +15,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard /// /// Implemented and tested on 15.10.2013 by Milan Hanajik /// - public class BalanceNewDev : BalanceDev, IDevice, GenericDevices.IScale2 + public class BalanceNewDev : BalanceDev, IDevice, GenericDevices.IScale { /// /// Info: StartMassMeasurement() and "Balnce response = .., Mass = ..." @@ -55,7 +51,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard return; } - log.InfoFormat("{0} - GetSerialNumber()", Name); + log.WarnFormat("{0} - GetSerialNumber()", Name); msrmntState = MsrmntState.Busy; stringBuilder.Clear(); @@ -123,7 +119,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard { serialNumber = fields[2].Substring(1, fields[2].Length - 2); msrmntState = MsrmntState.Valid; - log.InfoFormat("{0} - Balance response = {1}, s/n = {1}", Name, + log.WarnFormat("{0} - Balance response = {1}, s/n = {1}", Name, received.Replace("\r", "").Replace("\n", ""), serialNumber); } else @@ -140,7 +136,7 @@ namespace TBF.BenchControl.MettlerToledo.Standard mass = 0; Masses[balanceNr] = mass; msrmntState = MsrmntState.Valid; - log.InfoFormat("{0} - Balance response = {1}", Name, + log.WarnFormat("{0} - Balance response = {1}", Name, received.Replace("\r", "").Replace("\n", "")); } else @@ -203,14 +199,14 @@ namespace TBF.BenchControl.MettlerToledo.Standard if (fields[3].Equals("g")) mass /= 1000.0f; if (fields[3].Equals("t")) mass *= 1000.0f; msrmntState = MsrmntState.Valid; - log.InfoFormat("{0} - Balance response = {1}, Mass = {2}", Name, + log.WarnFormat("{0} - Balance response = {1}, Mass = {2}", Name, received.Replace("\r", "").Replace("\n", ""), mass); } else if (fields.Length >= 2 && fields[1].Equals("I")) { mass = mass = balanceCfg.Capacity; msrmntState = MsrmntState.Overload; - log.InfoFormat("{0} - Balance response = {1}, Overload", Name, + log.WarnFormat("{0} - Balance response = {1}, Overload", Name, received.Replace("\r", "").Replace("\n", ""), mass); } else @@ -256,9 +252,9 @@ namespace TBF.BenchControl.MettlerToledo.Standard /// /// Reference to the serialNumber /// GetBalanceSNOp instance reference casted to IOperaton - public IOperation GetBalanceSNOp(ref string serialNumber) + public override IOperation GetSerNumOp(ref string serialNumber) { - return new GetBalanceSNOp(this, ref serialNumber); + return new GetSerNumOp(this, ref serialNumber); } /// diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetBalanceSNOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetBalanceSNOp.cs deleted file mode 100644 index 2c263e3df..000000000 --- a/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetBalanceSNOp.cs +++ /dev/null @@ -1,63 +0,0 @@ -/// -/// Copyright (c) 2013-2015 Sensus Metering Systems -/// Author: Milan Hanajik -/// -using System; -using log4net; - -namespace TBF.BenchControl.MettlerToledo.Standard -{ - public class GetBalanceSNOp : IOperation - { - private static readonly ILog log = LogManager.GetLogger(typeof(GetBalanceSNOp)); - public override string ToString() { return string.Format("GetBalanceSNOp(.,.)"); } - - /// Set by the constructor - BalanceNewDev balanceDev; - string serialNumber; - - /// - /// Events: BalanceDone, Error - /// - /// Balance device instance - /// Reference to the serialNumber - public GetBalanceSNOp(BalanceNewDev balanceDev, ref string serialNumber) - { - if (balanceDev == null) throw new ArgumentNullException("balanceDev"); - this.balanceDev = balanceDev; - - this.serialNumber = serialNumber; - - log.Debug(this.ToString()); - } - - /// Start this operation - public void Start() - { - log.DebugFormat("{0} - Start()", balanceDev.Name); - balanceDev.GetSerialNumber(); - } - - /// Run this operation - /// - /// Event.None - /// Event.BalanceDone - /// - public Event Run() - { - if (balanceDev.MsrmntState == MsrmntState.Valid) - { - serialNumber = balanceDev.SerialNumber; - return Event.BalanceDone; /// S/N read successful - } - if (balanceDev.MsrmntState == MsrmntState.Failed) return Event.Error; /// S/N read failed - return Event.None; /// No result yet - } - - /// Stop this operation - public void Stop() - { - log.DebugFormat("{0} - Stop()", balanceDev.Name); - } - } -} diff --git a/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetSerNumOp.cs b/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetSerNumOp.cs new file mode 100644 index 000000000..542cf5b82 --- /dev/null +++ b/TestBenchFramework/BenchControl/MettlerToledo/Standard/GetSerNumOp.cs @@ -0,0 +1,62 @@ +/// +/// Copyright (c) 2013-2015 Sensus Metering Systems +/// +using System; +using log4net; + +namespace TBF.BenchControl.MettlerToledo.Standard +{ + public class GetSerNumOp : IOperation + { + private static readonly ILog log = LogManager.GetLogger(typeof(GetSerNumOp)); + public override string ToString() { return string.Format("GetSerNumOp(.,.)"); } + + /// Set by the constructor + BalanceNewDev scale; + string serialNumber; + + /// + /// Events: BalanceDone, Error + /// + /// Balance device instance + /// Reference to the serialNumber + public GetSerNumOp(BalanceNewDev scale, ref string serialNumber) + { + if (scale == null) throw new ArgumentNullException("balanceDev"); + this.scale = scale; + + this.serialNumber = serialNumber; + + log.Debug(this.ToString()); + } + + /// Start this operation + public void Start() + { + log.DebugFormat("{0} - Start()", scale.Name); + scale.GetSerialNumber(); + } + + /// Run this operation + /// + /// Event.None + /// Event.BalanceDone + /// + public Event Run() + { + if (scale.MsrmntState == MsrmntState.Valid) + { + serialNumber = scale.SerialNumber; + return Event.BalanceDone; /// S/N read successful + } + if (scale.MsrmntState == MsrmntState.Failed) return Event.Error; /// S/N read failed + return Event.None; /// No result yet + } + + /// Stop this operation + public void Stop() + { + log.DebugFormat("{0} - Stop()", scale.Name); + } + } +} diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index 22c47c877..3ad48c106 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -124,6 +124,27 @@ namespace TBF.BenchControl.Sequences } while (e.Contains(Event.ValvesBusy)); + //-------------------------------------------------------------------------------------------- + State getSNs = State.Create("MainSeq : Reading serial numbers of all scales").AddOperation(checkUiOp); + string serNum1 = string.Empty; + string serNum2 = string.Empty; + string serNum3 = string.Empty; + if (StateMachine.Scale1 != null) getSNs.AddOperation(StateMachine.Scale1.GetSerNumOp(ref serNum1)); + if (StateMachine.Scale2 != null) getSNs.AddOperation(StateMachine.Scale2.GetSerNumOp(ref serNum2)); + if (StateMachine.Scale3 != null) getSNs.AddOperation(StateMachine.Scale3.GetSerNumOp(ref serNum3)); + getSNs.EnterState(); + do + { + e = StateMachine.WaitRunDevsRunOps(); + if (e.Contains(Event.Error)) goto error; + if (e.Contains(Event.UiCmdStop)) goto stop; + } + while (e.Contains(Event.Busy)); + + if (!string.IsNullOrEmpty(serNum1)) log.WarnFormat("Scale {0} : s/n = {1}", StateMachine.Scale1.Name, serNum1); + if (!string.IsNullOrEmpty(serNum2)) log.WarnFormat("Scale {0} : s/n = {1}", StateMachine.Scale2.Name, serNum2); + if (!string.IsNullOrEmpty(serNum3)) log.WarnFormat("Scale {0} : s/n = {1}", StateMachine.Scale3.Name, serNum3); + //-------------------------------------------------------------------------------------------- IntBox remainingTime = new IntBox(); State startNew = State.Create("MainSeq : Draining tanks") @@ -190,11 +211,15 @@ namespace TBF.BenchControl.Sequences while (e.Contains(Event.ValvesBusy)); //-------------------------------------------------------------------------------------------- - State taraAll = State.Create("MainSeq : Reset all balances").AddOperation(checkUiOp); - DoubleBox tara = new DoubleBox(0); - if (StateMachine.Scale1 != null) taraAll.AddOperation(StateMachine.Scale1.TaringOp(ref tara)); - if (StateMachine.Scale2 != null) taraAll.AddOperation(StateMachine.Scale2.TaringOp(ref tara)); - if (StateMachine.Scale3 != null) taraAll.AddOperation(StateMachine.Scale3.TaringOp(ref tara)); + Bridge.OnActivity(this, Strings.Resetting_scales); + //-------------------------------------------------------------------------------------------- + State taraAll = State.Create("MainSeq : Resetting scales").AddOperation(checkUiOp); + DoubleBox tara1 = new DoubleBox(0); + DoubleBox tara2 = new DoubleBox(0); + DoubleBox tara3 = new DoubleBox(0); + if (StateMachine.Scale1 != null) taraAll.AddOperation(StateMachine.Scale1.TaringOp(ref tara1)); + if (StateMachine.Scale2 != null) taraAll.AddOperation(StateMachine.Scale2.TaringOp(ref tara2)); + if (StateMachine.Scale3 != null) taraAll.AddOperation(StateMachine.Scale3.TaringOp(ref tara3)); taraAll.EnterState(); do { diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs index 379e068d0..d8bb64b5b 100644 --- a/TestBenchFramework/Properties/AssemblyInfo.cs +++ b/TestBenchFramework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.14.587.1")] -[assembly: AssemblyFileVersion("2.14.587.1")] +[assembly: AssemblyVersion("2.14.588.1")] +[assembly: AssemblyFileVersion("2.14.588.1")] diff --git a/TestBenchFramework/Resources/Strings.Designer.cs b/TestBenchFramework/Resources/Strings.Designer.cs index 7349a9d17..cbd0b8213 100644 --- a/TestBenchFramework/Resources/Strings.Designer.cs +++ b/TestBenchFramework/Resources/Strings.Designer.cs @@ -3471,6 +3471,15 @@ namespace TBF.Resources { } } + /// + /// Looks up a localized string similar to Resetting scales. + /// + internal static string Resetting_scales { + get { + return ResourceManager.GetString("Resetting_scales", resourceCulture); + } + } + /// /// Looks up a localized string similar to Resistance. /// diff --git a/TestBenchFramework/Resources/Strings.resx b/TestBenchFramework/Resources/Strings.resx index 2fc319133..f74ad28a0 100644 --- a/TestBenchFramework/Resources/Strings.resx +++ b/TestBenchFramework/Resources/Strings.resx @@ -1783,4 +1783,7 @@ Temp. lim. lo [°C] + + Resetting scales + \ No newline at end of file diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj index 91b50ca52..6b917f44b 100644 --- a/TestBenchFramework/TBF.csproj +++ b/TestBenchFramework/TBF.csproj @@ -518,7 +518,7 @@ - + @@ -1363,7 +1363,6 @@ -