diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs index ba64aaeb9..78a6a1ab4 100644 --- a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs +++ b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs @@ -382,7 +382,20 @@ namespace TBF.BenchControl.Output.DB.SensusOracle } dr.Close(); + /// + /// Find a matching complete test info + /// oraDbTestInfos = oraDbTestInfos.OrderBy(x => x.PruefungsNr).ToList(); + completeTestInfos = null; + for (LogType lt = 0; lt < LogType.Count; lt++) + { + SensusTestInfo[] myTinfos = SensusCommon.GetTestInfos(lt); + if (SensusTestInfo.AreCompatible(oraDbTestInfos, myTinfos)) + { + completeTestInfos = myTinfos; + break; + } + } foreach (var ti in oraDbTestInfos) { @@ -390,46 +403,6 @@ namespace TBF.BenchControl.Output.DB.SensusOracle id_WZTyp, rev_WZTyp, ti.PruefungsNr, ti.TestName, ti.QBezeichnung); } - /// - /// Find a matching complete test info - /// - completeTestInfos = null; - for (LogType lt = 0; lt < LogType.Count; lt++) - { - SensusTestInfo[] myTinfos = SensusCommon.GetTestInfos(lt); - if (oraDbTestInfos.Count == myTinfos.Length) - { - bool isDifferent = false; - - for (int i = 0; i < myTinfos.Length; i++) - { - if (oraDbTestInfos[i].PruefungsNr != myTinfos[i].PruefungsNr) - { - isDifferent = true; - break; - } - - if ((myTinfos[i].QBezeichnung == "Just") && !oraDbTestInfos[i].QBezeichnung.Contains("Just")) - { - isDifferent = true; - break; - } - - if ((myTinfos[i].QBezeichnung != "Just") && (oraDbTestInfos[i].QBezeichnung != myTinfos[i].QBezeichnung)) - { - isDifferent = true; - break; - } - } - - if (!isDifferent) - { - completeTestInfos = myTinfos; - break; - } - } - } - if (completeTestInfos != null) { foreach (var ti in completeTestInfos) diff --git a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs index 3e4d99106..9fd4ba07d 100644 --- a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs +++ b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs @@ -51,7 +51,7 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger writerCfg = cfg as WriterCfg; currentOp = CurrentOp.None; - testInfos = SensusCommon.GetTestInfos(writerCfg.LogType); + testInfos = SensusTestInfo.GetTestInfos(writerCfg.LogType); log.Debug(this.ToString()); } diff --git a/TBF/BenchControl/Output/SensusCommon.cs b/TBF/BenchControl/Output/SensusCommon.cs deleted file mode 100644 index bf84f1d51..000000000 --- a/TBF/BenchControl/Output/SensusCommon.cs +++ /dev/null @@ -1,74 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace TBF.BenchControl.Output -{ - public enum LogType - { - Just_Q1Q2Q3, - Just_Q1Q2__Q3, - DEWA, /// Q1, Q2adj, Q2, Q3, Q4 - Suez, /// two directions - Count - } - - public static class SensusCommon - { - public static SensusTestInfo[] GetTestInfos(LogType logType) - { - switch (logType) - { - default: - case LogType.Just_Q1Q2Q3: - - return new SensusTestInfo[] - { - new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), - new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), - new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), - new SensusTestInfo( 3, "03", "Q3", Range.R90_100, "Q3"), - }; - - case LogType.Just_Q1Q2__Q3: - - return new SensusTestInfo[] - { - new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), - new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), - new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), - new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3"), - }; - - case LogType.DEWA: - - return new SensusTestInfo[] - { - new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), - new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), - new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), - new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2adj"), - new SensusTestInfo( 4, "04", "Q3", Range.R100_110, "Q3"), - new SensusTestInfo( 5, "05", "Q4", Range.R90_100, "Q4"), - }; - - case LogType.Suez: - - return new SensusTestInfo[] - { - new SensusTestInfo(-2, "-2", "Just", Range.R90_100, "Qjust_A4"), - new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Qjust_A0"), - new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1_lr"), - new SensusTestInfo( 2, "02", "Q2ac", Range.R100_110, "Q2ac_lr"), - new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2_lr"), - new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3_lr"), - new SensusTestInfo( 6, "06", "Q1", Range.R100_110, "Q1_rl"), - new SensusTestInfo( 7, "07", "Q2ac", Range.R100_110, "Q2ac_rl"), - new SensusTestInfo( 8, "08", "Q2", Range.R100_110, "Q2_rl"), - new SensusTestInfo(10, "10", "Q3", Range.R90_100, "Q3_rl"), - }; - } - } - } -} diff --git a/TBF/BenchControl/Output/SensusTestInfo.cs b/TBF/BenchControl/Output/SensusTestInfo.cs index 1a56ab9f3..f0c85beb0 100644 --- a/TBF/BenchControl/Output/SensusTestInfo.cs +++ b/TBF/BenchControl/Output/SensusTestInfo.cs @@ -2,9 +2,19 @@ /// Copyright (c) 2018 Sensus Metering Systems /// using System; +using System.Collections.Generic; namespace TBF.BenchControl.Output { + public enum LogType + { + Just_Q1Q2Q3, + Just_Q1Q2__Q3, + DEWA, /// Q1, Q2adj, Q2, Q3, Q4 + Suez, /// two directions + Count + } + public enum Range { R90_100, @@ -31,5 +41,95 @@ namespace TBF.BenchControl.Output Range = range; TestName = testName; } + + /// + /// Determines whether two test infos are compatible (equal except of 'Just'=='Just1' alternatives). + /// Assumes 'oraDbTInfo' is sorted as follows: + /// oraDbTInfo = oraDbTInfo.OrderBy(x => x.PruefungsNr).ToList(); + /// Complete test infos are typically returned by TBF.BenchControl.Output.SensusCommon.GetTestInfos(). + /// + /// SensusTestInfo-s form the Oracle DB + /// Complete SensusTestInfo-s (incl. TBF test names) + /// true when two test info-s are compatible + public static bool AreCompatible(IList oraDbTInfo, SensusTestInfo[] myCompleteTInfo) + { + if (oraDbTInfo.Count != myCompleteTInfo.Length) return false; + + for (int i = 0; i < myCompleteTInfo.Length; i++) + { + if (oraDbTInfo[i].PruefungsNr != myCompleteTInfo[i].PruefungsNr) + { + return false; + } + + if ((myCompleteTInfo[i].QBezeichnung == "Just") && !oraDbTInfo[i].QBezeichnung.Contains("Just")) + { + return false; + } + + if ((myCompleteTInfo[i].QBezeichnung != "Just") && (oraDbTInfo[i].QBezeichnung != myCompleteTInfo[i].QBezeichnung)) + { + return false; + } + } + + return true; + } + + + public static SensusTestInfo[] GetTestInfos(LogType logType) + { + switch (logType) + { + default: + case LogType.Just_Q1Q2Q3: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 3, "03", "Q3", Range.R90_100, "Q3"), + }; + + case LogType.Just_Q1Q2__Q3: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3"), + }; + + case LogType.DEWA: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2adj"), + new SensusTestInfo( 4, "04", "Q3", Range.R100_110, "Q3"), + new SensusTestInfo( 5, "05", "Q4", Range.R90_100, "Q4"), + }; + + case LogType.Suez: + + return new SensusTestInfo[] + { + new SensusTestInfo(-2, "-2", "Just", Range.R90_100, "Qjust_A4"), + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Qjust_A0"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1_lr"), + new SensusTestInfo( 2, "02", "Q2ac", Range.R100_110, "Q2ac_lr"), + new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2_lr"), + new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3_lr"), + new SensusTestInfo( 6, "06", "Q1", Range.R100_110, "Q1_rl"), + new SensusTestInfo( 7, "07", "Q2ac", Range.R100_110, "Q2ac_rl"), + new SensusTestInfo( 8, "08", "Q2", Range.R100_110, "Q2_rl"), + new SensusTestInfo(10, "10", "Q3", Range.R90_100, "Q3_rl"), + }; + } + } } } diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs index 852476875..cca864276 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs @@ -559,7 +559,7 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead string wmPosition = Name.Substring(5); if (wmPosition.Length == 1) wmPosition = "0" + wmPosition; - SensusTestInfo[] testInfos = SensusCommon.GetTestInfos(LogType); + SensusTestInfo[] testInfos = SensusTestInfo.GetTestInfos(LogType); string flowNr = null; foreach (var ti in testInfos) { diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 6e4fb632d..72125bcce 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.1007.0")] -[assembly: AssemblyFileVersion("2.18.1007.0")] +[assembly: AssemblyVersion("2.18.1008.0")] +[assembly: AssemblyFileVersion("2.18.1008.0")] diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index c1dc2c821..f3ac0cccd 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -899,7 +899,6 @@ WriterCfgCtrl.cs -