diff --git a/VECTO/GUI/MainForm.Designer.vb b/VECTO/GUI/MainForm.Designer.vb index 6d0a4f34c615fdcea9704eb662eb21608b5bc090..ed41cb78d986a6c158530598aa78e044100ecd52 100644 --- a/VECTO/GUI/MainForm.Designer.vb +++ b/VECTO/GUI/MainForm.Designer.vb @@ -115,6 +115,8 @@ 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.cbValidateRunData = New System.Windows.Forms.CheckBox() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() Me.StatusBAR.SuspendLayout() Me.TabControl1.SuspendLayout() Me.TabPageGEN.SuspendLayout() @@ -131,6 +133,7 @@ Partial Class MainForm Me.SplitContainer1.SuspendLayout() Me.ToolStrip1.SuspendLayout() Me.CmOpenFile.SuspendLayout() + Me.GroupBox3.SuspendLayout() Me.SuspendLayout() ' 'StatusBAR @@ -373,6 +376,7 @@ Partial Class MainForm ' 'PanelOptAllg ' + Me.PanelOptAllg.Controls.Add(Me.GroupBox3) Me.PanelOptAllg.Controls.Add(Me.GroupBox2) Me.PanelOptAllg.Controls.Add(Me.GroupBox1) Me.PanelOptAllg.Location = New System.Drawing.Point(6, 6) @@ -384,12 +388,12 @@ Partial Class MainForm ' Me.GroupBox2.Controls.Add(Me.ChBoxModOut) Me.GroupBox2.Controls.Add(Me.ChBoxMod1Hz) - Me.GroupBox2.Location = New System.Drawing.Point(9, 81) + Me.GroupBox2.Location = New System.Drawing.Point(3, 82) Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(167, 89) + Me.GroupBox2.Size = New System.Drawing.Size(173, 89) Me.GroupBox2.TabIndex = 16 Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Mode" + Me.GroupBox2.Text = "Output" ' 'ChBoxModOut ' @@ -797,6 +801,28 @@ Partial Class MainForm Me.ShowInFolderToolStripMenuItem.Size = New System.Drawing.Size(173, 22) Me.ShowInFolderToolStripMenuItem.Text = "Show in Folder" ' + 'cbValidateRunData + ' + Me.cbValidateRunData.AutoSize = True + Me.cbValidateRunData.Checked = True + Me.cbValidateRunData.CheckState = System.Windows.Forms.CheckState.Checked + Me.cbValidateRunData.Location = New System.Drawing.Point(6, 19) + Me.cbValidateRunData.Name = "cbValidateRunData" + Me.cbValidateRunData.Size = New System.Drawing.Size(90, 17) + Me.cbValidateRunData.TabIndex = 17 + Me.cbValidateRunData.Text = "Validate Data" + Me.cbValidateRunData.UseVisualStyleBackColor = True + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.cbValidateRunData) + Me.GroupBox3.Location = New System.Drawing.Point(3, 177) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(173, 64) + Me.GroupBox3.TabIndex = 18 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Misc" + ' 'MainForm ' Me.AcceptButton = Me.btStartV3 @@ -833,6 +859,8 @@ Partial Class MainForm Me.ToolStrip1.ResumeLayout(False) Me.ToolStrip1.PerformLayout() Me.CmOpenFile.ResumeLayout(False) + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() Me.ResumeLayout(False) Me.PerformLayout() @@ -925,5 +953,7 @@ Partial Class MainForm Friend WithEvents btnExportXML As System.Windows.Forms.Button Friend WithEvents btnImportXML As System.Windows.Forms.Button Friend WithEvents ShowInFolderMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents cbValidateRunData As System.Windows.Forms.CheckBox End Class diff --git a/VECTO/GUI/MainForm.vb b/VECTO/GUI/MainForm.vb index c408c7348c6a7c806903c0d722fff1bdebd6f243..56dcb1f006b4d1ee27e05df38cf9aff1205725b0 100644 --- a/VECTO/GUI/MainForm.vb +++ b/VECTO/GUI/MainForm.vb @@ -1022,6 +1022,7 @@ lbFound: Dim runsFactory As SimulatorFactory = New SimulatorFactory(mode, input, fileWriter) runsFactory.WriteModalResults = Cfg.ModOut runsFactory.ModalResults1Hz = Cfg.Mod1Hz + runsFactory.Validate = cbValidateRunData.Checked For Each runId As Integer In jobContainer.AddRuns(runsFactory) fileWriters.Add(runId, fileWriter) diff --git a/VectoConsole/Program.cs b/VectoConsole/Program.cs index e415ffa02e67dc712dc255a0ed0eb909961db16e..fc9563576742c60235696c29ba7bf613dd66a71c 100644 --- a/VectoConsole/Program.cs +++ b/VectoConsole/Program.cs @@ -80,6 +80,7 @@ Description: -1Hz: convert mod-data to 1Hz resolution -eng: switch to engineering mode (implies -mod) -q: quiet - disables console output unless verbose information is enabled + -nv: skip validation of internal data structure before simulation -v: Shows verbose information (errors and warnings will be displayed) -vv: Shows more verbose information (infos will be displayed) -vvv: Shows debug messages (slow!) @@ -156,7 +157,8 @@ Examples: } var fileList = - args.Except(new[] { "-v", "-vv", "-vvv", "-vvvv", "-V", "-mod", "-eng", "-t", "-1Hz", "-q", "-act" }).ToArray(); + args.Except(new[] { "-v", "-vv", "-vvv", "-vvvv", "-V", "-nv", "-mod", "-eng", "-t", "-1Hz", "-q", "-act" }) + .ToArray(); var jobFiles = fileList.Where( f => @@ -222,7 +224,8 @@ Examples: var runsFactory = new SimulatorFactory(mode, dataProvider, fileWriter) { ModalResults1Hz = args.Contains("-1Hz"), WriteModalResults = args.Contains("-mod"), - ActualModalData = args.Contains("-act") + ActualModalData = args.Contains("-act"), + Validate = args.Contains("-nv"), }; _jobContainer.AddRuns(runsFactory); diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index e7faef20506cb59be284fcb33f03b6dfdce0c92a..17882eb5865a76758b9f626e7846b7f19efc92e6 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -57,12 +57,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl private readonly bool _engineOnlyMode; public SimulatorFactory(ExecutionMode mode, IInputDataProvider dataProvider, IOutputDataWriter writer, - IDeclarationReport declarationReport = null) + IDeclarationReport declarationReport = null, bool validate = true) { Log.Info("########## VectoCore Version {0} ##########", Assembly.GetExecutingAssembly().GetName().Version); JobNumber = Interlocked.Increment(ref _jobNumberCounter); _mode = mode; ModWriter = writer; + Validate = validate; int workerThreads; int completionThreads; @@ -98,6 +99,8 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl } } + public bool Validate { get; set; } + public IVectoRunDataFactory DataReader { get; private set; } public SummaryDataContainer SumData { get; set; } @@ -177,13 +180,14 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl throw new ArgumentOutOfRangeException("CycleType unknown:" + data.Cycle.CycleType); } - var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type, - data.Mission != null && data.Mission.MissionType.IsEMS()); - if (validationErrors.Any()) { - throw new VectoException("Validation of Run-Data Failed: " + - string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames)))); + if (Validate) { + var validationErrors = run.Validate(_mode, data.GearboxData == null ? (GearboxType?)null : data.GearboxData.Type, + data.Mission != null && data.Mission.MissionType.IsEMS()); + if (validationErrors.Any()) { + throw new VectoException("Validation of Run-Data Failed: " + + string.Join("\n", validationErrors.Select(r => r.ErrorMessage + string.Join("; ", r.MemberNames)))); + } } - yield return run; } }