diff --git a/TODO.txt b/TODO.txt index 0ee70c571..dbc046702 100644 --- a/TODO.txt +++ b/TODO.txt @@ -135,3 +135,8 @@ Process screen: --- Zobrazit Sim -> prec (ako?) +------------------------------------------- +Ked sa bude upgradovat DB +------------------------------------------- +- oddelit vysledky od konfiguracie +- zaviest ProcedureResult: (TestBenchID, ProgramVersion, ProcedureName, WM_ID, PurchaseNr, BatchNr, TimestampStart, TimestampEnd, Purging parameters, Evacuation parameters) diff --git a/TestBenchFramework/BenchControl/DB/SensusOracle/Database.cs b/TestBenchFramework/BenchControl/DB/SensusOracle/Database.cs index 53f2e5bf4..9c0faf284 100644 --- a/TestBenchFramework/BenchControl/DB/SensusOracle/Database.cs +++ b/TestBenchFramework/BenchControl/DB/SensusOracle/Database.cs @@ -37,6 +37,8 @@ namespace TBF.BenchControl.DB.SensusOracle DateTime dateTime; StreamWriter writer; + bool batchDataSaved; /// This is to save batch data (VT_PRUEFREIHE_PD) only once + string separatorStr; public Database() @@ -215,6 +217,8 @@ namespace TBF.BenchControl.DB.SensusOracle /// Start this operation public void Start() { + batchDataSaved = false; + if (writer == null) return; ///---------- @@ -377,45 +381,88 @@ namespace TBF.BenchControl.DB.SensusOracle Hydr_Pruefung = 224; } - OracleTransaction transaction = conn.BeginTransaction(); - try + string pOrder = string.IsNullOrEmpty(unsortedResults[0].PurchaseOrder) ? string.Empty : unsortedResults[0].PurchaseOrder; + + if (MAX_Pruefindex % 100 == 1) { - string pOrder = string.IsNullOrEmpty(unsortedResults[0].PurchaseOrder) ? string.Empty : unsortedResults[0].PurchaseOrder; + OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex, Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID, Baujahr) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn); - if (MAX_Pruefindex % 100 == 1) - { - OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PD(Auftragsnummer, VT_Identnummer, VT_Fernum, Max_Pruefindex, Zaehlernummer, Sekundaere_Adr, Hydr_Pruefung, ID_Benutzer, ANBID, Baujahr) VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10)", conn); + OracleParameter parm; + parm = new OracleParameter("Auftragsnummer", OracleDbType.Varchar2); parm.Value = pOrder; cmd.Parameters.Add(parm); + parm = new OracleParameter("VT_Identnummer", OracleDbType.Varchar2); parm.Value = "IPBATMXX"; cmd.Parameters.Add(parm); + parm = new OracleParameter("VT_Fernum", OracleDbType.Varchar2); parm.Value = pcbNr; cmd.Parameters.Add(parm); + parm = new OracleParameter("Max_Pruefindex", OracleDbType.Int32); parm.Value = MAX_Pruefindex; cmd.Parameters.Add(parm); + parm = new OracleParameter("Zaehlernummer", OracleDbType.Int32); parm.Value = -1; cmd.Parameters.Add(parm); + parm = new OracleParameter("Sekundaere_Adr", OracleDbType.Int32); parm.Value = Sekundaere_Adr; cmd.Parameters.Add(parm); + parm = new OracleParameter("Hydr_Pruefung", OracleDbType.Int32); parm.Value = Hydr_Pruefung; cmd.Parameters.Add(parm); + parm = new OracleParameter("ID_Benutzer", OracleDbType.Int32); parm.Value = 6; cmd.Parameters.Add(parm); + parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); + parm = new OracleParameter("Baujahr", OracleDbType.Int32); parm.Value = dbCfg.Baujahr; cmd.Parameters.Add(parm); + int rowsUpdated = cmd.ExecuteNonQuery(); + } + else + { + OracleCommand cmd = new OracleCommand("UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :3, Hydr_Pruefung= :4, ID_Benutzer= :5, Baujahr= :6 WHERE VT_Fernum = :7 and ANBID = :8", conn); + + OracleParameter parm; + parm = new OracleParameter("Auftragsnummer", OracleDbType.Varchar2); parm.Value = pOrder; cmd.Parameters.Add(parm); + parm = new OracleParameter("VT_Identnummer", OracleDbType.Varchar2); parm.Value = "IPBATMXX"; cmd.Parameters.Add(parm); + parm = new OracleParameter("Max_Pruefindex", OracleDbType.Int32); parm.Value = MAX_Pruefindex; cmd.Parameters.Add(parm); + parm = new OracleParameter("Hydr_Pruefung", OracleDbType.Int32); parm.Value = Hydr_Pruefung; cmd.Parameters.Add(parm); + parm = new OracleParameter("ID_Benutzer", OracleDbType.Int32); parm.Value = 6; cmd.Parameters.Add(parm); + parm = new OracleParameter("Baujahr", OracleDbType.Int32); parm.Value = dbCfg.Baujahr; cmd.Parameters.Add(parm); + parm = new OracleParameter("VT_Fernum", OracleDbType.Varchar2); parm.Value = pcbNr; cmd.Parameters.Add(parm); + parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); + + int rowsUpdated = cmd.ExecuteNonQuery(); + } + + OracleTransaction transaction = conn.BeginTransaction(); + try + { + if (!batchDataSaved) + { + /// + /// Batch data + /// + DateTime start = results[0].TimeStart; + DateTime end = results[0].TimeEnd; + foreach (var rslt in results) + { + if (rslt.TimeStart < start) start = rslt.TimeStart; + if (rslt.TimeEnd > end) end = rslt.TimeEnd; + } + + OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_PD(" + + "ANBID, ID_Pruefstand, ID_WzPruefreihe, ID_WZTyp, Rev_WZTyp, Rev_Pruefstand_WZTyp, " + + "StartDatumZeit, EndDatumZeit, Betriebsart, QVzKontakt, " + + "FuellenBegDruck, DruckEvakVorne, DruckEvakHinten, DruckBeiAbpressen, " + + "Druckentwaessern, SpuelDurchflussIst, ProgrammVersion)" + + " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn); OracleParameter parm; - parm = new OracleParameter("Auftragsnummer", OracleDbType.Varchar2); parm.Value = pOrder; cmd.Parameters.Add(parm); - parm = new OracleParameter("VT_Identnummer", OracleDbType.Varchar2); parm.Value = "IPBATMXX"; cmd.Parameters.Add(parm); - parm = new OracleParameter("VT_Fernum", OracleDbType.Varchar2); parm.Value = pcbNr; cmd.Parameters.Add(parm); - parm = new OracleParameter("Max_Pruefindex", OracleDbType.Int32); parm.Value = MAX_Pruefindex; cmd.Parameters.Add(parm); - parm = new OracleParameter("Zaehlernummer", OracleDbType.Int32); parm.Value = -1; cmd.Parameters.Add(parm); - parm = new OracleParameter("Sekundaere_Adr", OracleDbType.Int32); parm.Value = Sekundaere_Adr; cmd.Parameters.Add(parm); - parm = new OracleParameter("Hydr_Pruefung", OracleDbType.Int32); parm.Value = Hydr_Pruefung; cmd.Parameters.Add(parm); - parm = new OracleParameter("ID_Benutzer", OracleDbType.Int32); parm.Value = 6; cmd.Parameters.Add(parm); - parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); - parm = new OracleParameter("Baujahr", OracleDbType.Int32); parm.Value = dbCfg.Baujahr; cmd.Parameters.Add(parm); + parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); ///:1 + parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + dbCfg.TestBenchId; cmd.Parameters.Add(parm); ///:2 + parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = results[0].BatchNr; cmd.Parameters.Add(parm); ///:3 + parm = new OracleParameter("ID_WZTyp", OracleDbType.Int32); parm.Value = wMtr.WMType_ID; cmd.Parameters.Add(parm); ///:4 + parm = new OracleParameter("Rev_WZTyp", OracleDbType.Int32); parm.Value = wMtr.WMType_Rev; cmd.Parameters.Add(parm); ///:5 + parm = new OracleParameter("Rev_Pruefstand_WZTyp", OracleDbType.Int32); parm.Value = 1; cmd.Parameters.Add(parm); ///:6 + parm = new OracleParameter("StartDatumZeit", OracleDbType.TimeStamp); parm.Value = start; cmd.Parameters.Add(parm); ///:7 + parm = new OracleParameter("EndDatumZeit", OracleDbType.TimeStamp); parm.Value = end; cmd.Parameters.Add(parm); ///:8 + parm = new OracleParameter("Betriebsart", OracleDbType.Varchar2); parm.Value = ""; cmd.Parameters.Add(parm); ///:9 + parm = new OracleParameter("QVzKontakt", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:10 + parm = new OracleParameter("FuellenBegDruck", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:11 + parm = new OracleParameter("DruckEvakVorne", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:12 + parm = new OracleParameter("DruckEvakHinten", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:13 + parm = new OracleParameter("DruckBeiAbpressen", OracleDbType.Double); parm.Value = 0;/*TODO*/ cmd.Parameters.Add(parm); ///:14 + parm = new OracleParameter("Druckentwaessern", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:15 + parm = new OracleParameter("SpuelDurchflussIst", OracleDbType.Double); parm.Value = 0;/*TODO*/ cmd.Parameters.Add(parm); ///:16 + parm = new OracleParameter("ProgrammVersion", OracleDbType.Varchar2); parm.Value = Program.Version; cmd.Parameters.Add(parm); ///:17 int rowsUpdated = cmd.ExecuteNonQuery(); + + batchDataSaved = true; } - else - { - OracleCommand cmd = new OracleCommand("UPDATE VT_ZAEHLER_PD SET Auftragsnummer = :1, VT_Identnummer = :2, Max_Pruefindex = :3, Hydr_Pruefung= :4, ID_Benutzer= :5, Baujahr= :6 WHERE VT_Fernum = :7 and ANBID = :8", conn); - - OracleParameter parm; - parm = new OracleParameter("Auftragsnummer", OracleDbType.Varchar2); parm.Value = pOrder; cmd.Parameters.Add(parm); - parm = new OracleParameter("VT_Identnummer", OracleDbType.Varchar2); parm.Value = "IPBATMXX"; cmd.Parameters.Add(parm); - parm = new OracleParameter("Max_Pruefindex", OracleDbType.Int32); parm.Value = MAX_Pruefindex; cmd.Parameters.Add(parm); - parm = new OracleParameter("Hydr_Pruefung", OracleDbType.Int32); parm.Value = Hydr_Pruefung; cmd.Parameters.Add(parm); - parm = new OracleParameter("ID_Benutzer", OracleDbType.Int32); parm.Value = 6; cmd.Parameters.Add(parm); - parm = new OracleParameter("Baujahr", OracleDbType.Int32); parm.Value = dbCfg.Baujahr; cmd.Parameters.Add(parm); - parm = new OracleParameter("VT_Fernum", OracleDbType.Varchar2); parm.Value = pcbNr; cmd.Parameters.Add(parm); - parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); - - int rowsUpdated = cmd.ExecuteNonQuery(); - } { OracleCommand cmd = new OracleCommand("INSERT INTO VT_ZAEHLER_PINDEX_PD(" + @@ -428,7 +475,7 @@ namespace TBF.BenchControl.DB.SensusOracle parm = new OracleParameter("Pruefindex", OracleDbType.Int32); parm.Value = MAX_Pruefindex % 100; cmd.Parameters.Add(parm); parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + dbCfg.TestBenchId; cmd.Parameters.Add(parm); - parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = 0;/*TODO*/ cmd.Parameters.Add(parm); + parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = results[0].BatchNr; cmd.Parameters.Add(parm); parm = new OracleParameter("Hydr_Pruefung", OracleDbType.Int32); parm.Value = Hydr_Pruefung; cmd.Parameters.Add(parm); // ReedKontakt // ReedKontaktOK diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs index 4542e720c..433ff15cf 100644 --- a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs @@ -173,33 +173,56 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication { Entities.TestResult tstRslt = new Entities.TestResult(test, 1, Entities.MetersKind.Single); - tstRslt.BatchNr = Program.LocalSettings.BatchNr; - tstRslt.MassStart = oriTestRslt.MassStart; - tstRslt.MassEnd = oriTestRslt.MassEnd; - tstRslt.MassDiff = oriTestRslt.MassEnd; - tstRslt.DensityIn = oriTestRslt.DensityIn; - tstRslt.DensityOut = oriTestRslt.DensityOut; - tstRslt.DensityDiv = oriTestRslt.DensityDiv; - tstRslt.Time = oriTestRslt.Time; - tstRslt.FlowMass = oriTestRslt.FlowMass; - tstRslt.FlowVolume = oriTestRslt.FlowVolume; - tstRslt.VolumeCTV = oriTestRslt.VolumeCTV; - tstRslt.VolumeMaster = oriTestRslt.VolumeMaster; - tstRslt.PulsesMaster = oriTestRslt.PulsesMaster; - tstRslt.ConstMaster = oriTestRslt.ConstMaster; - tstRslt.ErrorMaster = oriTestRslt.ErrorMaster; - tstRslt.TimeDivStart0 = oriTestRslt.TimeDivStart0; - tstRslt.TimeDivStart1 = oriTestRslt.TimeDivStart1; - tstRslt.TimeDivStart2 = oriTestRslt.TimeDivStart2; - tstRslt.TimeDivStart3 = oriTestRslt.TimeDivStart3; - tstRslt.TimeDivStart4 = oriTestRslt.TimeDivStart4; - tstRslt.TimeDivStart5 = oriTestRslt.TimeDivStart5; - tstRslt.TimeDivEnd0 = oriTestRslt.TimeDivEnd0; - tstRslt.TimeDivEnd1 = oriTestRslt.TimeDivEnd1; - tstRslt.TimeDivEnd2 = oriTestRslt.TimeDivEnd2; - tstRslt.TimeDivEnd3 = oriTestRslt.TimeDivEnd3; - tstRslt.TimeDivEnd4 = oriTestRslt.TimeDivEnd4; - tstRslt.TimeDivEnd5 = oriTestRslt.TimeDivEnd5; + tstRslt.BatchNr = Program.LocalSettings.BatchNr; + tstRslt.TimeStart = oriTestRslt.TimeStart; + tstRslt.TimeEnd = oriTestRslt.TimeEnd; + tstRslt.AmbientTempAve = oriTestRslt.AmbientTempAve; + tstRslt.AmbientPressAve = oriTestRslt.AmbientPressAve; + tstRslt.AmbientHumiAve = oriTestRslt.AmbientHumiAve; + tstRslt.PressInAvrg = oriTestRslt.PressInAvrg; + tstRslt.PressInStart = oriTestRslt.PressInStart; + tstRslt.PressInEnd = oriTestRslt.PressInEnd; + tstRslt.PressOutAvrg = oriTestRslt.PressOutAvrg; + tstRslt.PressOutStart = oriTestRslt.PressOutStart; + tstRslt.PressOutEnd = oriTestRslt.PressOutEnd; + tstRslt.TempInAvrg = oriTestRslt.TempInAvrg; + tstRslt.TempInStart = oriTestRslt.TempInStart; + tstRslt.TempInEnd = oriTestRslt.TempInEnd; + tstRslt.TempOutAvrg = oriTestRslt.TempOutAvrg; + tstRslt.TempOutStart = oriTestRslt.TempOutStart; + tstRslt.TempOutEnd = oriTestRslt.TempOutEnd; + tstRslt.TempDivAvrg = oriTestRslt.TempDivAvrg; + tstRslt.TempDivStart = oriTestRslt.TempDivStart; + tstRslt.TempDivEnd = oriTestRslt.TempDivEnd; + tstRslt.MassStartRaw = oriTestRslt.MassStartRaw; + tstRslt.MassStart = oriTestRslt.MassStart; + tstRslt.MassEndRaw = oriTestRslt.MassEndRaw; + tstRslt.MassEnd = oriTestRslt.MassEnd; + tstRslt.MassDiff = oriTestRslt.MassEnd; + tstRslt.DensityIn = oriTestRslt.DensityIn; + tstRslt.DensityOut = oriTestRslt.DensityOut; + tstRslt.DensityDiv = oriTestRslt.DensityDiv; + tstRslt.Buoyancy = oriTestRslt.Buoyancy; + tstRslt.FlowMass = oriTestRslt.FlowMass; + tstRslt.FlowVolume = oriTestRslt.FlowVolume; + tstRslt.VolumeCTV = oriTestRslt.VolumeCTV; + tstRslt.VolumeMaster = oriTestRslt.VolumeMaster; + tstRslt.Time = oriTestRslt.Time; + tstRslt.ErrorMaster = oriTestRslt.ErrorMaster; + tstRslt.PulsesMaster = oriTestRslt.PulsesMaster; + tstRslt.ConstMaster = oriTestRslt.ConstMaster; + tstRslt.TimeDivStart0 = oriTestRslt.TimeDivStart0; + tstRslt.TimeDivStart1 = oriTestRslt.TimeDivStart1; + tstRslt.TimeDivStart2 = oriTestRslt.TimeDivStart2; + tstRslt.TimeDivStart3 = oriTestRslt.TimeDivStart3; + tstRslt.TimeDivStart4 = oriTestRslt.TimeDivStart4; + tstRslt.TimeDivStart5 = oriTestRslt.TimeDivStart5; + tstRslt.TimeDivEnd0 = oriTestRslt.TimeDivEnd0; + tstRslt.TimeDivEnd1 = oriTestRslt.TimeDivEnd1; + tstRslt.TimeDivEnd2 = oriTestRslt.TimeDivEnd2; + tstRslt.TimeDivEnd3 = oriTestRslt.TimeDivEnd3; + tstRslt.TimeDivEnd4 = oriTestRslt.TimeDivEnd4; + tstRslt.TimeDivEnd5 = oriTestRslt.TimeDivEnd5; for (int i = 0; i < Math.Min(tstRslt.Meters.Count, oriTestRslt.Meters.Count); i++) { diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs index 1861d646e..df540f856 100644 --- a/TestBenchFramework/Program.cs +++ b/TestBenchFramework/Program.cs @@ -25,6 +25,9 @@ namespace TBF static readonly ILog log = LogManager.GetLogger(typeof(Program)); const string log4netConfigFName = "log4netConfig.xml"; + /// Program version string + public static string Version; + /// Local settings public static LocalSettings LocalSettings; public const string LocalSettingsFileName = "config.xml"; @@ -87,6 +90,10 @@ namespace TBF AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyHandler); + /// Program version string + Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; + Version = string.Format("TBF v.{0}.{1}.{2}", ver.Major, ver.Minor, ver.Build); + /// Local program configuration directory including the trailing backslash string locAppDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + Path.DirectorySeparatorChar + "TestBenchFramework" + Path.DirectorySeparatorChar; diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs index 02355fb2f..f112ec013 100644 --- a/TestBenchFramework/Properties/AssemblyInfo.cs +++ b/TestBenchFramework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("1.5.140.1")] -[assembly: AssemblyFileVersion("1.5.140.1")] +[assembly: AssemblyVersion("1.5.141.1")] +[assembly: AssemblyFileVersion("1.5.141.1")]