diff --git a/Config/Config.csproj b/Config/Config.csproj index b1193fc17..8f65fd754 100644 --- a/Config/Config.csproj +++ b/Config/Config.csproj @@ -77,6 +77,7 @@ + diff --git a/Config/Entities/ComponentProcedure.cs b/Config/Entities/ComponentProcedure.cs index 2f970fff0..e0b17982c 100644 --- a/Config/Entities/ComponentProcedure.cs +++ b/Config/Entities/ComponentProcedure.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2017 Sensus Metering Systems +/// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// using System; using System.IO; @@ -13,13 +13,25 @@ namespace Config.Entities public virtual string Parameters { get; set; } public virtual Procedure Procedure { get; set; } + IParamsProvider paramsProvider; + /// + public virtual IParamsProvider GetParamsProvider() { return paramsProvider; } + public virtual void SetParamsProvider(IParamsProvider paramsProvider) { this.paramsProvider = paramsProvider; } + + + protected ComponentProcedure() { } + + public ComponentProcedure(string name, string parameters, Procedure procedure) + { + this.CmpntName = name; + this.Parameters = parameters; + this.Procedure = procedure; + } + + public virtual ComponentProcedure Clone(Procedure newProcedure) { - ComponentProcedure result = new ComponentProcedure(); - result.CmpntName = CmpntName; - result.Parameters = Parameters; - result.Procedure = newProcedure; - return result; + return new ComponentProcedure(CmpntName, Parameters, newProcedure); } public virtual void Export(StreamWriter output) @@ -34,11 +46,16 @@ namespace Config.Entities if (string.IsNullOrEmpty(firstLine)) return null; - ComponentProcedure result = new ComponentProcedure(); - result.CmpntName = firstLine; - result.Parameters = input.ReadLine().Replace("~", Environment.NewLine); - result.Procedure = newProcedure; - return result; + try + { + string cmptnName = firstLine; + string parameters = input.ReadLine().Replace("~", Environment.NewLine); + return new ComponentProcedure(cmptnName, parameters, newProcedure); + } + catch (Exception) + { + return null; + } } } } diff --git a/Config/Entities/ComponentTest.cs b/Config/Entities/ComponentTest.cs index 869c672dc..ab0599282 100644 --- a/Config/Entities/ComponentTest.cs +++ b/Config/Entities/ComponentTest.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2017 Sensus Metering Systems +/// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// using System; using System.IO; @@ -13,13 +13,25 @@ namespace Config.Entities public virtual string Parameters { get; set; } public virtual Test Test { get; set; } + IParamsProvider paramsProvider; + /// + public virtual IParamsProvider GetParamsProvider() { return paramsProvider; } + public virtual void SetParamsProvider(IParamsProvider paramsProvider) { this.paramsProvider = paramsProvider; } + + + protected ComponentTest() { } + + public ComponentTest(string name, string parameters, Test test) + { + this.CmpntName = name; + this.Parameters = parameters; + this.Test = test; + } + + public virtual ComponentTest Clone() { - ComponentTest result = new ComponentTest(); - result.CmpntName = CmpntName; - result.Parameters = Parameters; - result.Test = Test; - return result; + return new ComponentTest(CmpntName, Parameters, Test); } public virtual void Export(StreamWriter output) @@ -34,11 +46,16 @@ namespace Config.Entities if (string.IsNullOrEmpty(firstLine)) return null; - ComponentTest result = new ComponentTest(); - result.CmpntName = firstLine; - result.Parameters = input.ReadLine().Replace("~", Environment.NewLine); - result.Test = newTest; - return result; + try + { + string cmptnName = firstLine; + string parameters = input.ReadLine().Replace("~", Environment.NewLine); + return new ComponentTest(cmptnName, parameters, newTest); + } + catch (Exception) + { + return null; + } } } } diff --git a/TBF/BenchControl/Generic/IParamsProvider.cs b/Config/Entities/IParamsProvider.cs similarity index 85% rename from TBF/BenchControl/Generic/IParamsProvider.cs rename to Config/Entities/IParamsProvider.cs index e161e64ab..4a3b34ec6 100644 --- a/TBF/BenchControl/Generic/IParamsProvider.cs +++ b/Config/Entities/IParamsProvider.cs @@ -1,10 +1,17 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// -namespace TBF.BenchControl.Generic +using System.Xml.Serialization; + +namespace Config.Entities { public interface IParamsProvider { + /// + /// Get XML Serializer + /// + XmlSerializer GetSerializer(); + string ComponentName { get; } /// @@ -45,7 +52,7 @@ namespace TBF.BenchControl.Generic /// String representation of the parameter void UpdateParam(int ix, string strValue); - void UpdateDbEntity(); + void UpdateEmbeddedDbEntity(); /// /// Creates an object copy diff --git a/Config/Entities/Procedure.cs b/Config/Entities/Procedure.cs index cc88bc52b..64504c102 100644 --- a/Config/Entities/Procedure.cs +++ b/Config/Entities/Procedure.cs @@ -225,6 +225,15 @@ namespace Config.Entities return diff.ToString(); } + public virtual ComponentProcedure GetProcedureParamsEntity(string cmpntName) + { + foreach (var procPrms in MoreParams) + { + if (procPrms.CmpntName == cmpntName) return procPrms; + } + return null; + } + public override string ToString() { return string.Format("{0}, rev.{1}", Name, Revision); diff --git a/Config/Entities/Test.cs b/Config/Entities/Test.cs index 9d6c2ac17..9047f0358 100644 --- a/Config/Entities/Test.cs +++ b/Config/Entities/Test.cs @@ -301,6 +301,15 @@ namespace Config.Entities return diff.ToString(); } + public virtual ComponentTest GetTestParamsEntity(string cmpntName) + { + foreach (var tstPrms in MoreParams) + { + if (tstPrms.CmpntName == cmpntName) return tstPrms; + } + return null; + } + public virtual float GetErrLimLo(float flow) { if (ErrLimLo <= ErrLimHi) diff --git a/Config/Properties/AssemblyInfo.cs b/Config/Properties/AssemblyInfo.cs index f440c1e37..651363788 100644 --- a/Config/Properties/AssemblyInfo.cs +++ b/Config/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.18.883.0")] -[assembly: AssemblyFileVersion("2.18.883.0")] +[assembly: AssemblyVersion("2.18.891.0")] +[assembly: AssemblyFileVersion("2.18.891.0")] diff --git a/TBF/BenchControl/ComponentCfgBase.cs b/TBF/BenchControl/ComponentCfgBase.cs index 8a65cc287..17a5e01d1 100644 --- a/TBF/BenchControl/ComponentCfgBase.cs +++ b/TBF/BenchControl/ComponentCfgBase.cs @@ -124,56 +124,146 @@ namespace TBF.BenchControl } } - /// - /// Default implementation returning null - no test aprameters. - /// In case there are any test parameters, this function override should return - /// a reference to a class that implements IParamsProvider and ITestParams. - /// - /// Test parameters obtained by the last UpdateTestParams(test) - public virtual IParamsProvider GetTestParams() - { - return null; - } - /// - /// Default implementation returning null - no procedure parameters. - /// In case there are any procedure parameters, this function override should return - /// a reference to a class that implements IParamsProvider and IProcedureParams. - /// - /// Procedure parameters obtained by the last UpdateProcedureParams(procedure) - public virtual IParamsProvider GetProcedureParams() + public void LoadTestParamsFromDB(Test test) { - return null; - } - - - public void UpdateTestParams(Test test) - { - ITestParams tstPrms = (GetTestParams() as ITestParams); + ITestParams tstPrms = (GetRuntimeTestParamsProvider() as ITestParams); if (tstPrms != null) { - tstPrms.UpdateTestParams(Name, test); + tstPrms.FromDbEntity(Name, test); } } - public void UpdateProcedureParams(Procedure procedure) + + public void LoadProcedureParamsFromDB(Procedure procedure) { - IProcedureParams procPrms = (GetProcedureParams() as IProcedureParams); + IProcedureParams procPrms = (GetRuntimeProcParamsProvider() as IProcedureParams); if (procPrms != null) { - procPrms.UpdateProcedureParams(Name, procedure); + procPrms.FromDbEntity(Name, procedure); } } - public virtual IParamsProvider CreateTestParams(Test test) - { - return null; - } + /// + /// If there are any procedure parameters, this function should be overriden + /// by one returning a reference to a newly created object + /// implementing IParamsProvider and IProcedureParams. + /// + /// This default implementation returns null = no procedure parameters. + /// + /// Procedure parameters provider for this component or null + public virtual IParamsProvider CreateProcParamsProvider() + { + return null; + } - public virtual IParamsProvider CreateProcedureParams(Procedure procedure) - { - return null; - } + /// + /// If there are any procedure parameters, this function should be overriden + /// by one returning a reference to an object + /// implementing IParamsProvider and IProcedureParams used in runtime. + /// + /// This default implementation returns null = no procedure parameters. + /// + /// Procedure parameters provider for this component or null + public virtual IParamsProvider GetRuntimeProcParamsProvider() + { + return null; + } + + public virtual IParamsProvider GetUIProcParamsProvider(Procedure procedure) + { + if (GetRuntimeProcParamsProvider() == null) + { + /// Component has no test parametes + return null; + } + + ComponentProcedure procParamsEntity = procedure.GetProcedureParamsEntity(Name); + + if (procParamsEntity != null) + { + if (procParamsEntity.GetParamsProvider() != null) + { + /// Parameters provider for this entity already fetched - return it + return procParamsEntity.GetParamsProvider(); + } + else + { + /// Parameters provider for this entity will be created and updated from the entity later on + IParamsProvider paramsProvider = CreateProcParamsProvider(); + (paramsProvider as IProcedureParams).UpdateFromDbEntity(procParamsEntity); + procParamsEntity.SetParamsProvider(paramsProvider); + return paramsProvider; + } + } + else + { + IParamsProvider paramsProvider = CreateProcParamsProvider(); + (paramsProvider as IProcedureParams).FromDbEntity(Name, procedure); + return paramsProvider; + } + } + + + /// + /// If there are any procedure parameters, this function should be overriden + /// by one returning a reference to a newly created object + /// implementing IParamsProvider and ITestParams. + /// + /// This default implementation returns null = no test parameters. + /// + /// Procedure parameters provider for this component or null + public virtual IParamsProvider CreateTestParamsProvider() + { + return null; + } + + /// + /// If there are any test parameters, this function should be overriden + /// by one returning a reference to an object + /// implementing IParamsProvider and ITestParams used in runtime. + /// + /// This default implementation returns null = no test parameters. + /// + /// Test parameters provider for this component or null + public virtual IParamsProvider GetRuntimeTestParamsProvider() + { + return null; + } + + public virtual IParamsProvider GetUITestParamsProvider(Test test) + { + if (GetRuntimeTestParamsProvider() == null) + { + /// Component has no test parametes + return null; + } + + ComponentTest testParamsEntity = test.GetTestParamsEntity(Name); + + if (testParamsEntity != null) + { + if (testParamsEntity.GetParamsProvider() != null) + { + /// Parameters provider for this entity already fetched - return it + return testParamsEntity.GetParamsProvider(); + } + else + { + /// Parameters provider for this entity will be created and updated from the entity later on + IParamsProvider paramsProvider = CreateTestParamsProvider(); + (paramsProvider as ITestParams).UpdateFromDbEntity(testParamsEntity); + testParamsEntity.SetParamsProvider(paramsProvider); + return paramsProvider; + } + } + else + { + IParamsProvider paramsProvider = CreateTestParamsProvider(); + (paramsProvider as ITestParams).FromDbEntity(Name, test); + return paramsProvider; + } + } } } diff --git a/TBF/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs b/TBF/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs index d4207ae21..beaad638c 100644 --- a/TBF/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs +++ b/TBF/BenchControl/Elde/FixedStartRegisterReader/RRProcedureParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader public class RRProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcedureParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public double PulsesPerLtr; /// Target low limit of the flow increase or decrease @@ -81,7 +81,7 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs b/TBF/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs index 726ee015f..df62fe524 100644 --- a/TBF/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs +++ b/TBF/BenchControl/Elde/FixedStartRegisterReader/RegisterReaderCfg.cs @@ -20,20 +20,15 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader /// Procedure parameters [XmlIgnore] public RRProcedureParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - RRProcedureParams procParams = new RRProcedureParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new RRProcedureParams(true); } /// Private parameterless constructor invoked by all other (public) constructors RegisterReaderCfg() { Name = "Dummy"; ParentName = "CB"; - ProcParams = new RRProcedureParams(true); + ProcParams = new RRProcedureParams(true); } public RegisterReaderCfg(IComponentFactory factory) diff --git a/TBF/BenchControl/Elde/RegisterReader/RRProcedureParams.cs b/TBF/BenchControl/Elde/RegisterReader/RRProcedureParams.cs index 328d2f9c3..f37593ae5 100644 --- a/TBF/BenchControl/Elde/RegisterReader/RRProcedureParams.cs +++ b/TBF/BenchControl/Elde/RegisterReader/RRProcedureParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.Elde.RegisterReader public class RRProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RRProcedureParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public double PulsesPerLtr; /// [l^-1] @@ -81,7 +81,7 @@ namespace TBF.BenchControl.Elde.RegisterReader return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs b/TBF/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs index bb640f21d..928459ffc 100644 --- a/TBF/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs +++ b/TBF/BenchControl/Elde/RegisterReader/RegisterReaderCfg.cs @@ -10,7 +10,7 @@ namespace TBF.BenchControl.Elde.RegisterReader public class RegisterReaderCfg : ComponentCfgBase, Generic.IChildComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RegisterReaderCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new RegisterReaderCfgCtrl(); } @@ -22,18 +22,13 @@ namespace TBF.BenchControl.Elde.RegisterReader /// Procedure parameters [XmlIgnore] public RRProcedureParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - RRProcedureParams procParams = new RRProcedureParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new RRProcedureParams(true); } /// Private parameterless constructor invoked by all other (public) constructors RegisterReaderCfg() { - ProcParams = new RRProcedureParams(true); + ProcParams = new RRProcedureParams(true); } public RegisterReaderCfg(string name, IComponentFactory factory) diff --git a/TBF/BenchControl/Generic/IComponentCfg.cs b/TBF/BenchControl/Generic/IComponentCfg.cs index c3785f8c8..f7e0aab9a 100644 --- a/TBF/BenchControl/Generic/IComponentCfg.cs +++ b/TBF/BenchControl/Generic/IComponentCfg.cs @@ -2,6 +2,7 @@ /// Copyright (c) 2013-2016 Sensus Metering Systems /// using System.Collections.Generic; +using Config.Entities; namespace TBF.BenchControl.Generic { @@ -52,19 +53,51 @@ namespace TBF.BenchControl.Generic /// IComponentCfgCtrl GetControl(); - /// - /// Procedure parameters provider support - /// - IParamsProvider GetProcedureParams(); - void UpdateProcedureParams(Config.Entities.Procedure procedure); - IParamsProvider CreateProcedureParams(Config.Entities.Procedure procedure); + + /// + /// Creates a procedure parameters provider (specific for each component). + /// + /// Prodedure parameters provider or null + IParamsProvider CreateProcParamsProvider(); + + /// + /// Returns runtime procedure parameters provider - one per component updated by LoadProcedureParamsFromDB(...). + /// + /// Prodedure parameters provider or null + IParamsProvider GetRuntimeProcParamsProvider(); + + /// + /// Returns UI procedure parameters provider - one per ComponentProcedure DB entity. + /// + /// Prodedure parameters provider or null + IParamsProvider GetUIProcParamsProvider(Config.Entities.Procedure procedure); + + + /// + /// Creates a test parameters provider (specific for each component). + /// + /// Test parameters provider or null + IParamsProvider CreateTestParamsProvider(); + + /// + /// Returns runtime test parameters provider - one per component updated by LoadtestParamsFromDB(...). + /// + /// Test parameters provider or null + IParamsProvider GetRuntimeTestParamsProvider(); + + /// + /// Returns UI test parameters provider - one per ComponentTest DB entity. + /// + /// Test parameters provider or null + IParamsProvider GetUITestParamsProvider(Config.Entities.Test test); + + + /// + /// Used in run time when a procedure is loaded or a test is started + /// + void LoadProcedureParamsFromDB(Config.Entities.Procedure procedure); + void LoadTestParamsFromDB(Config.Entities.Test test); - /// - /// Test parameters provider support - /// - IParamsProvider GetTestParams(); - void UpdateTestParams(Config.Entities.Test test); - IParamsProvider CreateTestParams(Config.Entities.Test test); string ToString(int i); } diff --git a/TBF/BenchControl/Generic/IProcedureParams.cs b/TBF/BenchControl/Generic/IProcedureParams.cs index caccedf45..01c36af4e 100644 --- a/TBF/BenchControl/Generic/IProcedureParams.cs +++ b/TBF/BenchControl/Generic/IProcedureParams.cs @@ -1,11 +1,14 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// +using Config.Entities; + namespace TBF.BenchControl.Generic { public interface IProcedureParams { - void UpdateProcedureParams(string componentName, Config.Entities.Procedure procedure); - Config.Entities.ComponentProcedure ToDbEntity(string componentName, Config.Entities.Procedure procedure); + void UpdateFromDbEntity(ComponentProcedure dbEntity); + void FromDbEntity(string componentName, Procedure procedure); + ComponentProcedure ToDbEntity(string componentName, Procedure procedure); } } diff --git a/TBF/BenchControl/Generic/ITestParams.cs b/TBF/BenchControl/Generic/ITestParams.cs index b7e9391b0..7cbb5b966 100644 --- a/TBF/BenchControl/Generic/ITestParams.cs +++ b/TBF/BenchControl/Generic/ITestParams.cs @@ -1,11 +1,14 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// +using Config.Entities; + namespace TBF.BenchControl.Generic { public interface ITestParams { - void UpdateTestParams(string componentName, Config.Entities.Test test); - Config.Entities.ComponentTest ToDbEntity(string componentName, Config.Entities.Test test); + void UpdateFromDbEntity(ComponentTest dbEntity); + void FromDbEntity(string componentName, Test test); + ComponentTest ToDbEntity(string componentName, Test test); } } diff --git a/TBF/BenchControl/Modbus/Easytherm/EasythermCfg.cs b/TBF/BenchControl/Modbus/Easytherm/EasythermCfg.cs index 40b4eedd5..536bb3294 100644 --- a/TBF/BenchControl/Modbus/Easytherm/EasythermCfg.cs +++ b/TBF/BenchControl/Modbus/Easytherm/EasythermCfg.cs @@ -11,7 +11,7 @@ namespace TBF.BenchControl.Modbus.Easytherm public class EasythermCfg : ComponentCfgBase, Generic.IChildComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(EasythermCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new EasythermCfgCtrl(); } @@ -25,13 +25,8 @@ namespace TBF.BenchControl.Modbus.Easytherm /// Procedure parameters [XmlIgnore] public ProcParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcParams procParams = new ProcParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcParams(true); } /// Private parameterless constructor invoked by all other (public) constructors @@ -40,7 +35,7 @@ namespace TBF.BenchControl.Modbus.Easytherm Name = "Easytherm"; ParentName = "Modbus"; ModbusAddress = 49; - ProcParams = new ProcParams(true); + ProcParams = CreateProcParamsProvider() as ProcParams; } public EasythermCfg(IComponentFactory factory) diff --git a/TBF/BenchControl/Modbus/Easytherm/ProcParams.cs b/TBF/BenchControl/Modbus/Easytherm/ProcParams.cs index a336069f3..f1cb74514 100644 --- a/TBF/BenchControl/Modbus/Easytherm/ProcParams.cs +++ b/TBF/BenchControl/Modbus/Easytherm/ProcParams.cs @@ -12,7 +12,7 @@ namespace TBF.BenchControl.Modbus.Easytherm public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float RequiredTemp; /// [°C] target temperature for a temperature controller or 0=not communicated to the controller @@ -99,7 +99,7 @@ namespace TBF.BenchControl.Modbus.Easytherm return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/Network/Camera/Roi/ProcedureParams.cs b/TBF/BenchControl/Network/Camera/Roi/ProcedureParams.cs index 5259a9698..76207964f 100644 --- a/TBF/BenchControl/Network/Camera/Roi/ProcedureParams.cs +++ b/TBF/BenchControl/Network/Camera/Roi/ProcedureParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.Network.Camera.Roi public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public double PulsesPerLtr; /// [l^-1] public int DetectionImagesCount; @@ -113,7 +113,7 @@ namespace TBF.BenchControl.Network.Camera.Roi return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/Network/Camera/Roi/RoiCfg.cs b/TBF/BenchControl/Network/Camera/Roi/RoiCfg.cs index d642e90a7..46cbe0935 100644 --- a/TBF/BenchControl/Network/Camera/Roi/RoiCfg.cs +++ b/TBF/BenchControl/Network/Camera/Roi/RoiCfg.cs @@ -28,13 +28,8 @@ namespace TBF.BenchControl.Network.Camera.Roi /// Procedure parameters [XmlIgnore] public ProcedureParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcedureParams procParams = new ProcedureParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcedureParams(true); } public int DetectionImagesCount { get { return ProcParams.DetectionImagesCount; } } public int DetectionPeriod1 { get { return ProcParams.DetectionPeriod1; } } @@ -45,7 +40,7 @@ namespace TBF.BenchControl.Network.Camera.Roi /// Private parameterless constructor invoked by all other (public) constructors RoiCfg() { - ProcParams = new ProcedureParams(true); + ProcParams = new ProcedureParams(true); } public RoiCfg(string name, IComponentFactory factory) diff --git a/TBF/BenchControl/Network/Camera/RoiForFixedStart/ProcedureParams.cs b/TBF/BenchControl/Network/Camera/RoiForFixedStart/ProcedureParams.cs index 08d874bc6..b958f0823 100644 --- a/TBF/BenchControl/Network/Camera/RoiForFixedStart/ProcedureParams.cs +++ b/TBF/BenchControl/Network/Camera/RoiForFixedStart/ProcedureParams.cs @@ -12,7 +12,7 @@ namespace TBF.BenchControl.Network.Camera.RoiForFixedStart public class ProcedureParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcedureParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public double PulsesPerLtr; /// [l^-1] @@ -79,7 +79,7 @@ namespace TBF.BenchControl.Network.Camera.RoiForFixedStart return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/Network/Camera/RoiForFixedStart/RoiCfg.cs b/TBF/BenchControl/Network/Camera/RoiForFixedStart/RoiCfg.cs index e1df56b55..4fd82d3e2 100644 --- a/TBF/BenchControl/Network/Camera/RoiForFixedStart/RoiCfg.cs +++ b/TBF/BenchControl/Network/Camera/RoiForFixedStart/RoiCfg.cs @@ -10,7 +10,7 @@ namespace TBF.BenchControl.Network.Camera.RoiForFixedStart public class RoiCfg : ComponentCfgBase, IChildComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(RoiCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new RoiCfgCtrl(); } @@ -24,19 +24,14 @@ namespace TBF.BenchControl.Network.Camera.RoiForFixedStart /// Procedure parameters [XmlIgnore] public ProcedureParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcedureParams procParams = new ProcedureParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcedureParams(true); } /// Private parameterless constructor invoked by all other (public) constructors RoiCfg() { - ProcParams = new ProcedureParams(true); - } + ProcParams = new ProcedureParams(true); + } public RoiCfg(string name, IComponentFactory factory) : this() diff --git a/TBF/BenchControl/ProcedureParamsBase.cs b/TBF/BenchControl/ProcedureParamsBase.cs index 91a61103a..9eec109f2 100644 --- a/TBF/BenchControl/ProcedureParamsBase.cs +++ b/TBF/BenchControl/ProcedureParamsBase.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl { protected ComponentProcedure procedureParamsEntity; - protected virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } + public virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } public string ComponentName { get { return componentName; } } protected string componentName; @@ -36,46 +36,37 @@ namespace TBF.BenchControl } /// To be overridden - public virtual void UpdateProcedureParams(ComponentProcedure dbEntity) + public virtual void UpdateFromDbEntity(ComponentProcedure dbEntity) { } - public void UpdateProcedureParams(string cmpntName, Procedure procedure) + public void FromDbEntity(string cmpntName, Procedure procedure) { - /// Search for an existing matching entity - foreach (var procPrms in procedure.MoreParams) - { - if (procPrms.CmpntName.Equals(cmpntName)) - { - UpdateProcedureParams(procPrms); - return; - } - } + ComponentProcedure componentProc = procedure.GetProcedureParamsEntity(cmpntName); + if (componentProc != null) + { + UpdateFromDbEntity(componentProc); + return; + } /// Create a new entity and add it to the list test.MoreParams this.procedureParamsEntity = this.ToDbEntity(cmpntName, procedure); - this.procedure = procedure; + this.procedureParamsEntity.SetParamsProvider(this as IParamsProvider); + this.procedure = procedure; this.componentName = cmpntName; procedure.MoreParams.Add(procedureParamsEntity); } - public ComponentProcedure ToDbEntity(string componentName, Procedure procedure) + public ComponentProcedure ToDbEntity(string cmpntName, Procedure procedure) { using (var writer = new StringWriter()) { - /// Serialize this class with parameters - GetSerializer().Serialize(writer, this); - - /// Create and return the ComponentProcedure entity - ComponentProcedure entity = new ComponentProcedure(); - entity.CmpntName = componentName; - entity.Parameters = writer.ToString(); - entity.Procedure = procedure; - return entity; + GetSerializer().Serialize(writer, this); /// Serialize this class with parameters + return new ComponentProcedure(cmpntName, writer.ToString(), procedure); /// Return new ComponentProcedure entity } } - public void UpdateDbEntity() + public void UpdateEmbeddedDbEntity() { using (var writer = new StringWriter()) { diff --git a/TBF/BenchControl/Sequences/MainSeq.cs b/TBF/BenchControl/Sequences/MainSeq.cs index 8ae2d8f0c..86a1053f5 100644 --- a/TBF/BenchControl/Sequences/MainSeq.cs +++ b/TBF/BenchControl/Sequences/MainSeq.cs @@ -1478,7 +1478,7 @@ namespace TBF.BenchControl.Sequences Generic.IComponent testMethodComp = TbfComponents.FindComponent(test.Method); if (testMethodComp == null) break; - testMethodComp.Cfg.UpdateTestParams(test); + testMethodComp.Cfg.LoadTestParamsFromDB(test); ISimultTestMethod simultTest = testMethodComp as ISimultTestMethod; MetersPath sensPath = StateMachine.GetMetersPath(test); @@ -1495,7 +1495,7 @@ namespace TBF.BenchControl.Sequences } simultWithPurgingTests.Add(test); - simultWithPurgingParams.Add(testMethodComp.Cfg.GetTestParams().Clone() as Generic.ITestParams); + simultWithPurgingParams.Add(testMethodComp.Cfg.GetRuntimeTestParamsProvider().Clone() as Generic.ITestParams); simultWithPurgingCount++; } @@ -1514,7 +1514,7 @@ namespace TBF.BenchControl.Sequences Generic.IComponent testMethodComp = TbfComponents.FindComponent(test.Method); if (testMethodComp == null) break; - testMethodComp.Cfg.UpdateTestParams(test); + testMethodComp.Cfg.LoadTestParamsFromDB(test); ISimultTestMethod simultTest = testMethodComp as ISimultTestMethod; MetersPath sensPath = StateMachine.GetMetersPath(test); @@ -1531,7 +1531,7 @@ namespace TBF.BenchControl.Sequences } simultWithEvacuationTests.Insert(0, test); - simultWithEvacuationParams.Insert(0, testMethodComp.Cfg.GetTestParams().Clone() as Generic.ITestParams); + simultWithEvacuationParams.Insert(0, testMethodComp.Cfg.GetRuntimeTestParamsProvider().Clone() as Generic.ITestParams); simultWithEvacuationCount++; } } diff --git a/TBF/BenchControl/StateMachine.cs b/TBF/BenchControl/StateMachine.cs index 6ec0821e6..7b2d36918 100644 --- a/TBF/BenchControl/StateMachine.cs +++ b/TBF/BenchControl/StateMachine.cs @@ -415,7 +415,7 @@ namespace TBF.BenchControl { foreach (var cmpnt in components) { - cmpnt.Cfg.UpdateProcedureParams(procedure); + cmpnt.Cfg.LoadProcedureParamsFromDB(procedure); } } @@ -423,7 +423,7 @@ namespace TBF.BenchControl { foreach (var cmpnt in components) { - cmpnt.Cfg.UpdateTestParams(test); + cmpnt.Cfg.LoadTestParamsFromDB(test); } } diff --git a/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs b/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs index c593f8b8f..841c7f3a1 100644 --- a/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs +++ b/TBF/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetTestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection public class CombinedWithDetTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CombinedWithDetTestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float TargetQ; /// Target=terminal flow durning detection when increasing or decreasing the flow public float RelativeQfrom; /// Tested flow low range related to the detected flow @@ -119,7 +119,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs index 950e44fb9..1e143d6e6 100644 --- a/TBF/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/CombinedWithDetection/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public CombinedWithDetTestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - CombinedWithDetTestParams testParams = new CombinedWithDetTestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new CombinedWithDetTestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/Endurance/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/Endurance/TestMethodCfg.cs index ec6b24849..9943bef16 100644 --- a/TBF/BenchControl/TestMethods/Endurance/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/Endurance/TestMethodCfg.cs @@ -23,16 +23,11 @@ namespace TBF.BenchControl.TestMethods.Endurance /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } #endif - /// Private parameterless constructor invoked by all other (public) constructors + /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() { #if false diff --git a/TBF/BenchControl/TestMethods/Endurance/TestParams.cs b/TBF/BenchControl/TestMethods/Endurance/TestParams.cs index 1812c4cbb..6c413eb3d 100644 --- a/TBF/BenchControl/TestMethods/Endurance/TestParams.cs +++ b/TBF/BenchControl/TestMethods/Endurance/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.Endurance public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public bool BooleanParam; /// Main meter readings are ignored during test (suitable for small flows) @@ -79,7 +79,7 @@ namespace TBF.BenchControl.TestMethods.Endurance return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestMethodCfg.cs index 0e09bf249..0f127bc92 100644 --- a/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FixedStart.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestParams.cs index 71f395fe9..6e89110b9 100644 --- a/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FixedStart/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FixedStart.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] @@ -157,7 +157,7 @@ namespace TBF.BenchControl.TestMethods.FixedStart.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestMethodCfg.cs index b2074dddb..c515ff0ea 100644 --- a/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEvaluation.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] - public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public TestParams TestParams; /// Created in constructor + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestParams.cs index 062949953..6ce952681 100644 --- a/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FixedStartDeferredEvaluation/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEvaluation.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] @@ -157,7 +157,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartDeferredEvaluation.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs index d2b8521f0..edf986140 100644 --- a/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs index b82e7597a..fd586b425 100644 --- a/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FixedStartMassCollection/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] @@ -157,7 +157,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs index 3d146600e..232c8d3d4 100644 --- a/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs index efd470f66..87fa2f663 100644 --- a/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStart/Compound/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) @@ -79,7 +79,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.Compound return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs index 528aeb9ad..070ab2d3b 100644 --- a/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs index c8e169267..39ff98ab8 100644 --- a/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStart/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] @@ -157,7 +157,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestMethodCfg.cs index 1e836bcea..8cec583fa 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Compoun public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestParams.cs index 7c952b18b..a95e107d0 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Compound/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Compoun public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float NextTestVolume; public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) @@ -89,7 +89,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Compoun return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestMethodCfg.cs index a7d44c170..9fc56900c 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.HeatMet public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestParams.cs index 2805bfda4..3a48ffaf1 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.HeatMet public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float NextTestVolume; /// [l] public float ErrorLimitLo; /// [%] @@ -166,7 +166,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.HeatMet return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestMethodCfg.cs index 156ad5d91..d03f4ab99 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Single public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestParams.cs index 421e236ae..0c392a523 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartFirstRepetWithMassColl/Single/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Single public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float NextTestVolume; /// [l] @@ -80,7 +80,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartFirstRepetWithMassColl.Single return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestMethodCfg.cs index ed9820ffc..c04a7962c 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Compound public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestParams.cs index e3f4bc3ef..e83870a14 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Compound/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Compound public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float VolumeToTank; public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) @@ -89,7 +89,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Compound return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestMethodCfg.cs index c46d4a4a9..3ffb4b477 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestParams.cs index 1b9ebc3ba..4fc179911 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float VolumeToTank; /// [l] public float ErrorLimitLo; /// [%] @@ -166,7 +166,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestMethodCfg.cs index 3417d042d..d362d8ca8 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Single public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestParams.cs index c3a4641fc..9012edcf5 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollProlonged/Single/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Single public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float VolumeToTank; /// [l] @@ -80,7 +80,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollProlonged.Single return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs index 2cefe370f..b9ed446af 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/CombinedTestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound public class CombinedTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(CombinedTestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public bool SupressTrills; /// Main meter readings are ignored during test (suitable for small flows) @@ -79,7 +79,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs index adbf93d64..d211071d5 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/Compound/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.Compound public class TestMethodCfg : ComponentCfgBase, IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public CombinedTestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - CombinedTestParams testParams = new CombinedTestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new CombinedTestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs index 93f1089c8..92b0dd8ff 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams testParams = new TestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs index 6b0ddb0c4..14c4ae946 100644 --- a/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs +++ b/TBF/BenchControl/TestMethods/FlyingStartMassCollection/HeatMeters/TestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float ErrorLimitLo; /// [%] public float ErrorLimitHi; /// [%] @@ -157,7 +157,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection.HeatMeters return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/LeakTest/LeakTestParams.cs b/TBF/BenchControl/TestMethods/LeakTest/LeakTestParams.cs index aa3a78d4d..abbfc53f2 100644 --- a/TBF/BenchControl/TestMethods/LeakTest/LeakTestParams.cs +++ b/TBF/BenchControl/TestMethods/LeakTest/LeakTestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.LeakTest public class LeakTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(LeakTestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float PressureLo; /// Presure range low limit in [bar] public float PressureHi; /// Presure range high limit in [bar] @@ -104,7 +104,7 @@ namespace TBF.BenchControl.TestMethods.LeakTest return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs index 4be035ccb..64ec09d57 100644 --- a/TBF/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/LeakTest/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.LeakTest public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public LeakTestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - LeakTestParams testParams = new LeakTestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new LeakTestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs b/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs index 40f11afa6..ec92a5a63 100644 --- a/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs +++ b/TBF/BenchControl/TestMethods/PMaxTest/PMaxTestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.PMaxTest public class PMaxTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PMaxTestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float PressureLo; /// Presure range low limit in [bar] public float PressureHi; /// Presure range high limit in [bar] @@ -97,7 +97,7 @@ namespace TBF.BenchControl.TestMethods.PMaxTest return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs index 83e35b3a5..4c267d699 100644 --- a/TBF/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/PMaxTest/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.PMaxTest public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public PMaxTestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - PMaxTestParams testParams = new PMaxTestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new PMaxTestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestParams.cs b/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestParams.cs index dce1f0337..72afeed5e 100644 --- a/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestParams.cs +++ b/TBF/BenchControl/TestMethods/SensitivityTest/SensitivityTestParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.SensitivityTest public class SensitivityTestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(SensitivityTestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public float TargetQ; /// Target=terminal flow durning detection when increasing or decreasing the flow public float RateOfChange; /// Each step is calculated as (TargetQfrom - Qfrom) * RateOfChange, text form is displayed in % (*100) @@ -103,7 +103,7 @@ namespace TBF.BenchControl.TestMethods.SensitivityTest return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/SensitivityTest/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/SensitivityTest/TestMethodCfg.cs index 889f999bb..86facb2f4 100644 --- a/TBF/BenchControl/TestMethods/SensitivityTest/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/SensitivityTest/TestMethodCfg.cs @@ -13,20 +13,15 @@ namespace TBF.BenchControl.TestMethods.SensitivityTest public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } /// Test parameters [XmlIgnore] public SensitivityTestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - SensitivityTestParams testParams = new SensitivityTestParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new SensitivityTestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs index 8ba2f0219..b1b477856 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs @@ -13,7 +13,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestMethodCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); } @@ -33,13 +33,9 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication /// Test parameters [XmlIgnore] public iPerlCommunicationParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - iPerlCommunicationParams testParams = new iPerlCommunicationParams(true); - testParams.UpdateTestParams(Name, test); - return testParams; - } + + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new iPerlCommunicationParams(true); } /// Private parameterless constructor invoked by all other (public) constructors TestMethodCfg() @@ -55,7 +51,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication RfidPortNrBoard1 = 53; RfidPortNrBoard1 = 54; - TestParams = new iPerlCommunicationParams(true); + TestParams = CreateTestParamsProvider() as iPerlCommunicationParams; } public TestMethodCfg(IComponentFactory factory) diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs index abdc8f920..dc39151f8 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication public class iPerlCommunicationParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(iPerlCommunicationParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public string Activity; /// Communication activity public bool SimultWithPrevious; @@ -94,7 +94,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs index 2989bf93c..144c1b0d3 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHeadCfg.cs @@ -16,7 +16,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead public class IperlHeadCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(IperlHeadCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new IperlHeadCfgCtrl(); } @@ -34,13 +34,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead /// Procedure parameters [XmlIgnore] public ProcParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcParams procParams = new ProcParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcParams(true); } [XmlIgnore] public MeterType MeterType { get { return (ProcParams != null) ? ProcParams.MeterType : MeterType.AutoDetect; } } @@ -54,8 +49,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead OptoComPortNr = 10; RfidComPortNr = 0; /// = use mux. board MuxBoardNr = 1; - ProcParams = new ProcParams(true); - } + ProcParams = CreateProcParamsProvider() as ProcParams; + } public IperlHeadCfg(IComponentFactory factory) : this() diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs index e7c410012..1663ed5d2 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/ProcParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public MeterType MeterType; public float CalibTarget; /// Target error after calibration in [%] @@ -143,7 +143,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/TestParamsBase.cs b/TBF/BenchControl/TestParamsBase.cs index afebe1556..642eae5e9 100644 --- a/TBF/BenchControl/TestParamsBase.cs +++ b/TBF/BenchControl/TestParamsBase.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl { protected ComponentTest testParamsEntity; - protected virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } + public virtual XmlSerializer GetSerializer() { return new XmlSerializer(GetType()); } public string ComponentName { get { return componentName; } } protected string componentName; @@ -36,47 +36,38 @@ namespace TBF.BenchControl } /// To be overridden - public virtual void UpdateTestParams(ComponentTest dbEntity) + public virtual void UpdateFromDbEntity(ComponentTest dbEntity) { } - public void UpdateTestParams(string cmpntName, Test test) + public void FromDbEntity(string cmpntName, Test test) { - /// Search for an existing matching entity - foreach (var tstPrms in test.MoreParams) + ComponentTest componentTest = test.GetTestParamsEntity(cmpntName); + if (componentTest != null) { - if (tstPrms.CmpntName.Equals(cmpntName)) - { - UpdateTestParams(tstPrms); - return; - } + UpdateFromDbEntity(componentTest); + return; } /// Create a new entity and add it to the list test.MoreParams InitializeAll(); this.testParamsEntity = this.ToDbEntity(cmpntName, test); + this.testParamsEntity.SetParamsProvider(this as IParamsProvider); this.test = test; this.componentName = cmpntName; test.MoreParams.Add(testParamsEntity); } - public ComponentTest ToDbEntity(string componentName, Test test) + public ComponentTest ToDbEntity(string cmpntName, Test test) { using (var writer = new StringWriter()) { - /// Serialize this class with parameters - GetSerializer().Serialize(writer, this); - - /// Create and return the ComponentTest entity - ComponentTest entity = new ComponentTest(); - entity.CmpntName = componentName; - entity.Parameters = writer.ToString(); - entity.Test = test; - return entity; + GetSerializer().Serialize(writer, this); /// Serialize this class with parameters + return new ComponentTest(cmpntName, writer.ToString(), test); /// Return new ComponentTest entity } } - public void UpdateDbEntity() + public void UpdateEmbeddedDbEntity() { using (var writer = new StringWriter()) { diff --git a/TBF/BenchControl/Various/ErrorFlags/ErrorsCfg.cs b/TBF/BenchControl/Various/ErrorFlags/ErrorsCfg.cs index 09211f023..44ec74464 100644 --- a/TBF/BenchControl/Various/ErrorFlags/ErrorsCfg.cs +++ b/TBF/BenchControl/Various/ErrorFlags/ErrorsCfg.cs @@ -10,7 +10,7 @@ namespace TBF.BenchControl.Various.ErrorFlags public class ErrorsCfg : ComponentCfgBase, IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ErrorsCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new ErrorsCfgCtrl(); } @@ -24,13 +24,8 @@ namespace TBF.BenchControl.Various.ErrorFlags /// Test parameters [XmlIgnore] public TestParams TestParams; - public override IParamsProvider GetTestParams() { return TestParams; } - public override IParamsProvider CreateTestParams(Test test) - { - TestParams procParams = new TestParams(true); - procParams.UpdateTestParams(Name, test); - return procParams; - } + public override IParamsProvider GetRuntimeTestParamsProvider() { return TestParams; } + public override IParamsProvider CreateTestParamsProvider() { return new TestParams(true); } /// Private parameterless constructor invoked by all other (public) constructors ErrorsCfg() diff --git a/TBF/BenchControl/Various/ErrorFlags/TestParams.cs b/TBF/BenchControl/Various/ErrorFlags/TestParams.cs index ceb002206..1b96b47d7 100644 --- a/TBF/BenchControl/Various/ErrorFlags/TestParams.cs +++ b/TBF/BenchControl/Various/ErrorFlags/TestParams.cs @@ -12,7 +12,7 @@ namespace TBF.BenchControl.Various.ErrorFlags public class TestParams : TestParamsBase, IParamsProvider, ITestParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(TestParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public ErrorFlagsMode Mode; /// 0 = Off, 1 = Info (show only), 2 = On (show and evaluate) public bool E1; @@ -338,7 +338,7 @@ namespace TBF.BenchControl.Various.ErrorFlags return pars; } - public override void UpdateTestParams(ComponentTest dbEntity) + public override void UpdateFromDbEntity(ComponentTest dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/WaterMeters/Munich/ProcParams.cs b/TBF/BenchControl/WaterMeters/Munich/ProcParams.cs index a814ee20e..50bfa889b 100644 --- a/TBF/BenchControl/WaterMeters/Munich/ProcParams.cs +++ b/TBF/BenchControl/WaterMeters/Munich/ProcParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.WaterMeters.Munich public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public string ProductName; /// Znak fabryczny (PL) public string Producer; /// Producent (PL), Hersteller (D) @@ -164,7 +164,7 @@ namespace TBF.BenchControl.WaterMeters.Munich return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs b/TBF/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs index 7a48eb175..b179d1ac5 100644 --- a/TBF/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs +++ b/TBF/BenchControl/WaterMeters/Munich/WaterMeterCfg.cs @@ -14,28 +14,23 @@ namespace TBF.BenchControl.WaterMeters.Munich public class WaterMeterCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(WaterMeterCfg) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new WaterMeterCfgCtrl(); } /// Procedure parameters [XmlIgnore] public ProcParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcParams procParams = new ProcParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcParams(true); } /// Private parameterless constructor invoked by all other (public) constructors WaterMeterCfg() { Name = "WM"; ParentName = string.Empty; - ProcParams = new ProcParams(true); - } + ProcParams = CreateProcParamsProvider() as ProcParams; + } public WaterMeterCfg(IComponentFactory factory) : this() diff --git a/TBF/BenchControl/WaterMeters/WaterMeter/ProcParams.cs b/TBF/BenchControl/WaterMeters/WaterMeter/ProcParams.cs index 3647f6b09..8bf69b8ed 100644 --- a/TBF/BenchControl/WaterMeters/WaterMeter/ProcParams.cs +++ b/TBF/BenchControl/WaterMeters/WaterMeter/ProcParams.cs @@ -14,7 +14,7 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter public class ProcParams : ProcedureParamsBase, IParamsProvider, IProcedureParams { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(ProcParams) })[0]; - protected override XmlSerializer GetSerializer() { return Serializer; } + public override XmlSerializer GetSerializer() { return Serializer; } public string ProductName; /// Znak fabryczny (PL) @@ -305,7 +305,7 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter return pars; } - public override void UpdateProcedureParams(ComponentProcedure dbEntity) + public override void UpdateFromDbEntity(ComponentProcedure dbEntity) { if (dbEntity == null) return; try diff --git a/TBF/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs b/TBF/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs index e846e93ab..715c91783 100644 --- a/TBF/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs +++ b/TBF/BenchControl/WaterMeters/WaterMeter/WaterMeterCfg.cs @@ -18,21 +18,16 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter /// Procedure parameters [XmlIgnore] public ProcParams ProcParams; - public override IParamsProvider GetProcedureParams() { return ProcParams; } - public override IParamsProvider CreateProcedureParams(Procedure procedure) - { - ProcParams procParams = new ProcParams(true); - procParams.UpdateProcedureParams(Name, procedure); - return procParams; - } + public override IParamsProvider GetRuntimeProcParamsProvider() { return ProcParams; } + public override IParamsProvider CreateProcParamsProvider() { return new ProcParams(true); } /// Private parameterless constructor invoked by all other (public) constructors WaterMeterCfg() { Name = "WM"; ParentName = string.Empty; - ProcParams = new ProcParams(true); - } + ProcParams = CreateProcParamsProvider() as ProcParams; + } public WaterMeterCfg(IComponentFactory factory) : this() diff --git a/TBF/ProcedureDlg.cs b/TBF/ProcedureDlg.cs index 9fd16abf0..5ba2a2d51 100644 --- a/TBF/ProcedureDlg.cs +++ b/TBF/ProcedureDlg.cs @@ -179,7 +179,7 @@ namespace TBF /// Create a tab with a TestParamsCtrl control for each used test method foreach (var method in UsedTestMethods) { - if (method.Cfg.GetTestParams() != null) + if (method.Cfg.GetRuntimeTestParamsProvider() != null) { TabPage nwTab = new TabPage(method.Cfg.Name); TestParamsCtrl nwCtrl = new TestParamsCtrl(this, method, true); @@ -192,7 +192,7 @@ namespace TBF /// Create a control for another component with Test parameters which was not handled yet foreach (var cmpnt in TbfComponents) { - if ((cmpnt.Cfg.GetTestParams() != null) && !(cmpnt is ITestMethod)) + if ((cmpnt.Cfg.GetRuntimeTestParamsProvider() != null) && !(cmpnt is ITestMethod)) { TabPage nwTab = new TabPage(cmpnt.Cfg.Name); TestParamsCtrl nwCtrl = new TestParamsCtrl(this, cmpnt, true); @@ -2136,7 +2136,7 @@ namespace TBF DetectionPeriod2 = roiData.P2, RoiParams = roiData.GetRoiParams() }; - roiParams.UpdateProcedureParams(cmpnt.Name, LoadedProcedure); + roiParams.FromDbEntity(cmpnt.Name, LoadedProcedure); } } } diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 0d674e837..970ad20b6 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.18.890.0")] -[assembly: AssemblyFileVersion("2.18.890.0")] +[assembly: AssemblyVersion("2.18.891.0")] +[assembly: AssemblyFileVersion("2.18.891.0")] diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index 0dcc819fa..3a0822c1b 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -1465,7 +1465,6 @@ - diff --git a/TBF/UiControls/ProcedureParamsCtrl.cs b/TBF/UiControls/ProcedureParamsCtrl.cs index 4b8b6877e..8a3370f20 100644 --- a/TBF/UiControls/ProcedureParamsCtrl.cs +++ b/TBF/UiControls/ProcedureParamsCtrl.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Windows.Forms; +using Config.Entities; using TBF.BenchControl.Generic; using TBF.Resources; @@ -67,19 +68,19 @@ namespace TBF.UiControls foreach (var cmpnt in selectedCmpnts) { - if (cmpnt != null && (cmpnt.Cfg.GetProcedureParams() != null)) - { - IParamsProvider procedureParams = cmpnt.Cfg.CreateProcedureParams(parent.LoadedProcedure); - if (sampleToCreateHeader == null || procedureParams.ParamsCount() > sampleToCreateHeader.ParamsCount()) + IParamsProvider procedureParams = null; + + if (cmpnt != null) + { + procedureParams = cmpnt.Cfg.GetUIProcParamsProvider(parent.LoadedProcedure); + if ((sampleToCreateHeader == null) || + ((procedureParams != null) && (procedureParams.ParamsCount() > sampleToCreateHeader.ParamsCount()))) { sampleToCreateHeader = procedureParams; } - cmpntsParams.Add(procedureParams); - } - else - { - cmpntsParams.Add(null); - } + } + + cmpntsParams.Add(procedureParams); } if (sampleToCreateHeader != null) @@ -189,7 +190,7 @@ namespace TBF.UiControls foreach (ListViewItem lvi in listViewEx.Items) { - if (lvi.Tag is IParamsProvider) (lvi.Tag as IParamsProvider).UpdateDbEntity(); + if (lvi.Tag is IParamsProvider) (lvi.Tag as IParamsProvider).UpdateEmbeddedDbEntity(); } } } diff --git a/TBF/UiControls/TestParamsCtrl.cs b/TBF/UiControls/TestParamsCtrl.cs index b8078336e..8eeef1b75 100644 --- a/TBF/UiControls/TestParamsCtrl.cs +++ b/TBF/UiControls/TestParamsCtrl.cs @@ -92,28 +92,18 @@ namespace TBF.UiControls IList GetTestParamsProviders(IList tests, out IParamsProvider sampleToCreateHeader) { - IList result = new List(); + IList providers = new List(); sampleToCreateHeader = null; /// For each test (with an appropriate method in case of ITestMethod-s) foreach (var test in tests) { - if ((cmpnt.Cfg.GetTestParams() != null) && - (!(cmpnt is BenchControl.GenericDevices.ITestMethod) || (test.Method == cmpnt.Cfg.Name))) - { - /// Load ComponentTest entity or create it if it does not exist - IParamsProvider testParams = cmpnt.Cfg.CreateTestParams(test); - if (sampleToCreateHeader == null) sampleToCreateHeader = testParams; - result.Add(testParams); - } - else - { - /// In case of ITestMethod: Insert null for a test without an appropriate method. - result.Add(null); - } + IParamsProvider testParams = cmpnt.Cfg.GetUITestParamsProvider(test); + if (sampleToCreateHeader == null) sampleToCreateHeader = testParams; + providers.Add(testParams); } - return result; + return providers; } private void listViewEx_SubItemClicked(object sender, Results.Forms.SubItemEventArgs e) @@ -207,12 +197,17 @@ namespace TBF.UiControls { if (test.Method == cmpnt.Cfg.Name) { - ComponentTest entity = new ComponentTest(); - entity.CmpntName = test.Method; - entity.Test = test; - IParamsProvider testParams = cmpnt.Cfg.CreateTestParams(test); /// Load or create ComponentTest entity - testParamsProviders.Add(testParams); - DrawOne(testParams, test.Name); + IParamsProvider testParams = cmpnt.Cfg.CreateTestParamsProvider(); /// Load or create ComponentTest entity + if (testParams != null) + { + var writer = new System.IO.StringWriter(); + testParams.GetSerializer().Serialize(writer, testParams); /// Serialize this class with parameters + + ComponentTest entity = new ComponentTest(test.Method, writer.ToString(), test); + entity.SetParamsProvider(testParams); + testParamsProviders.Add(testParams); + } + DrawOne(testParams, test.Name); } else { @@ -227,7 +222,7 @@ namespace TBF.UiControls foreach (ListViewItem lvi in listViewEx.Items) { - if (lvi.Tag is IParamsProvider) (lvi.Tag as IParamsProvider).UpdateDbEntity(); + if (lvi.Tag is IParamsProvider) (lvi.Tag as IParamsProvider).UpdateEmbeddedDbEntity(); } } } diff --git a/TODO.txt b/TODO.txt index ed3cd44d7..402bd69ca 100644 --- a/TODO.txt +++ b/TODO.txt @@ -1,3 +1,9 @@ +Igor +- cerveny RV +- testovanie citlivosti vodomera +- zivotnostne: menit prietok 15 min. +- diverter test (prietok 1x, vahy bud vzdy alebo 1x) + iPerl: - neukladat process data pre UnknownPcbNr... vodomery