diff --git a/Results/Forms/ResultsConfigDlg.cs b/Results/Forms/ResultsConfigDlg.cs index 63a686afa..769d2b22d 100644 --- a/Results/Forms/ResultsConfigDlg.cs +++ b/Results/Forms/ResultsConfigDlg.cs @@ -35,7 +35,7 @@ namespace Results.Forms public IList SelectedItems; - public bool Compound; /// false = single meter items, true = combined meter items + public MetersKind MetersKind; public ResultsConfigDlg() { diff --git a/ResultsBrowser/ResultsBrowserWnd.cs b/ResultsBrowser/ResultsBrowserWnd.cs index 16088a5a2..ad234e8f1 100644 --- a/ResultsBrowser/ResultsBrowserWnd.cs +++ b/ResultsBrowser/ResultsBrowserWnd.cs @@ -229,10 +229,13 @@ namespace ResultsBrowser private void formatOfResultsBtn_Click(object sender, EventArgs e) { - Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg(); - dlg.Compound = false; /// config.Factory.ClassName.Contains("Compound"); - dlg.SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems); - dlg.AvailableItems = new List(); + Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg() + { + MetersKind = Config.Entities.MetersKind.Single, + SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(filtersConfig.ResultItems), + AvailableItems = new List() + }; + foreach (var v in Results.WMeterRsltItemSpec.AllItems) dlg.AvailableItems.Add(v); if (dlg.ShowDialog() == DialogResult.OK) diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs index 3fe4553b1..90ce22312 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryCompound.cs @@ -17,11 +17,13 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public IComponent GetComponent(IComponentCfg cfg, IList components) { return new Writer(cfg); } - public IComponentCfg DefaultConfig() { return new WriterCfg(this); } + public IComponentCfg DefaultConfig() { return new WriterCfg("FileWriter.Basic.Compound", this, Config.Entities.MetersKind.Combined); } public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Combined; + return cfg; } } } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs new file mode 100644 index 000000000..23c17c41c --- /dev/null +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactoryHeatMeters.cs @@ -0,0 +1,29 @@ +/// +/// Copyright (c) 2016 Sensus Metering Systems +/// +using System; +using System.Collections.Generic; +using TBF.BenchControl.Generic; + +namespace TBF.BenchControl.Output.FileWriters.Basic +{ + public class FactoryHeatMeters : IComponentFactory + { + public string ClassName { get { return this.GetType().Namespace.Substring(17) + ".HeatMeters"; } } + + public void ResetStaticProperties() { Writer.ResetStaticProperties(); } + + public IComponent DummyComponent() { return new Writer(); } + + public IComponent GetComponent(IComponentCfg cfg, IList components) { return new Writer(cfg); } + + public IComponentCfg DefaultConfig() { return new WriterCfg("FileWriter.Basic.HeatMeters", this, Config.Entities.MetersKind.HeatMeter); } + + public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) + { + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.HeatMeter; + return cfg; + } + } +} diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs index 77f633401..05f5e55e7 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/FactorySingle.cs @@ -17,11 +17,13 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public IComponent GetComponent(IComponentCfg cfg, IList components) { return new Writer(cfg); } - public IComponentCfg DefaultConfig() { return new WriterCfg(this); } + public IComponentCfg DefaultConfig() { return new WriterCfg("FileWriter.Basic.Single", this, Config.Entities.MetersKind.Single); } public IComponentCfg CmpntCfgFromCmpntEntity(Config.Entities.Component component) { - return ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + IComponentCfg cfg = ComponentCfgBase.CreateFromDbEntity(typeof(WriterCfg), component, this); + (cfg as WriterCfg).MetersKind = Config.Entities.MetersKind.Single; + return cfg; } } } diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs index 61630ec1c..77b25e17f 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfg.cs @@ -58,26 +58,30 @@ namespace TBF.BenchControl.Output.FileWriters.Basic public bool SaveGoodOnly; public string[] SelectedItems; + [XmlIgnore] + public Config.Entities.MetersKind MetersKind; /// Private parameterless constructor invoked by all other (public) constructors WriterCfg() { - Name = "FileWriter"; + } + + public WriterCfg(string name, IComponentFactory factory, Config.Entities.MetersKind metersKind) + : this() + { + Name = name; + Factory = factory; + MetersKind = metersKind; + ParentName = string.Empty; - DestinationPath = Program.HomeDir + "Results\\"; + DestinationPath = Program.HomeDir + "Results\\"; DestinationPath2 = string.Empty; YearFolders = YearFolders.FourDigit; MonthFolders = MonthFolders.Digit; DayFolders = DayFolders.Digit; FileNameFormat = "{0:yyyyMMdd}"; - Separator = Separator.None; - SaveGoodOnly = false; - } - - public WriterCfg(IComponentFactory factory) - : this() - { - this.Factory = factory; + Separator = Separator.None; + SaveGoodOnly = false; } public string ToString(int i) diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfgCtrl.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfgCtrl.cs index 44748fe9b..ab5a34a5e 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfgCtrl.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Basic/WriterCfgCtrl.cs @@ -208,10 +208,13 @@ namespace TBF.BenchControl.Output.FileWriters.Basic private void selectItemsButton_Click(object sender, EventArgs e) { - ResultsConfigDlg dlg = new ResultsConfigDlg(); - dlg.Compound = config.Factory.ClassName.Contains("Compound"); - dlg.SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(selectedItems); - dlg.AvailableItems = new List(); + ResultsConfigDlg dlg = new ResultsConfigDlg() + { + MetersKind = config.MetersKind, + SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(selectedItems), + AvailableItems = new List() + }; + foreach (var v in Results.WMeterRsltItemSpec.AllItems) dlg.AvailableItems.Add(v); if (dlg.ShowDialog() == DialogResult.OK) diff --git a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfgCtrl.cs b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfgCtrl.cs index 3dd01f3d4..40fb57813 100644 --- a/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfgCtrl.cs +++ b/TestBenchFramework/BenchControl/Output/FileWriters/Enhanced/WriterCfgCtrl.cs @@ -263,10 +263,13 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced private void commonItemsButton_Click(object sender, EventArgs e) { - Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg(); - dlg.Compound = config.Factory.ClassName.Contains("Compound"); - dlg.SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(commonItems); - dlg.AvailableItems = new List(); + Results.Forms.ResultsConfigDlg dlg = new Results.Forms.ResultsConfigDlg() + { + MetersKind = config.MetersKind, + SelectedItems = Results.WMeterRsltItemSpec.FromStrArray(commonItems), + AvailableItems = new List() + }; + foreach (var v in Results.WMeterRsltItemSpec.AllItems) dlg.AvailableItems.Add(v); if (dlg.ShowDialog() == DialogResult.OK) @@ -277,9 +280,12 @@ namespace TBF.BenchControl.Output.FileWriters.Enhanced private void testItemsButton_Click(object sender, EventArgs e) { - ResultsConfigDlg dlg = new ResultsConfigDlg() { MetersKind = config.MetersKind, - SelectedItems = Results.ItemSpec.FromStrArray(testItems), - AvailableItems = new List() }; + ResultsConfigDlg dlg = new ResultsConfigDlg() + { + MetersKind = config.MetersKind, + SelectedItems = Results.ItemSpec.FromStrArray(testItems), + AvailableItems = new List() + }; foreach (var v in Results.ItemSpec.AllItems) dlg.AvailableItems.Add(v); diff --git a/TestBenchFramework/BenchControl/TbfComponents.cs b/TestBenchFramework/BenchControl/TbfComponents.cs index 26436661e..6ba338de5 100644 --- a/TestBenchFramework/BenchControl/TbfComponents.cs +++ b/TestBenchFramework/BenchControl/TbfComponents.cs @@ -67,6 +67,7 @@ namespace TBF.BenchControl Factories.Add(new Modbus.PressureMeter.Meret.Factory()); /// Meret pressure meter connected via modbus Factories.Add(new Output.FileWriters.Basic.FactorySingle()); /// Output.FileWriters.Basic.Single Factories.Add(new Output.FileWriters.Basic.FactoryCompound()); /// Output.FileWriters.Basic.Compound + Factories.Add(new Output.FileWriters.Basic.FactoryHeatMeters()); /// Output.FileWriters.Basic.FactoryHeatMeters Factories.Add(new Output.FileWriters.Enhanced.FactorySingle()); /// Output.FileWriters.Basic.Single Factories.Add(new Output.FileWriters.Enhanced.FactoryCompound()); /// Output.FileWriters.Basic.Compound Factories.Add(new Output.FileWriters.Enhanced.FactoryHeatMeters()); /// Output.FileWriters.Basic.HeatMeters diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj index fcef1b6ea..1f7cd893f 100644 --- a/TestBenchFramework/TBF.csproj +++ b/TestBenchFramework/TBF.csproj @@ -486,6 +486,7 @@ +