From b0f781351ff0c54ef443c3201295bdaea5c414d2 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Thu, 11 Jul 2019 10:21:47 +0200 Subject: [PATCH] applying patch from VECTO-1040: allow specific output folder --- .../1-user-interface/B_mainform.md | 4 ++ .../User Manual/pics/VECTO_OptionsTab.PNG | Bin 6080 -> 9146 bytes VECTO/Configuration.vb | 5 ++ VECTO/GUI/MainForm.Designer.vb | 50 +++++++++++++++++- VECTO/GUI/MainForm.vb | 39 ++++++++++++-- .../OutputData/SummaryDataContainer.cs | 4 +- 6 files changed, 96 insertions(+), 6 deletions(-) diff --git a/Documentation/User Manual/1-user-interface/B_mainform.md b/Documentation/User Manual/1-user-interface/B_mainform.md index 417ecca65b..c9fd73c69b 100644 --- a/Documentation/User Manual/1-user-interface/B_mainform.md +++ b/Documentation/User Manual/1-user-interface/B_mainform.md @@ -66,6 +66,10 @@ In this tab the global calculation settings can be changed. : Select either [Declaration Mode](#declaration-mode) or [Engineering Mode](#engineering-mode) +**Output Directory** + +: This input can be used to write all simulation result files to a certain directory. This can be either an absolute path or a relative path. If an absolute path is provided, all result files are written to this directory. If a relative path is provided the .vmod and XML reports are written into the corresponding subdirectory of the job file and the .vsum file is written to the corresponding subdirectory of the first selected job file. + **Output**  Write modal results diff --git a/Documentation/User Manual/pics/VECTO_OptionsTab.PNG b/Documentation/User Manual/pics/VECTO_OptionsTab.PNG index d966aea394424c38254514d954490493799e0a4e..620914bf1e9859c3abb9efb3c95c765af19cdca3 100644 GIT binary patch literal 9146 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 Q-UjeMO;@#28S?ah0FT^GB>(^b literal 6080 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 Mnw3el(Vd6?1)~0`od5s; diff --git a/VECTO/Configuration.vb b/VECTO/Configuration.vb index 0af42028db..685d15b68f 100644 --- a/VECTO/Configuration.vb +++ b/VECTO/Configuration.vb @@ -32,6 +32,8 @@ Public Class Configuration Public ValidateRunData As Boolean + public OutputFolder As String + Public Const DefaultFuelType As FuelType = FuelType.DieselCI Private Const FormatVersion As Short = 2 @@ -58,6 +60,7 @@ Public Class Configuration FirstRun = True DeclMode = True ValidateRunData = True + OutputFolder = "" End Sub Public Sub Load() @@ -86,6 +89,7 @@ Public Class Configuration FirstRun = body.GetEx(Of Boolean)("FirstRun") DeclMode = body.GetEx(Of Boolean)("DeclMode") ValidateRunData = IsNothing(body("ValidateRunData")) OrElse body.GetEx(Of Boolean)("ValidateRunData") + OutputFolder = If(body("OutputFolder") Is Nothing, "", body("OutputFolder").Value(of string)()) End Using Catch ex As Exception GUIMsg(MessageType.Err, "Error while loading settings!") @@ -111,6 +115,7 @@ Public Class Configuration body.Add("FirstRun", FirstRun) body.Add("DeclMode", DeclMode) body.Add("ValidateRunData", ValidateRunData) + body.Add("OutputFolder", OutputFolder) JSONFileWriter.WriteFile(New Dictionary(Of String, Object) From {{"Header", header}, {"Body", body}}, FilePath) End Sub diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb index 6308e8eb09..e422b957e3 100644 --- a/VECTO/GUI/MainForm.Designer.vb +++ b/VECTO/GUI/MainForm.Designer.vb @@ -59,6 +59,9 @@ Partial Class MainForm Me.ButtonGENadd = New System.Windows.Forms.Button() Me.TabPgOptions = New System.Windows.Forms.TabPage() Me.PanelOptAllg = New System.Windows.Forms.Panel() + Me.GroupBox4 = New System.Windows.Forms.GroupBox() + Me.BtTCfileBrowse = New System.Windows.Forms.Button() + Me.tbOutputFolder = New System.Windows.Forms.TextBox() Me.GroupBox3 = New System.Windows.Forms.GroupBox() Me.cbActVmod = New System.Windows.Forms.CheckBox() Me.cbValidateRunData = New System.Windows.Forms.CheckBox() @@ -116,12 +119,14 @@ Partial Class MainForm Me.OpenInGraphWindowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ShowInFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components) + Me.Label2 = New System.Windows.Forms.Label() Me.StatusBAR.SuspendLayout Me.TabControl1.SuspendLayout Me.TabPageGEN.SuspendLayout CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).BeginInit Me.TabPgOptions.SuspendLayout Me.PanelOptAllg.SuspendLayout + Me.GroupBox4.SuspendLayout Me.GroupBox3.SuspendLayout Me.GroupBox2.SuspendLayout Me.GroupBox1.SuspendLayout @@ -375,6 +380,7 @@ Partial Class MainForm ' 'PanelOptAllg ' + Me.PanelOptAllg.Controls.Add(Me.GroupBox4) Me.PanelOptAllg.Controls.Add(Me.GroupBox3) Me.PanelOptAllg.Controls.Add(Me.GroupBox2) Me.PanelOptAllg.Controls.Add(Me.GroupBox1) @@ -383,6 +389,34 @@ Partial Class MainForm Me.PanelOptAllg.Size = New System.Drawing.Size(1022, 290) Me.PanelOptAllg.TabIndex = 0 ' + 'GroupBox4 + ' + Me.GroupBox4.Controls.Add(Me.BtTCfileBrowse) + Me.GroupBox4.Controls.Add(Me.tbOutputFolder) + Me.GroupBox4.Location = New System.Drawing.Point(183, 4) + Me.GroupBox4.Name = "GroupBox4" + Me.GroupBox4.Size = New System.Drawing.Size(260, 46) + Me.GroupBox4.TabIndex = 19 + Me.GroupBox4.TabStop = false + Me.GroupBox4.Text = "Output Directory" + ' + 'BtTCfileBrowse + ' + Me.BtTCfileBrowse.Image = Global.TUGraz.VECTO.My.Resources.Resources.Open_icon + Me.BtTCfileBrowse.Location = New System.Drawing.Point(227, 14) + Me.BtTCfileBrowse.Name = "BtTCfileBrowse" + Me.BtTCfileBrowse.Size = New System.Drawing.Size(24, 24) + Me.BtTCfileBrowse.TabIndex = 27 + Me.BtTCfileBrowse.TabStop = false + Me.BtTCfileBrowse.UseVisualStyleBackColor = true + ' + 'tbOutputFolder + ' + Me.tbOutputFolder.Location = New System.Drawing.Point(6, 17) + Me.tbOutputFolder.Name = "tbOutputFolder" + Me.tbOutputFolder.Size = New System.Drawing.Size(215, 20) + Me.tbOutputFolder.TabIndex = 0 + ' 'GroupBox3 ' Me.GroupBox3.Controls.Add(Me.cbActVmod) @@ -820,6 +854,15 @@ Partial Class MainForm Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(173, 22) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' + 'Label2 + ' + Me.Label2.AutoSize = true + Me.Label2.Location = New System.Drawing.Point(7, 19) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(84, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Output Directory" + ' 'MainForm ' Me.AcceptButton = Me.btStartV3 @@ -842,6 +885,8 @@ Partial Class MainForm CType(Me.PictureBox1,System.ComponentModel.ISupportInitialize).EndInit Me.TabPgOptions.ResumeLayout(false) Me.PanelOptAllg.ResumeLayout(false) + Me.GroupBox4.ResumeLayout(false) + Me.GroupBox4.PerformLayout Me.GroupBox3.ResumeLayout(false) Me.GroupBox3.PerformLayout Me.GroupBox2.ResumeLayout(false) @@ -951,5 +996,8 @@ End Sub Friend WithEvents cbValidateRunData As System.Windows.Forms.CheckBox Friend WithEvents cbActVmod As System.Windows.Forms.CheckBox Friend WithEvents EPTPJobEditorToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - + Friend WithEvents GroupBox4 As GroupBox + Friend WithEvents Label2 As Label + Friend WithEvents tbOutputFolder As TextBox + Friend WithEvents BtTCfileBrowse As Button End Class diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index 0e69f888b7..f5ca18d34e 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -51,6 +51,7 @@ Imports TUGraz.VectoCore Imports TUGraz.VectoCore.InputData.FileIO.XML Imports TUGraz.VectoCore.InputData.FileIO.XML.Declaration Imports TUGraz.VectoCore.InputData.FileIO.XML.Engineering +Imports TUGraz.VectoCore.Models.Simulation Imports TUGraz.VectoCore.OutputData Imports TUGraz.VectoCore.OutputData.FileIO Imports TUGraz.VectoCore.Utils @@ -937,7 +938,7 @@ Imports TUGraz.VectoCore.Utils AllowSleepOff() - Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(JobFileList(0)) + Dim sumFileWriter As FileOutputWriter = New FileOutputWriter(GetOutputDirectory(JobFileList(0))) Dim sumWriter As SummaryDataContainer = New SummaryDataContainer(sumFileWriter) Dim jobContainer As JobContainer = New JobContainer(sumWriter) @@ -987,7 +988,8 @@ Imports TUGraz.VectoCore.Utils Continue For End If - Dim fileWriter As FileOutputWriter = New FileOutputWriter(jobFile) + Dim outFile As String = GetOutputDirectory(jobFile) + Dim fileWriter As FileOutputWriter = New FileOutputWriter(outFile) Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, input, fileWriter) runsFactory.WriteModalResults = Cfg.ModOut @@ -1087,7 +1089,7 @@ Imports TUGraz.VectoCore.Utils Next For Each job As String In JobFileList - dim w as FileOutputWriter = new FileOutputWriter(job) + dim w as FileOutputWriter = new FileOutputWriter(GetOutputDirectory(job)) For Each entry as KeyValuePair(Of string, string) In _ new Dictionary(Of string, string) _ from {{w.XMLFullReportName, "XML Manufacturer Report"}, {w.XMLCustomerReportName, "XML Customer Report"}, @@ -1127,6 +1129,23 @@ Imports TUGraz.VectoCore.Utils End If End Sub + Private Function GetOutputDirectory(jobFile As String) As String + + dim outFile as String = jobfile + If (Not string.IsNullOrWhiteSpace(tbOutputFolder.Text)) Then + Dim outPath as string = tbOutputFolder.Text + if (path.IsPathRooted(outPath)) Then + outFile = Path.Combine(outPath, Path.GetFileName(jobFile)) + Else + outFile = Path.Combine(path.GetDirectoryName(jobFile), outPath, path.GetFileName(jobFile)) + End If + If (Not directory.Exists(path.GetDirectoryName(outFile))) then + Directory.CreateDirectory(path.GetDirectoryName(outFile)) + End If + End If + Return outFile + End Function + Private Shared Sub PrintRuns(progress As Dictionary(Of Integer, JobContainer.ProgressEntry), fileWriters As Dictionary(Of Integer, FileOutputWriter)) @@ -1435,6 +1454,9 @@ Imports TUGraz.VectoCore.Utils RbDecl.Checked = Cfg.DeclMode cbValidateRunData.Checked = cfg.ValidateRunData + + tbOutputFolder.Text = Cfg.OutputFolder + End Sub 'Update config class from options in GUI, e.g. before running calculations @@ -1442,6 +1464,7 @@ Imports TUGraz.VectoCore.Utils Cfg.ModOut = ChBoxModOut.Checked Cfg.Mod1Hz = ChBoxMod1Hz.Checked Cfg.ValidateRunData = cbValidateRunData.Checked + Cfg.OutputFolder = tbOutputFolder.Text End Sub #End Region @@ -2100,6 +2123,16 @@ Imports TUGraz.VectoCore.Utils Handles EPTPJobEditorToolStripMenuItem.Click OpenVECTOeditor("<VTP>") End Sub + + Private Sub BtTCfileBrowse_Click(sender As Object, e As EventArgs) Handles BtTCfileBrowse.Click + If Not FolderFileBrowser.OpenDialog("") Then + Exit Sub + End If + + Dim filePath As String = FolderFileBrowser.Files(0) + tbOutputFolder.Text = Path.GetFullPath(filePath) + End Sub + End Class diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs index 2cd0e98b31..b774f06cdc 100644 --- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs +++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs @@ -584,8 +584,8 @@ namespace TUGraz.VectoCore.OutputData row[MAX_ENGINE_SPEED] = (ConvertedSI)modData.MaxEngineSpeed().AsRPM.SI<Scalar>(); if (accTimeShare != null && decTimeShare != null && cruiseTimeShare != null) { var shareSum = accTimeShare + decTimeShare + cruiseTimeShare + stopTimeShare; - if (!shareSum.IsEqual(100)) { - Log.Error( + if (!shareSum.IsEqual(100, 1e-2)) { + Log.Warn( "Sumfile Error: driving behavior timeshares must sum up to 100%: acc: {0}%, dec: {1}%, cruise: {2}%, stop: {3}%, sum: {4}%", accTimeShare.ToOutputFormat(1, null, false), decTimeShare.ToOutputFormat(1, null, false), cruiseTimeShare.ToOutputFormat(1, null, false), stopTimeShare.ToOutputFormat(1, null, false), -- GitLab