diff --git a/Documentation/User Manual Source/Release Notes.pdf b/Documentation/User Manual Source/Release Notes Vecto2.2.pdf similarity index 100% rename from Documentation/User Manual Source/Release Notes.pdf rename to Documentation/User Manual Source/Release Notes Vecto2.2.pdf diff --git a/Documentation/User Manual Source/Release Notes Vecto3.x.pdf b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf new file mode 100644 index 0000000000000000000000000000000000000000..90a3b3755ff7b31b57fc623786348fadbc5dd5c6 Binary files /dev/null and b/Documentation/User Manual Source/Release Notes Vecto3.x.pdf differ diff --git a/Documentation/User Manual Source/Release Notes 3.x.pptx b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx similarity index 82% rename from Documentation/User Manual Source/Release Notes 3.x.pptx rename to Documentation/User Manual Source/Release Notes Vecto3.x.pptx index 1095faddddc14f5f0fb72aa71c88d34d8222c91a..5ad350a6c9e17018dbcce28b507a8bfc3ebc8a74 100644 Binary files a/Documentation/User Manual Source/Release Notes 3.x.pptx and b/Documentation/User Manual Source/Release Notes Vecto3.x.pptx differ diff --git a/User Manual/3-simulation-models/Engine_WHTC.md b/User Manual/3-simulation-models/Engine_WHTC.md index 7b8b7858b527d019ab231445162db3335be880aa..84107566fe14d3d6ba82d376bcd5b0c5e08729c1 100644 --- a/User Manual/3-simulation-models/Engine_WHTC.md +++ b/User Manual/3-simulation-models/Engine_WHTC.md @@ -24,4 +24,9 @@ CF~Tot-i~ = CF~Urb~ * WF~Urb-i~ + CF~Rur~ * WF~Rur-i~ + CF~MW~ * WF~MW-i~ | 7 | Interurban bus | 19% | 36% | 45% | | 8 | Coach | 78% | 22% | 0% | +</div> + +<div class="engineering"> +In engineering mode no WHTC correction is applied by Vecto. For an arbitrary cycle the weighting factors are not known, hence the total correction factor CF~Tot~ can not be computed. +WHTC correction can be applied manually as a post-processing step. </div> \ No newline at end of file diff --git a/User Manual/help.html b/User Manual/help.html index 1540c12ad9399bbe7484327329b866a3bfdf296f..f13ea40cb1a226943f1dcc0e2617cb5f822eebe0 100644 --- a/User Manual/help.html +++ b/User Manual/help.html @@ -1420,6 +1420,9 @@ Example: “Gears\Gear1.vtlm†points to the “Gears†subdirectory of the Ge </tbody> </table> </div> +<div class="engineering"> +<p>In engineering mode no WHTC correction is applied by Vecto. For an arbitrary cycle the weighting factors are not known, hence the total correction factor CF<sub>Tot</sub> can not be computed. WHTC correction can be applied manually as a post-processing step.</p> +</div> </div> <div id="gear-shift-model" class="section level2"> <h2>Gear Shift Model</h2> @@ -3485,15 +3488,37 @@ Auxiliary speed [rpm], Mechanical power [kW],Supply power [kW] <li>Measured Speed with Gear</li> <li>Pwheel (SiCo)</li> </ul></li> -<li>User Manual updated for VECTO V3.x</li> -<li>ModData Format changed for better information and clarity</li> -<li>Added validation of input values</li> -<li>Better Integration of VectoCore into GUI (Notifications and Messages)</li> -<li>Fixed some driving behavior related bugs in VectoCore: +<li>Adaptations of powertrain components architecture +<ul> +<li>Move wheels inertia from vehicle to wheels</li> +<li>Auxiliaries no longer connected via clutch to the engine but via a separate port</li> +<li>Engine checks overload of gearbox and engine overload</li> +</ul></li> +<li>Fixed some driving behavior related issues in VectoCore: <ul> <li>When the vehicle comes to a halt during gear shift, instead of aborting the cycle, it tries to drive away again with an appropriate gear.</li> </ul></li> -<li>For all calculations the averaged values of the current cycle step are used.</li> +<li><a href="#modal-results-.vmod">ModData Format</a> changed for better information and clarity</li> +<li>Entries in the sum-file are sorted in the same way as in Vecto 2.2</li> +<li>In engineering mode the execution mode (distance-based, time-based measured speed, time-based measured speed with gear, engine only) are detected based on the cycle</li> +<li>Added validation of input values</li> +<li>Gravity constant set to 9.80665 (NIST standard acceleration for gravity)</li> +<li>Improved input data handling: sort input values of full-load curves (engine, gbx, retarder)</li> +<li>Better Integration of VectoCore into GUI (Notifications and Messages)</li> +<li>Speed dependent cross-wind correction (vcdv) and v_air/beta cross-wind correction (vcdb) impemented</li> +<li>For all calculations the averaged values of the current simulation step are used for interpolations in loss-maps.</li> +<li>Allow extrapolation of loss maps in engineering mode (warnings)</li> +<li>Refactoring of input data handling: separate InputDataProvider interfaces for model data</li> +<li>Refactoring of result handling: separate result container and output writer</li> +<li>New Long-Haul driving cycle included</li> +<li>User Manual updated for VECTO V3.x</li> +<li>Fix: sparse representation of declaration cycles had some missing entries</li> +<li>Bugfix: error in computation of engine’s preferred speed</li> +<li>Bugfix: wrong vehicle class lookup</li> +<li>Bugfix: duplicate entries in intersected full-load curves</li> +<li>Bugfix: retarder takes the retarder ratio into account for lossmap lookup</li> +<li>Bugfix: use unique identifier for jobs in job list</li> +<li>Bugfix: error in triagulation of fuel consumption map</li> </ul> <p><strong>VECTO 3.0.1</strong></p> <ul> diff --git a/VECTO/GUI/F_ENG.vb b/VECTO/GUI/F_ENG.vb index 2292e878cd2dc36c7db25b579f07dfebd90cc485..0c7e1740907442af8cce8a6ed01596eefc10191d 100644 --- a/VECTO/GUI/F_ENG.vb +++ b/VECTO/GUI/F_ENG.vb @@ -1,3 +1,4 @@ +Imports System.Web Imports System.Xml.Linq ' Copyright 2014 European Union. ' Licensed under the EUPL (the 'Licence'); @@ -15,323 +16,323 @@ Imports System.Xml.Linq ''' </summary> ''' <remarks></remarks> Public Class F_ENG + Private EngFile As String = "" + Public AutoSendTo As Boolean = False + Public JobDir As String = "" + Private Changed As Boolean = False - Private EngFile As String = "" - Public AutoSendTo As Boolean = False - Public JobDir As String = "" - Private Changed As Boolean = False + 'Before closing Editor: Check if file was changed and ask to save. + Private Sub F_ENG_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then + e.Cancel = ChangeCheckCancel() + End If + End Sub - 'Before closing Editor: Check if file was changed and ask to save. - Private Sub F_ENG_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing - If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then - e.Cancel = ChangeCheckCancel() - End If - End Sub - - 'Initialise. - Private Sub F_ENG_Load(sender As Object, e As System.EventArgs) Handles Me.Load + 'Initialise. + Private Sub F_ENG_Load(sender As Object, e As System.EventArgs) Handles Me.Load Me.PnInertia.Enabled = Not Cfg.DeclMode - Me.GrWHTC.Enabled = Cfg.DeclMode + Me.GrWHTC.Enabled = Cfg.DeclMode - Changed = False - newENG() - End Sub + Changed = False + newENG() + End Sub - 'Set generic values for Declaration mode. - Private Sub DeclInit() + 'Set generic values for Declaration mode. + Private Sub DeclInit() - If Not Cfg.DeclMode Then Exit Sub + If Not Cfg.DeclMode Then Exit Sub - Me.TbInertia.Text = CStr(Declaration.EngInertia(fTextboxToNumString(Me.TbDispl.Text))) - End Sub + Me.TbInertia.Text = CStr(Declaration.EngInertia(fTextboxToNumString(Me.TbDispl.Text))) + End Sub #Region "Toolbar" - Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click - newENG() - End Sub - - Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click - If fbENG.OpenDialog(EngFile) Then openENG(fbENG.Files(0)) - End Sub + Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click + newENG() + End Sub - Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click - SaveOrSaveAs(False) - End Sub + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + If fbENG.OpenDialog(EngFile) Then openENG(fbENG.Files(0)) + End Sub - Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click - SaveOrSaveAs(True) - End Sub + Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub - Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub - If ChangeCheckCancel() Then Exit Sub + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click - If EngFile = "" Then - If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If Not SaveOrSaveAs(True) Then Exit Sub - Else - Exit Sub - End If - End If + If ChangeCheckCancel() Then Exit Sub - If Not F_VECTO.Visible Then - JobDir = "" - F_VECTO.Show() - F_VECTO.VECTOnew() - Else - F_VECTO.WindowState = FormWindowState.Normal - End If + If EngFile = "" Then + If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If Not SaveOrSaveAs(True) Then Exit Sub + Else + Exit Sub + End If + End If - F_VECTO.TbENG.Text = fFileWoDir(EngFile, JobDir) + If Not F_VECTO.Visible Then + JobDir = "" + F_VECTO.Show() + F_VECTO.VECTOnew() + Else + F_VECTO.WindowState = FormWindowState.Normal + End If - End Sub + F_VECTO.TbENG.Text = fFileWoDir(EngFile, JobDir) + End Sub - Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\ENG.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\ENG.html") - Else - MsgBox("User Manual not found!", MsgBoxStyle.Critical) - End If - End Sub + Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#engine-editor")) + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub #End Region - 'Create new empty Engine file. - Private Sub newENG() + 'Create new empty Engine file. + Private Sub newENG() - If ChangeCheckCancel() Then Exit Sub + If ChangeCheckCancel() Then Exit Sub - Me.TbName.Text = "" - Me.TbDispl.Text = "" - Me.TbInertia.Text = "" - Me.TbNleerl.Text = "" + Me.TbName.Text = "" + Me.TbDispl.Text = "" + Me.TbInertia.Text = "" + Me.TbNleerl.Text = "" Me.TbMAP.Text = "" Me.TbFLD.Text = "" - Me.TbWHTCurban.Text = "" - Me.TbWHTCrural.Text = "" - Me.TbWHTCmw.Text = "" - + Me.TbWHTCurban.Text = "" + Me.TbWHTCrural.Text = "" + Me.TbWHTCmw.Text = "" - DeclInit() + DeclInit() - EngFile = "" - Me.Text = "ENG Editor" - Me.LbStatus.Text = "" - Changed = False + EngFile = "" + Me.Text = "ENG Editor" + Me.LbStatus.Text = "" - UpdatePic() + Changed = False - End Sub + UpdatePic() + End Sub - 'Open VENG file - Public Sub openENG(ByVal file As String) - Dim ENG0 As cENG + 'Open VENG file + Public Sub openENG(ByVal file As String) + Dim ENG0 As cENG - If ChangeCheckCancel() Then Exit Sub + If ChangeCheckCancel() Then Exit Sub - ENG0 = New cENG + ENG0 = New cENG - ENG0.FilePath = file + ENG0.FilePath = file - If Not ENG0.ReadFile Then - MsgBox("Cannot read " & file & "!") - Exit Sub - End If + If Not ENG0.ReadFile Then + MsgBox("Cannot read " & file & "!") + Exit Sub + End If - If Cfg.DeclMode <> ENG0.SavedInDeclMode Then - Select Case WrongMode() - Case 1 - Me.Close() - F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked - F_MAINForm.OpenVectoFile(file) - Case -1 - Exit Sub - Case Else '0 - 'Continue... - End Select - End If + If Cfg.DeclMode <> ENG0.SavedInDeclMode Then + Select Case WrongMode() + Case 1 + Me.Close() + F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked + F_MAINForm.OpenVectoFile(file) + Case - 1 + Exit Sub + Case Else '0 + 'Continue... + End Select + End If - Me.TbName.Text = ENG0.ModelName - Me.TbDispl.Text = ENG0.Displ.ToString - Me.TbInertia.Text = ENG0.I_mot.ToString - Me.TbNleerl.Text = ENG0.Nidle.ToString + Me.TbName.Text = ENG0.ModelName + Me.TbDispl.Text = ENG0.Displ.ToString + Me.TbInertia.Text = ENG0.I_mot.ToString + Me.TbNleerl.Text = ENG0.Nidle.ToString Me.TbMAP.Text = ENG0.PathMAP(True) Me.TbFLD.Text = ENG0.PathFLD(True) - Me.TbWHTCurban.Text = ENG0.WHTCurban - Me.TbWHTCrural.Text = ENG0.WHTCrural - Me.TbWHTCmw.Text = ENG0.WHTCmw - + Me.TbWHTCurban.Text = ENG0.WHTCurban + Me.TbWHTCrural.Text = ENG0.WHTCrural + Me.TbWHTCmw.Text = ENG0.WHTCmw - DeclInit() + DeclInit() - fbENG.UpdateHistory(file) - Me.Text = fFILE(file, True) - Me.LbStatus.Text = "" - EngFile = file - Me.Activate() - Changed = False - UpdatePic() + fbENG.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + EngFile = file + Me.Activate() - End Sub + Changed = False + UpdatePic() + End Sub - 'Save or Save As function = true if file is saved - Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean - If EngFile = "" Or SaveAs Then - If fbENG.SaveDialog(EngFile) Then - EngFile = fbENG.Files(0) - Else - Return False - End If - End If - Return saveENG(EngFile) - End Function + 'Save or Save As function = true if file is saved + Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean + If EngFile = "" Or SaveAs Then + If fbENG.SaveDialog(EngFile) Then + EngFile = fbENG.Files(0) + Else + Return False + End If + End If + Return saveENG(EngFile) + End Function - 'Save VENG file to given filepath. Called by SaveOrSaveAs. - Private Function saveENG(ByVal file As String) As Boolean - Dim ENG0 As cENG + 'Save VENG file to given filepath. Called by SaveOrSaveAs. + Private Function saveENG(ByVal file As String) As Boolean + Dim ENG0 As cENG - ENG0 = New cENG - ENG0.FilePath = file + ENG0 = New cENG + ENG0.FilePath = file - ENG0.ModelName = Me.TbName.Text - If Trim(ENG0.ModelName) = "" Then ENG0.ModelName = "Undefined" - ENG0.Displ = CSng(fTextboxToNumString(Me.TbDispl.Text)) - ENG0.I_mot = CSng(fTextboxToNumString(Me.TbInertia.Text)) - ENG0.Nidle = CSng(fTextboxToNumString(Me.TbNleerl.Text)) + ENG0.ModelName = Me.TbName.Text + If Trim(ENG0.ModelName) = "" Then ENG0.ModelName = "Undefined" + ENG0.Displ = CSng(fTextboxToNumString(Me.TbDispl.Text)) + ENG0.I_mot = CSng(fTextboxToNumString(Me.TbInertia.Text)) + ENG0.Nidle = CSng(fTextboxToNumString(Me.TbNleerl.Text)) ENG0.PathFLD = Me.TbFLD.Text ENG0.PathMAP = Me.TbMAP.Text - ENG0.WHTCurban = CSng(fTextboxToNumString(Me.TbWHTCurban.Text)) - ENG0.WHTCrural = CSng(fTextboxToNumString(Me.TbWHTCrural.Text)) - ENG0.WHTCmw = CSng(fTextboxToNumString(Me.TbWHTCmw.Text)) - + ENG0.WHTCurban = CSng(fTextboxToNumString(Me.TbWHTCurban.Text)) + ENG0.WHTCrural = CSng(fTextboxToNumString(Me.TbWHTCrural.Text)) + ENG0.WHTCmw = CSng(fTextboxToNumString(Me.TbWHTCmw.Text)) - If Not ENG0.SaveFile Then - MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) - Return False - End If - If AutoSendTo Then - If F_VECTO.Visible Then - If UCase(fFileRepl(F_VECTO.TbENG.Text, JobDir)) <> UCase(file) Then F_VECTO.TbENG.Text = fFileWoDir(file, JobDir) - F_VECTO.UpdatePic() - End If - End If + If Not ENG0.SaveFile Then + MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) + Return False + End If - fbENG.UpdateHistory(file) - Me.Text = fFILE(file, True) - Me.LbStatus.Text = "" + If AutoSendTo Then + If F_VECTO.Visible Then + If UCase(fFileRepl(F_VECTO.TbENG.Text, JobDir)) <> UCase(file) Then F_VECTO.TbENG.Text = fFileWoDir(file, JobDir) + F_VECTO.UpdatePic() + End If + End If - Changed = False + fbENG.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" - Return True + Changed = False - End Function + Return True + End Function #Region "Track changes" - 'Flags current file as modified. - Private Sub Change() - If Not Changed Then - Me.LbStatus.Text = "Unsaved changes in current file" - Changed = True - End If - End Sub - - ' "Save changes ?" .... Returns True if User aborts - Private Function ChangeCheckCancel() As Boolean + 'Flags current file as modified. + Private Sub Change() + If Not Changed Then + Me.LbStatus.Text = "Unsaved changes in current file" + Changed = True + End If + End Sub - If Changed Then - Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel) - Case MsgBoxResult.Yes - Return Not SaveOrSaveAs(False) - Case MsgBoxResult.Cancel - Return True - Case Else 'MsgBoxResult.No - Changed = False - Return False - End Select + ' "Save changes ?" .... Returns True if User aborts + Private Function ChangeCheckCancel() As Boolean - Else + If Changed Then + Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel) + Case MsgBoxResult.Yes + Return Not SaveOrSaveAs(False) + Case MsgBoxResult.Cancel + Return True + Case Else 'MsgBoxResult.No + Changed = False + Return False + End Select - Return False + Else - End If + Return False - End Function + End If + End Function - Private Sub TbName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbName.TextChanged - Change() - End Sub + Private Sub TbName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbName.TextChanged + Change() + End Sub - Private Sub TbPnenn_TextChanged(sender As System.Object, e As System.EventArgs) - Change() - End Sub + Private Sub TbPnenn_TextChanged(sender As System.Object, e As System.EventArgs) + Change() + End Sub - Private Sub TbDispl_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbDispl.TextChanged - Change() - DeclInit() - End Sub + Private Sub TbDispl_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbDispl.TextChanged + Change() + DeclInit() + End Sub - Private Sub TbInertia_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbInertia.TextChanged - Change() - End Sub + Private Sub TbInertia_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbInertia.TextChanged + Change() + End Sub - Private Sub TbNleerl_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbNleerl.TextChanged - UpdatePic() - Change() - End Sub + Private Sub TbNleerl_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbNleerl.TextChanged + UpdatePic() + Change() + End Sub - Private Sub TbNnenn_TextChanged(sender As System.Object, e As System.EventArgs) - Change() - End Sub + Private Sub TbNnenn_TextChanged(sender As System.Object, e As System.EventArgs) + Change() + End Sub - Private Sub TbMAP_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMAP.TextChanged, TbFLD.TextChanged + Private Sub TbMAP_TextChanged(sender As System.Object, e As System.EventArgs) _ + Handles TbMAP.TextChanged, TbFLD.TextChanged UpdatePic() Change() End Sub - Private Sub TbWHTCurban_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCurban.TextChanged - Change() - End Sub + Private Sub TbWHTCurban_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCurban.TextChanged + Change() + End Sub - Private Sub TbWHTCrural_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCrural.TextChanged - Change() - End Sub + Private Sub TbWHTCrural_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCrural.TextChanged + Change() + End Sub - Private Sub TbWHTCmw_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCmw.TextChanged - Change() - End Sub + Private Sub TbWHTCmw_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbWHTCmw.TextChanged + Change() + End Sub Private Sub LvFLDs_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) UpdatePic() End Sub - #End Region 'Browse for VMAP file Private Sub BtMAP_Click(sender As System.Object, e As System.EventArgs) Handles BtMAP.Click - If fbMAP.OpenDialog(fFileRepl(Me.TbMAP.Text, fPATH(EngFile))) Then Me.TbMAP.Text = fFileWoDir(fbMAP.Files(0), fPATH(EngFile)) + If fbMAP.OpenDialog(fFileRepl(Me.TbMAP.Text, fPATH(EngFile))) Then _ + Me.TbMAP.Text = fFileWoDir(fbMAP.Files(0), fPATH(EngFile)) End Sub - 'Open VMAP file + 'Open VMAP file Private Sub BtMAPopen_Click(sender As System.Object, e As System.EventArgs) Handles BtMAPopen.Click Dim fldfile As String @@ -342,160 +343,156 @@ Public Class F_ENG Else OpenFiles(fFileRepl(Me.TbMAP.Text, fPATH(EngFile))) End If - End Sub - 'Save and close - Private Sub ButOK_Click(sender As System.Object, e As System.EventArgs) Handles ButOK.Click - If SaveOrSaveAs(False) Then Me.Close() - End Sub + 'Save and close + Private Sub ButOK_Click(sender As System.Object, e As System.EventArgs) Handles ButOK.Click + If SaveOrSaveAs(False) Then Me.Close() + End Sub - 'Close without saving (see FormClosing Event) - Private Sub ButCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButCancel.Click - Me.Close() - End Sub + 'Close without saving (see FormClosing Event) + Private Sub ButCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButCancel.Click + Me.Close() + End Sub - Private Sub UpdatePic() + Private Sub UpdatePic() - Dim fldOK As Boolean = False - Dim mapOK As Boolean = False - Dim FLD0 As New cFLD - Dim MAP0 As New cMAP - Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart - Dim s As System.Windows.Forms.DataVisualization.Charting.Series - Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea - Dim img As Image + Dim fldOK As Boolean = False + Dim mapOK As Boolean = False + Dim FLD0 As New cFLD + Dim MAP0 As New cMAP + Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart + Dim s As System.Windows.Forms.DataVisualization.Charting.Series + Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea + Dim img As Image - Me.PicBox.Image = Nothing + Me.PicBox.Image = Nothing - Try + Try - 'Read Files + 'Read Files FLD0.FilePath = fFileRepl(Me.TbFLD.Text, fPATH(EngFile)) fldOK = FLD0.ReadFile(False, False) - MAP0.FilePath = fFileRepl(Me.TbMAP.Text, fPATH(EngFile)) + MAP0.FilePath = fFileRepl(Me.TbMAP.Text, fPATH(EngFile)) mapOK = MAP0.ReadFile(False) - Catch ex As Exception - - End Try + Catch ex As Exception - If Not fldOK And Not mapOK Then Exit Sub + End Try + If Not fldOK And Not mapOK Then Exit Sub - 'Create plot - MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart - MyChart.Width = Me.PicBox.Width - MyChart.Height = Me.PicBox.Height - a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + 'Create plot + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + MyChart.Width = Me.PicBox.Width + MyChart.Height = Me.PicBox.Height - If fldOK Then + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea - s = New System.Windows.Forms.DataVisualization.Charting.Series - s.Points.DataBindXY(FLD0.LnU, FLD0.LTq) - s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine - s.BorderWidth = 2 - s.Color = Color.DarkBlue - s.Name = "Full load (" & fFILE(FLD0.FilePath, True) & ")" - MyChart.Series.Add(s) + If fldOK Then - s = New System.Windows.Forms.DataVisualization.Charting.Series - s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag) - s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine - s.BorderWidth = 2 - s.Color = Color.Blue - s.Name = "Motoring (" & fFILE(FLD0.FilePath, True) & ")" + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(FLD0.LnU, FLD0.LTq) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.DarkBlue + s.Name = "Full load (" & fFILE(FLD0.FilePath, True) & ")" MyChart.Series.Add(s) - End If - - If mapOK Then - s = New System.Windows.Forms.DataVisualization.Charting.Series - s.Points.DataBindXY(MAP0.nU, MAP0.Tq) - s.ChartType = DataVisualization.Charting.SeriesChartType.Point - s.MarkerSize = 3 - s.Color = Color.Red - s.Name = "Map" - MyChart.Series.Add(s) - End If - - a.Name = "main" + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(FLD0.LnU, FLD0.LTqDrag) + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.BorderWidth = 2 + s.Color = Color.Blue + s.Name = "Motoring (" & fFILE(FLD0.FilePath, True) & ")" + MyChart.Series.Add(s) - a.AxisX.Title = "engine speed [1/min]" - a.AxisX.TitleFont = New Font("Helvetica", 10) - a.AxisX.LabelStyle.Font = New Font("Helvetica", 8) - a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None - a.AxisX.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot + End If - a.AxisY.Title = "engine torque [Nm]" - a.AxisY.TitleFont = New Font("Helvetica", 10) - a.AxisY.LabelStyle.Font = New Font("Helvetica", 8) - a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None - a.AxisY.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot + If mapOK Then + s = New System.Windows.Forms.DataVisualization.Charting.Series + s.Points.DataBindXY(MAP0.nU, MAP0.Tq) + s.ChartType = DataVisualization.Charting.SeriesChartType.Point + s.MarkerSize = 3 + s.Color = Color.Red + s.Name = "Map" + MyChart.Series.Add(s) + End If - a.AxisX.Minimum = 300 - a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid - a.BorderWidth = 1 + a.Name = "main" - a.BackColor = Color.GhostWhite + a.AxisX.Title = "engine speed [1/min]" + a.AxisX.TitleFont = New Font("Helvetica", 10) + a.AxisX.LabelStyle.Font = New Font("Helvetica", 8) + a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisX.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot - MyChart.ChartAreas.Add(a) + a.AxisY.Title = "engine torque [Nm]" + a.AxisY.TitleFont = New Font("Helvetica", 10) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 8) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisY.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot - MyChart.Update() + a.AxisX.Minimum = 300 + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 - img = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) - MyChart.DrawToBitmap(img, New Rectangle(0, 0, Me.PicBox.Width, Me.PicBox.Height)) + a.BackColor = Color.GhostWhite + MyChart.ChartAreas.Add(a) - Me.PicBox.Image = img + MyChart.Update() + img = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(img, New Rectangle(0, 0, Me.PicBox.Width, Me.PicBox.Height)) - End Sub + Me.PicBox.Image = img + End Sub #Region "Open File Context Menu" - Private CmFiles As String() - - Private Sub OpenFiles(ParamArray files() As String) + Private CmFiles As String() - If files.Length = 0 Then Exit Sub + Private Sub OpenFiles(ParamArray files() As String) - CmFiles = files + If files.Length = 0 Then Exit Sub - OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName + CmFiles = files - CmOpenFile.Show(Cursor.Position) + OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName - End Sub + CmOpenFile.Show(Cursor.Position) + End Sub - Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenWithToolStripMenuItem.Click - If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") - End Sub + Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles OpenWithToolStripMenuItem.Click + If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") + End Sub - Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ShowInFolderToolStripMenuItem.Click - If IO.File.Exists(CmFiles(0)) Then - Try - System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") - Catch ex As Exception - MsgBox("Failed to open file!") - End Try - Else - MsgBox("File not found!") - End If - End Sub + Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles ShowInFolderToolStripMenuItem.Click + If IO.File.Exists(CmFiles(0)) Then + Try + System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") + Catch ex As Exception + MsgBox("Failed to open file!") + End Try + Else + MsgBox("File not found!") + End If + End Sub #End Region - Private Sub BtFLD_Click(sender As Object, e As EventArgs) Handles BtFLD.Click - If fbFLD.OpenDialog(fFileRepl(Me.TbFLD.Text, fPATH(EngFile))) Then Me.TbFLD.Text = fFileWoDir(fbFLD.Files(0), fPATH(EngFile)) - + If fbFLD.OpenDialog(fFileRepl(Me.TbFLD.Text, fPATH(EngFile))) Then _ + Me.TbFLD.Text = fFileWoDir(fbFLD.Files(0), fPATH(EngFile)) End Sub Private Sub BtFLDopen_Click(sender As Object, e As EventArgs) Handles BtFLDopen.Click @@ -506,7 +503,6 @@ Public Class F_ENG If fldfile <> sKey.NoFile AndAlso IO.File.Exists(fldfile) Then OpenFiles(fldfile) End If - End Sub Private Sub BtWHTCimport_Click(sender As Object, e As EventArgs) Handles BtWHTCimport.Click @@ -527,6 +523,5 @@ Public Class F_ENG Catch ex As Exception MsgBox("Failed to load file! " & ex.Message, MsgBoxStyle.Critical) End Try - End Sub End Class diff --git a/VECTO/GUI/F_GBX.vb b/VECTO/GUI/F_GBX.vb index 47e8d747b0a6e4813ff776e8acb8f18c3f2dba06..c2c088eba502f68d4b49e15bba7ec1dddd8776f9 100644 --- a/VECTO/GUI/F_GBX.vb +++ b/VECTO/GUI/F_GBX.vb @@ -15,523 +15,521 @@ Imports System.Collections.Generic ''' </summary> ''' <remarks></remarks> Public Class F_GBX - Private GbxFile As String = "" Public AutoSendTo As Boolean = False - Public JobDir As String = "" - Private GearDia As F_GBX_GearDlog - - Private Init As Boolean = False - - Private Changed As Boolean = False + Public JobDir As String = "" + Private GearDia As F_GBX_GearDlog - 'Before closing Editor: Check if file was changed and ask to save. - Private Sub F_GBX_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing - If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then - e.Cancel = ChangeCheckCancel() - End If - End Sub + Private Init As Boolean = False - 'Initialise. - Private Sub F_GBX_Load(sender As Object, e As System.EventArgs) Handles Me.Load + Private Changed As Boolean = False - Init = False - GearDia = New F_GBX_GearDlog - - Me.PnInertiaTI.Enabled = Not Cfg.DeclMode - Me.GrGearShift.Enabled = Not Cfg.DeclMode - Me.ChTCon.Enabled = Not Cfg.DeclMode + 'Before closing Editor: Check if file was changed and ask to save. + Private Sub F_GBX_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then + e.Cancel = ChangeCheckCancel() + End If + End Sub - Me.CbGStype.Items.Clear() - Me.CbGStype.Items.Add("Manual Transmission (MT)") - Me.CbGStype.Items.Add("Automated Manual Transmission (AMT)") - If Not Cfg.DeclMode Then - Me.CbGStype.Items.Add("Automatic Transmission (AT)") - Me.CbGStype.Items.Add("Custom") - End If + 'Initialise. + Private Sub F_GBX_Load(sender As Object, e As System.EventArgs) Handles Me.Load - Init = True + Init = False + GearDia = New F_GBX_GearDlog - DeclInit() + Me.PnInertiaTI.Enabled = Not Cfg.DeclMode + Me.GrGearShift.Enabled = Not Cfg.DeclMode + Me.ChTCon.Enabled = Not Cfg.DeclMode - Changed = False - newGBX() + Me.CbGStype.Items.Clear() + Me.CbGStype.Items.Add("Manual Transmission (MT)") + Me.CbGStype.Items.Add("Automated Manual Transmission (AMT)") + If Not Cfg.DeclMode Then + Me.CbGStype.Items.Add("Automatic Transmission (AT)") + Me.CbGStype.Items.Add("Custom") + End If - End Sub + Init = True - 'Set generic values for Declaration mode. - Private Sub DeclInit() - Dim GStype As tGearbox - Dim lv0 As ListViewItem + DeclInit() - If Not Cfg.DeclMode Then Exit Sub + Changed = False + newGBX() + End Sub - Me.TBI_getr.Text = cDeclaration.GbInertia + 'Set generic values for Declaration mode. + Private Sub DeclInit() + Dim GStype As tGearbox + Dim lv0 As ListViewItem - GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) + If Not Cfg.DeclMode Then Exit Sub - Me.TbTracInt.Text = Declaration.TracInt(GStype) - Me.TbShiftTime.Text = Declaration.ShiftTime(GStype) + Me.TBI_getr.Text = cDeclaration.GbInertia - Me.TbTqResv.Text = cDeclaration.TqResv - Me.TbTqResvStart.Text = cDeclaration.TqResvStart - Me.TbStartSpeed.Text = cDeclaration.StartSpeed - Me.TbStartAcc.Text = cDeclaration.StartAcc + GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) - For Each lv0 In Me.LvGears.Items - lv0.SubItems(4).Text = "-" - Next + Me.TbTracInt.Text = Declaration.TracInt(GStype) + Me.TbShiftTime.Text = Declaration.ShiftTime(GStype) + Me.TbTqResv.Text = cDeclaration.TqResv + Me.TbTqResvStart.Text = cDeclaration.TqResvStart + Me.TbStartSpeed.Text = cDeclaration.StartSpeed + Me.TbStartAcc.Text = cDeclaration.StartAcc - End Sub + For Each lv0 In Me.LvGears.Items + lv0.SubItems(4).Text = "-" + Next + End Sub #Region "Toolbar" - Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click - newGBX() - End Sub - - Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click - If fbGBX.OpenDialog(GbxFile) Then openGBX(fbGBX.Files(0)) - End Sub + Private Sub ToolStripBtNew_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtNew.Click + newGBX() + End Sub - Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click - SaveOrSaveAs(False) - End Sub + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + If fbGBX.OpenDialog(GbxFile) Then openGBX(fbGBX.Files(0)) + End Sub - Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click - SaveOrSaveAs(True) - End Sub + Private Sub ToolStripBtSave_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSave.Click + SaveOrSaveAs(False) + End Sub - Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click + Private Sub ToolStripBtSaveAs_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSaveAs.Click + SaveOrSaveAs(True) + End Sub - If ChangeCheckCancel() Then Exit Sub + Private Sub ToolStripBtSendTo_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtSendTo.Click - If GbxFile = "" Then - If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then - If Not SaveOrSaveAs(True) Then Exit Sub - Else - Exit Sub - End If - End If + If ChangeCheckCancel() Then Exit Sub - If Not F_VECTO.Visible Then - JobDir = "" - F_VECTO.Show() - F_VECTO.VECTOnew() - Else - F_VECTO.WindowState = FormWindowState.Normal - End If + If GbxFile = "" Then + If MsgBox("Save file now?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then + If Not SaveOrSaveAs(True) Then Exit Sub + Else + Exit Sub + End If + End If - F_VECTO.TbGBX.Text = fFileWoDir(GbxFile, JobDir) + If Not F_VECTO.Visible Then + JobDir = "" + F_VECTO.Show() + F_VECTO.VECTOnew() + Else + F_VECTO.WindowState = FormWindowState.Normal + End If - End Sub + F_VECTO.TbGBX.Text = fFileWoDir(GbxFile, JobDir) + End Sub - 'Help - Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\GBX.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\GBX.html") - Else - MsgBox("User Manual not found!", MsgBoxStyle.Critical) - End If - End Sub + 'Help + Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#gearbox-editor")) + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub #End Region - 'New file - Private Sub newGBX() - Dim lvi As ListViewItem + 'New file + Private Sub newGBX() + Dim lvi As ListViewItem - If ChangeCheckCancel() Then Exit Sub + If ChangeCheckCancel() Then Exit Sub - Me.CbGStype.SelectedIndex = 0 + Me.CbGStype.SelectedIndex = 0 - Me.TbName.Text = "" - Me.TbTracInt.Text = "" - Me.TBI_getr.Text = "" + Me.TbName.Text = "" + Me.TbTracInt.Text = "" + Me.TBI_getr.Text = "" - Me.LvGears.Items.Clear() + Me.LvGears.Items.Clear() - lvi = New ListViewItem("Axle") - lvi.SubItems.Add("-") - lvi.SubItems.Add("0") - lvi.SubItems.Add("0") + lvi = New ListViewItem("Axle") + lvi.SubItems.Add("-") + lvi.SubItems.Add("0") + lvi.SubItems.Add("0") lvi.SubItems.Add("") lvi.SubItems.Add("") - Me.LvGears.Items.Add(lvi) - - 'Me.ChSkipGears.Checked = False 'set by CbGStype.SelectedIndexChanged - 'Me.ChShiftInside.Checked = False 'set by CbGStype.SelectedIndexChanged - Me.TbTqResv.Text = "" - Me.TbShiftTime.Text = "" - Me.TbTqResvStart.Text = "" - Me.TbStartSpeed.Text = "" - Me.TbStartAcc.Text = "" - - 'Me.ChTCon.Checked = False 'set by CbGStype.SelectedIndexChanged - Me.TbTCfile.Text = "" - Me.TbTCrefrpm.Text = "" - Me.TbTCinertia.Text = "" - - DeclInit() - - GbxFile = "" - Me.Text = "GBX Editor" - Me.LbStatus.Text = "" - - Changed = False - UpdatePic() - - End Sub - - 'Open file - Public Sub openGBX(ByVal file As String) - Dim GBX0 As cGBX - Dim i As Integer - Dim lv0 As ListViewItem - - If ChangeCheckCancel() Then Exit Sub - - GBX0 = New cGBX - - GBX0.FilePath = file - - If Not GBX0.ReadFile Then - MsgBox("Cannot read " & file & "!") - Exit Sub - End If - - If Cfg.DeclMode <> GBX0.SavedInDeclMode Then - Select Case WrongMode() - Case 1 - Me.Close() - F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked - F_MAINForm.OpenVectoFile(file) - Case -1 - Exit Sub - Case Else '0 - 'Continue... - End Select - End If - - Me.TbName.Text = GBX0.ModelName - Me.TbTracInt.Text = GBX0.TracIntrSi.ToString - Me.TBI_getr.Text = GBX0.GbxInertia.ToString - - Me.ChTCon.Checked = GBX0.TCon - - Me.LvGears.Items.Clear() - - For i = 0 To GBX0.Igetr.Count - 1 - - If i = 0 Then - lv0 = New ListViewItem("Axle") - Else - lv0 = New ListViewItem(i.ToString("00")) - End If - - If Me.ChTCon.Checked And i > 0 Then - If GBX0.IsTCgear(i) Then - lv0.SubItems.Add("on") - Else - lv0.SubItems.Add("off") - End If - Else - lv0.SubItems.Add("-") - End If - lv0.SubItems.Add(GBX0.Igetr(i)) - lv0.SubItems.Add(GBX0.GetrMap(i, True)) + Me.LvGears.Items.Add(lvi) + + 'Me.ChSkipGears.Checked = False 'set by CbGStype.SelectedIndexChanged + 'Me.ChShiftInside.Checked = False 'set by CbGStype.SelectedIndexChanged + Me.TbTqResv.Text = "" + Me.TbShiftTime.Text = "" + Me.TbTqResvStart.Text = "" + Me.TbStartSpeed.Text = "" + Me.TbStartAcc.Text = "" + + 'Me.ChTCon.Checked = False 'set by CbGStype.SelectedIndexChanged + Me.TbTCfile.Text = "" + Me.TbTCrefrpm.Text = "" + Me.TbTCinertia.Text = "" + + DeclInit() + + GbxFile = "" + Me.Text = "GBX Editor" + Me.LbStatus.Text = "" + + Changed = False + UpdatePic() + End Sub + + 'Open file + Public Sub openGBX(ByVal file As String) + Dim GBX0 As cGBX + Dim i As Integer + Dim lv0 As ListViewItem + + If ChangeCheckCancel() Then Exit Sub + + GBX0 = New cGBX + + GBX0.FilePath = file + + If Not GBX0.ReadFile Then + MsgBox("Cannot read " & file & "!") + Exit Sub + End If + + If Cfg.DeclMode <> GBX0.SavedInDeclMode Then + Select Case WrongMode() + Case 1 + Me.Close() + F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked + F_MAINForm.OpenVectoFile(file) + Case - 1 + Exit Sub + Case Else '0 + 'Continue... + End Select + End If + + Me.TbName.Text = GBX0.ModelName + Me.TbTracInt.Text = GBX0.TracIntrSi.ToString + Me.TBI_getr.Text = GBX0.GbxInertia.ToString + + Me.ChTCon.Checked = GBX0.TCon + + Me.LvGears.Items.Clear() + + For i = 0 To GBX0.Igetr.Count - 1 + + If i = 0 Then + lv0 = New ListViewItem("Axle") + Else + lv0 = New ListViewItem(i.ToString("00")) + End If + + If Me.ChTCon.Checked And i > 0 Then + If GBX0.IsTCgear(i) Then + lv0.SubItems.Add("on") + Else + lv0.SubItems.Add("off") + End If + Else + lv0.SubItems.Add("-") + End If + lv0.SubItems.Add(GBX0.Igetr(i)) + lv0.SubItems.Add(GBX0.GetrMap(i, True)) lv0.SubItems.Add(GBX0.gsFile(i, True)) lv0.SubItems.Add(GBX0.FldFile(i, True)) - Me.LvGears.Items.Add(lv0) - Next - - Me.ChSkipGears.Checked = GBX0.gs_SkipGears - Me.TbTqResv.Text = GBX0.gs_TorqueResv.ToString - Me.TbShiftTime.Text = GBX0.gs_ShiftTime.ToString - Me.TbTqResvStart.Text = GBX0.gs_TorqueResvStart.ToString - Me.TbStartSpeed.Text = GBX0.gs_StartSpeed.ToString - Me.TbStartAcc.Text = GBX0.gs_StartAcc.ToString - Me.ChShiftInside.Checked = GBX0.gs_ShiftInside - - Me.TbTCfile.Text = GBX0.TCfile(True) - Me.TbTCrefrpm.Text = GBX0.TCrefrpm - Me.TbTCinertia.Text = GBX0.TCinertia - - If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then - Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer) - Else - Me.CbGStype.SelectedIndex = 0 - End If - - DeclInit() - - - fbGBX.UpdateHistory(file) - Me.Text = fFILE(file, True) - Me.LbStatus.Text = "" - GbxFile = file - Me.Activate() - - Changed = False - UpdatePic() - - End Sub - - 'Save or Save As function = true if file is saved - Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean - If GbxFile = "" Or SaveAs Then - If fbGBX.SaveDialog(GbxFile) Then - GbxFile = fbGBX.Files(0) - Else - Return False - End If - End If - Return saveGBX(GbxFile) - End Function - - 'Save file - Private Function saveGBX(ByVal file As String) As Boolean - Dim GBX0 As cGBX - Dim i As Int16 - - GBX0 = New cGBX - GBX0.FilePath = file - - GBX0.ModelName = Me.TbName.Text - If Trim(GBX0.ModelName) = "" Then GBX0.ModelName = "Undefined" - - GBX0.TracIntrSi = fTextboxToNumString(Me.TbTracInt.Text) - GBX0.GbxInertia = fTextboxToNumString(Me.TBI_getr.Text) - - For i = 0 To Me.LvGears.Items.Count - 1 - GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(1).Text = "on" And i > 0) - GBX0.Igetr.Add(CSng(Me.LvGears.Items(i).SubItems(2).Text)) - GBX0.GetrMaps.Add(New cSubPath) - GBX0.GetrMap(i) = Me.LvGears.Items(i).SubItems(3).Text - GBX0.gs_files.Add(New cSubPath) - GBX0.gsFile(i) = Me.LvGears.Items(i).SubItems(4).Text - GBX0.FldFiles.Add(New cSubPath) - GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(5).Text - Next + Me.LvGears.Items.Add(lv0) + Next + + Me.ChSkipGears.Checked = GBX0.gs_SkipGears + Me.TbTqResv.Text = GBX0.gs_TorqueResv.ToString + Me.TbShiftTime.Text = GBX0.gs_ShiftTime.ToString + Me.TbTqResvStart.Text = GBX0.gs_TorqueResvStart.ToString + Me.TbStartSpeed.Text = GBX0.gs_StartSpeed.ToString + Me.TbStartAcc.Text = GBX0.gs_StartAcc.ToString + Me.ChShiftInside.Checked = GBX0.gs_ShiftInside + + Me.TbTCfile.Text = GBX0.TCfile(True) + Me.TbTCrefrpm.Text = GBX0.TCrefrpm + Me.TbTCinertia.Text = GBX0.TCinertia + + If CType(GBX0.gs_Type, Integer) <= Me.CbGStype.Items.Count - 1 Then + Me.CbGStype.SelectedIndex = CType(GBX0.gs_Type, Integer) + Else + Me.CbGStype.SelectedIndex = 0 + End If + + DeclInit() + - GBX0.gs_TorqueResv = fTextboxToNumString(Me.TbTqResv.Text) - GBX0.gs_SkipGears = Me.ChSkipGears.Checked - GBX0.gs_ShiftTime = fTextboxToNumString(Me.TbShiftTime.Text) - GBX0.gs_TorqueResvStart = fTextboxToNumString(Me.TbTqResvStart.Text) - GBX0.gs_StartSpeed = fTextboxToNumString(Me.TbStartSpeed.Text) - GBX0.gs_StartAcc = fTextboxToNumString(Me.TbStartAcc.Text) - GBX0.gs_ShiftInside = Me.ChShiftInside.Checked + fbGBX.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" + GbxFile = file + Me.Activate() - GBX0.gs_Type = CType(Me.CbGStype.SelectedIndex, tGearbox) + Changed = False + UpdatePic() + End Sub - GBX0.TCon = Me.ChTCon.Checked - GBX0.TCfile = Me.TbTCfile.Text - GBX0.TCrefrpm = fTextboxToNumString(Me.TbTCrefrpm.Text) - GBX0.TCinertia = fTextboxToNumString(Me.TbTCinertia.Text) + 'Save or Save As function = true if file is saved + Private Function SaveOrSaveAs(ByVal SaveAs As Boolean) As Boolean + If GbxFile = "" Or SaveAs Then + If fbGBX.SaveDialog(GbxFile) Then + GbxFile = fbGBX.Files(0) + Else + Return False + End If + End If + Return saveGBX(GbxFile) + End Function - If Not GBX0.SaveFile Then - MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) - Return False - End If + 'Save file + Private Function saveGBX(ByVal file As String) As Boolean + Dim GBX0 As cGBX + Dim i As Int16 - If AutoSendTo Then - If F_VECTO.Visible Then - If UCase(fFileRepl(F_VECTO.TbGBX.Text, JobDir)) <> UCase(file) Then F_VECTO.TbGBX.Text = fFileWoDir(file, JobDir) - F_VECTO.UpdatePic() - End If - End If + GBX0 = New cGBX + GBX0.FilePath = file - fbGBX.UpdateHistory(file) - Me.Text = fFILE(file, True) - Me.LbStatus.Text = "" + GBX0.ModelName = Me.TbName.Text + If Trim(GBX0.ModelName) = "" Then GBX0.ModelName = "Undefined" - Changed = False + GBX0.TracIntrSi = fTextboxToNumString(Me.TbTracInt.Text) + GBX0.GbxInertia = fTextboxToNumString(Me.TBI_getr.Text) - Return True + For i = 0 To Me.LvGears.Items.Count - 1 + GBX0.IsTCgear.Add(Me.LvGears.Items(i).SubItems(1).Text = "on" And i > 0) + GBX0.Igetr.Add(CSng(Me.LvGears.Items(i).SubItems(2).Text)) + GBX0.GetrMaps.Add(New cSubPath) + GBX0.GetrMap(i) = Me.LvGears.Items(i).SubItems(3).Text + GBX0.gs_files.Add(New cSubPath) + GBX0.gsFile(i) = Me.LvGears.Items(i).SubItems(4).Text + GBX0.FldFiles.Add(New cSubPath) + GBX0.FldFile(i) = Me.LvGears.Items(i).SubItems(5).Text + Next + + GBX0.gs_TorqueResv = fTextboxToNumString(Me.TbTqResv.Text) + GBX0.gs_SkipGears = Me.ChSkipGears.Checked + GBX0.gs_ShiftTime = fTextboxToNumString(Me.TbShiftTime.Text) + GBX0.gs_TorqueResvStart = fTextboxToNumString(Me.TbTqResvStart.Text) + GBX0.gs_StartSpeed = fTextboxToNumString(Me.TbStartSpeed.Text) + GBX0.gs_StartAcc = fTextboxToNumString(Me.TbStartAcc.Text) + GBX0.gs_ShiftInside = Me.ChShiftInside.Checked + + GBX0.gs_Type = CType(Me.CbGStype.SelectedIndex, tGearbox) + + GBX0.TCon = Me.ChTCon.Checked + GBX0.TCfile = Me.TbTCfile.Text + GBX0.TCrefrpm = fTextboxToNumString(Me.TbTCrefrpm.Text) + GBX0.TCinertia = fTextboxToNumString(Me.TbTCinertia.Text) + + If Not GBX0.SaveFile Then + MsgBox("Cannot safe to " & file, MsgBoxStyle.Critical) + Return False + End If - End Function + If AutoSendTo Then + If F_VECTO.Visible Then + If UCase(fFileRepl(F_VECTO.TbGBX.Text, JobDir)) <> UCase(file) Then F_VECTO.TbGBX.Text = fFileWoDir(file, JobDir) + F_VECTO.UpdatePic() + End If + End If -#Region "Change Events" + fbGBX.UpdateHistory(file) + Me.Text = fFILE(file, True) + Me.LbStatus.Text = "" - 'Change Status ändern |@@| Change Status change - Private Sub Change() - If Not Changed Then - Me.LbStatus.Text = "Unsaved changes in current file" - Changed = True - End If - End Sub + Changed = False - ' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts - Private Function ChangeCheckCancel() As Boolean + Return True + End Function - If Changed Then - Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel) - Case MsgBoxResult.Yes - Return Not SaveOrSaveAs(False) - Case MsgBoxResult.Cancel - Return True - Case Else 'MsgBoxResult.No - Changed = False - Return False - End Select +#Region "Change Events" - Else + 'Change Status ändern |@@| Change Status change + Private Sub Change() + If Not Changed Then + Me.LbStatus.Text = "Unsaved changes in current file" + Changed = True + End If + End Sub - Return False + ' "Save changes ?" ...liefert True wenn User Vorgang abbricht |@@| Save changes? "... Returns True if user aborts + Private Function ChangeCheckCancel() As Boolean - End If + If Changed Then + Select Case MsgBox("Save changes ?", MsgBoxStyle.YesNoCancel) + Case MsgBoxResult.Yes + Return Not SaveOrSaveAs(False) + Case MsgBoxResult.Cancel + Return True + Case Else 'MsgBoxResult.No + Changed = False + Return False + End Select - End Function + Else - Private Sub TbName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbName.TextChanged - Change() - End Sub + Return False - Private Sub TBI_getr_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBI_getr.TextChanged - Change() - End Sub + End If + End Function - Private Sub TbTracInt_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTracInt.TextChanged - Change() - End Sub + Private Sub TbName_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbName.TextChanged + Change() + End Sub - Private Sub ChSkipGears_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChSkipGears.CheckedChanged - CheckEnableTorqRes() - Change() - End Sub + Private Sub TBI_getr_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBI_getr.TextChanged + Change() + End Sub - Private Sub ChShiftInside_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChShiftInside.CheckedChanged - CheckEnableTorqRes() - Change() - End Sub + Private Sub TbTracInt_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTracInt.TextChanged + Change() + End Sub - Private Sub TbTqResv_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResv.TextChanged - Change() - End Sub + Private Sub ChSkipGears_CheckedChanged(sender As System.Object, e As System.EventArgs) _ + Handles ChSkipGears.CheckedChanged + CheckEnableTorqRes() + Change() + End Sub - Private Sub TbShiftTime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbShiftTime.TextChanged - Change() - End Sub + Private Sub ChShiftInside_CheckedChanged(sender As System.Object, e As System.EventArgs) _ + Handles ChShiftInside.CheckedChanged + CheckEnableTorqRes() + Change() + End Sub - Private Sub TbTqResvStart_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResvStart.TextChanged - Change() - End Sub + Private Sub TbTqResv_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResv.TextChanged + Change() + End Sub - Private Sub TbStartSpeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartSpeed.TextChanged - Change() - End Sub + Private Sub TbShiftTime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbShiftTime.TextChanged + Change() + End Sub - Private Sub TbStartAcc_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartAcc.TextChanged - Change() - End Sub + Private Sub TbTqResvStart_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTqResvStart.TextChanged + Change() + End Sub - Private Sub TbTCfile_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCfile.TextChanged - Change() - End Sub + Private Sub TbStartSpeed_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartSpeed.TextChanged + Change() + End Sub - Private Sub TbTCrefrpm_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCrefrpm.TextChanged - Change() - End Sub + Private Sub TbStartAcc_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbStartAcc.TextChanged + Change() + End Sub - Private Sub TbTCinertia_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCinertia.TextChanged - Change() - End Sub + Private Sub TbTCfile_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCfile.TextChanged + Change() + End Sub + Private Sub TbTCrefrpm_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCrefrpm.TextChanged + Change() + End Sub - Private Sub CheckEnableTorqRes() - If Me.ChShiftInside.Checked Or Me.ChSkipGears.Checked Then - Me.PnTorqRes.Enabled = True - Else - Me.PnTorqRes.Enabled = False - End If - End Sub + Private Sub TbTCinertia_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbTCinertia.TextChanged + Change() + End Sub + Private Sub CheckEnableTorqRes() + If Me.ChShiftInside.Checked Or Me.ChSkipGears.Checked Then + Me.PnTorqRes.Enabled = True + Else + Me.PnTorqRes.Enabled = False + End If + End Sub #End Region - 'Save and close - Private Sub ButOK_Click(sender As System.Object, e As System.EventArgs) Handles ButOK.Click - If SaveOrSaveAs(False) Then Me.Close() - End Sub - - 'Cancel - Private Sub ButCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButCancel.Click - Me.Close() - End Sub + 'Save and close + Private Sub ButOK_Click(sender As System.Object, e As System.EventArgs) Handles ButOK.Click + If SaveOrSaveAs(False) Then Me.Close() + End Sub - 'Enable/Disable settings for specific transmission types - Private Sub CbGStype_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbGStype.SelectedIndexChanged - Dim GStype As tGearbox + 'Cancel + Private Sub ButCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButCancel.Click + Me.Close() + End Sub - Change() + 'Enable/Disable settings for specific transmission types + Private Sub CbGStype_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbGStype.SelectedIndexChanged + Dim GStype As tGearbox - GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) + Change() - Me.ChShiftInside.Enabled = (GStype = tGearbox.Custom) - Me.ChSkipGears.Enabled = (GStype = tGearbox.Custom) - Me.ChTCon.Enabled = (GStype = tGearbox.Custom) + GStype = CType(Me.CbGStype.SelectedIndex, tGearbox) - If GStype <> tGearbox.Custom Then - Me.ChShiftInside.Checked = Declaration.ShiftInside(GStype) - Me.ChSkipGears.Checked = Declaration.SkipGears(GStype) - Me.ChTCon.Checked = (GStype = tGearbox.Automatic) - End If + Me.ChShiftInside.Enabled = (GStype = tGearbox.Custom) + Me.ChSkipGears.Enabled = (GStype = tGearbox.Custom) + Me.ChTCon.Enabled = (GStype = tGearbox.Custom) - End Sub + If GStype <> tGearbox.Custom Then + Me.ChShiftInside.Checked = Declaration.ShiftInside(GStype) + Me.ChSkipGears.Checked = Declaration.SkipGears(GStype) + Me.ChTCon.Checked = (GStype = tGearbox.Automatic) + End If + End Sub - Private Sub LvGears_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles LvGears.SelectedIndexChanged - UpdatePic() - End Sub + Private Sub LvGears_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles LvGears.SelectedIndexChanged + UpdatePic() + End Sub #Region "Gears" - 'Gear-DoubleClick - Private Sub LvGears_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LvGears.MouseDoubleClick - EditGear() - End Sub - - 'Gear-KeyDown - Private Sub LvGears_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvGears.KeyDown - Select Case e.KeyCode - Case Keys.Delete, Keys.Back - RemoveGear(False) - Case Keys.Enter - EditGear() - End Select - End Sub - - 'Remove Gear Button - Private Sub BtClearGear_Click(sender As System.Object, e As System.EventArgs) Handles BtRemGear.Click - RemoveGear(False) - End Sub - - 'Add Gear button - Private Sub BtAddGear_Click(sender As System.Object, e As System.EventArgs) Handles BtAddGear.Click - AddGear() - Me.LvGears.Items(Me.LvGears.Items.Count - 1).Selected = True - EditGear() - End Sub - - 'Edit Gear - Private Sub EditGear() - - Do - - GearDia.ChIsTCgear.Enabled = (Me.ChTCon.Checked And Me.LvGears.SelectedIndices(0) > 0) + 'Gear-DoubleClick + Private Sub LvGears_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) _ + Handles LvGears.MouseDoubleClick + EditGear() + End Sub + + 'Gear-KeyDown + Private Sub LvGears_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvGears.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + RemoveGear(False) + Case Keys.Enter + EditGear() + End Select + End Sub + + 'Remove Gear Button + Private Sub BtClearGear_Click(sender As System.Object, e As System.EventArgs) Handles BtRemGear.Click + RemoveGear(False) + End Sub + + 'Add Gear button + Private Sub BtAddGear_Click(sender As System.Object, e As System.EventArgs) Handles BtAddGear.Click + AddGear() + Me.LvGears.Items(Me.LvGears.Items.Count - 1).Selected = True + EditGear() + End Sub + + 'Edit Gear + Private Sub EditGear() + + Do + + GearDia.ChIsTCgear.Enabled = (Me.ChTCon.Checked And Me.LvGears.SelectedIndices(0) > 0) GearDia.PnShiftPoly.Enabled = (Not Cfg.DeclMode And Me.LvGears.SelectedIndices(0) > 0) GearDia.PnFld.Enabled = (Me.LvGears.SelectedIndices(0) > 0) - GearDia.GbxPath = fPATH(GbxFile) + GearDia.GbxPath = fPATH(GbxFile) GearDia.TbGear.Text = Me.LvGears.SelectedItems(0).SubItems(0).Text - GearDia.TbRatio.Text = Me.LvGears.SelectedItems(0).SubItems(2).Text - GearDia.TbMapPath.Text = Me.LvGears.SelectedItems(0).SubItems(3).Text - If Me.LvGears.SelectedIndices(0) > 0 Then - GearDia.ChIsTCgear.Checked = (Me.ChTCon.Checked And Me.LvGears.SelectedItems(0).SubItems(1).Text = "on") - GearDia.TbShiftPolyFile.Text = Me.LvGears.SelectedItems(0).SubItems(4).Text + GearDia.TbRatio.Text = Me.LvGears.SelectedItems(0).SubItems(2).Text + GearDia.TbMapPath.Text = Me.LvGears.SelectedItems(0).SubItems(3).Text + If Me.LvGears.SelectedIndices(0) > 0 Then + GearDia.ChIsTCgear.Checked = (Me.ChTCon.Checked And Me.LvGears.SelectedItems(0).SubItems(1).Text = "on") + GearDia.TbShiftPolyFile.Text = Me.LvGears.SelectedItems(0).SubItems(4).Text GearDia.TbFld.Text = Me.LvGears.SelectedItems(0).SubItems(5).Text Else GearDia.ChIsTCgear.Checked = False @@ -539,100 +537,97 @@ Public Class F_GBX GearDia.TbFld.Text = "" End If - If GearDia.ShowDialog = Windows.Forms.DialogResult.OK Then + If GearDia.ShowDialog = Windows.Forms.DialogResult.OK Then - If GearDia.ChIsTCgear.Checked Then - Me.LvGears.SelectedItems(0).SubItems(1).Text = "on" - Else - If Me.ChTCon.Checked Then - Me.LvGears.SelectedItems(0).SubItems(1).Text = "off" - Else - Me.LvGears.SelectedItems(0).SubItems(1).Text = "-" - End If - End If + If GearDia.ChIsTCgear.Checked Then + Me.LvGears.SelectedItems(0).SubItems(1).Text = "on" + Else + If Me.ChTCon.Checked Then + Me.LvGears.SelectedItems(0).SubItems(1).Text = "off" + Else + Me.LvGears.SelectedItems(0).SubItems(1).Text = "-" + End If + End If - Me.LvGears.SelectedItems(0).SubItems(2).Text = GearDia.TbRatio.Text - Me.LvGears.SelectedItems(0).SubItems(3).Text = GearDia.TbMapPath.Text + Me.LvGears.SelectedItems(0).SubItems(2).Text = GearDia.TbRatio.Text + Me.LvGears.SelectedItems(0).SubItems(3).Text = GearDia.TbMapPath.Text Me.LvGears.SelectedItems(0).SubItems(4).Text = GearDia.TbShiftPolyFile.Text Me.LvGears.SelectedItems(0).SubItems(5).Text = GearDia.TbFld.Text - UpdatePic() - Change() + UpdatePic() + Change() - Else - - If Me.LvGears.SelectedItems(0).SubItems(2).Text = "" Then RemoveGear(True) + Else - End If + If Me.LvGears.SelectedItems(0).SubItems(2).Text = "" Then RemoveGear(True) - If GearDia.NextGear Then - If Me.LvGears.Items.Count - 1 = Me.LvGears.SelectedIndices(0) Then AddGear() + End If - Me.LvGears.Items(Me.LvGears.SelectedIndices(0) + 1).Selected = True - End If + If GearDia.NextGear Then + If Me.LvGears.Items.Count - 1 = Me.LvGears.SelectedIndices(0) Then AddGear() - Loop Until Not GearDia.NextGear + Me.LvGears.Items(Me.LvGears.SelectedIndices(0) + 1).Selected = True + End If - End Sub + Loop Until Not GearDia.NextGear + End Sub - 'Add Gear - Private Sub AddGear() - Dim lvi As ListViewItem + 'Add Gear + Private Sub AddGear() + Dim lvi As ListViewItem - lvi = New ListViewItem(Me.LvGears.Items.Count.ToString("00")) - If Me.ChTCon.Checked Then - lvi.SubItems.Add("off") - Else - lvi.SubItems.Add("-") - End If - lvi.SubItems.Add("") - lvi.SubItems.Add("") + lvi = New ListViewItem(Me.LvGears.Items.Count.ToString("00")) + If Me.ChTCon.Checked Then + lvi.SubItems.Add("off") + Else + lvi.SubItems.Add("-") + End If lvi.SubItems.Add("") lvi.SubItems.Add("") - Me.LvGears.Items.Add(lvi) - - lvi.EnsureVisible() - - Me.LvGears.Focus() + lvi.SubItems.Add("") + lvi.SubItems.Add("") + Me.LvGears.Items.Add(lvi) - 'Change() => NO! Change() is already handled by EditGear + lvi.EnsureVisible() - End Sub + Me.LvGears.Focus() - 'Remove Gear - Private Sub RemoveGear(ByVal NoChange As Boolean) - Dim i0 As Int16 - Dim i As Int16 - Dim lv0 As ListViewItem + 'Change() => NO! Change() is already handled by EditGear + End Sub - If Me.LvGears.Items.Count < 2 Then Exit Sub + 'Remove Gear + Private Sub RemoveGear(ByVal NoChange As Boolean) + Dim i0 As Int16 + Dim i As Int16 + Dim lv0 As ListViewItem - If Me.LvGears.SelectedItems.Count = 0 Then Me.LvGears.Items(Me.LvGears.Items.Count - 1).Selected = True + If Me.LvGears.Items.Count < 2 Then Exit Sub - i0 = Me.LvGears.SelectedItems(0).Index + If Me.LvGears.SelectedItems.Count = 0 Then Me.LvGears.Items(Me.LvGears.Items.Count - 1).Selected = True - If i0 = 0 Then Exit Sub 'Must not remove axle + i0 = Me.LvGears.SelectedItems(0).Index - Me.LvGears.SelectedItems(0).Remove() + If i0 = 0 Then Exit Sub 'Must not remove axle - i = 0 - For Each lv0 In Me.LvGears.Items - If lv0.SubItems(0).Text = "Axle" Then Continue For - i += 1 - lv0.SubItems(0).Text = i.ToString("00") - Next + Me.LvGears.SelectedItems(0).Remove() - If i0 < Me.LvGears.Items.Count Then - Me.LvGears.Items(i0).Selected = True - Me.LvGears.Items(i0).EnsureVisible() - End If + i = 0 + For Each lv0 In Me.LvGears.Items + If lv0.SubItems(0).Text = "Axle" Then Continue For + i += 1 + lv0.SubItems(0).Text = i.ToString("00") + Next - Me.LvGears.Focus() - UpdatePic() + If i0 < Me.LvGears.Items.Count Then + Me.LvGears.Items(i0).Selected = True + Me.LvGears.Items(i0).EnsureVisible() + End If - If Not NoChange Then Change() + Me.LvGears.Focus() + UpdatePic() - End Sub + If Not NoChange Then Change() + End Sub #End Region @@ -640,64 +635,65 @@ Public Class F_GBX #Region "Open File Context Menu" - Private CmFiles As String() + Private CmFiles As String() - Private Sub OpenFiles(ParamArray files() As String) + Private Sub OpenFiles(ParamArray files() As String) - If files.Length = 0 Then Exit Sub + If files.Length = 0 Then Exit Sub - CmFiles = files + CmFiles = files - OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName + OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName - CmOpenFile.Show(Cursor.Position) - - End Sub + CmOpenFile.Show(Cursor.Position) + End Sub - Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenWithToolStripMenuItem.Click - If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") - End Sub + Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles OpenWithToolStripMenuItem.Click + If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") + End Sub - Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ShowInFolderToolStripMenuItem.Click - If IO.File.Exists(CmFiles(0)) Then - Try - System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") - Catch ex As Exception - MsgBox("Failed to open file!") - End Try - Else - MsgBox("File not found!") - End If - End Sub + Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles ShowInFolderToolStripMenuItem.Click + If IO.File.Exists(CmFiles(0)) Then + Try + System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") + Catch ex As Exception + MsgBox("Failed to open file!") + End Try + Else + MsgBox("File not found!") + End If + End Sub #End Region - Private Sub UpdatePic() + Private Sub UpdatePic() - Dim f As cFile_V3 = Nothing - Dim path As String + Dim f As cFile_V3 = Nothing + Dim path As String Dim lM As List(Of Single) = Nothing Dim lup As List(Of Single) = Nothing Dim ldown As List(Of Single) = Nothing - Dim line As String() = Nothing - Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart - Dim s As System.Windows.Forms.DataVisualization.Charting.Series - Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea - Dim img As Image - Dim Gear As Integer + Dim line As String() = Nothing + Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart + Dim s As System.Windows.Forms.DataVisualization.Charting.Series + Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea + Dim img As Image + Dim Gear As Integer Dim fldOK As Boolean = False Dim fldpath As String Dim FLD0 As cFLD = Nothing Dim ShiftOK As Boolean = False Dim Shiftpoly As cGBX.cShiftPolygon - Me.PicBox.Image = Nothing + Me.PicBox.Image = Nothing - Try + Try 'Check Files - If Me.LvGears.Items.Count > 1 Then + If Me.LvGears.Items.Count > 1 Then If Me.LvGears.SelectedItems.Count > 0 AndAlso Me.LvGears.SelectedIndices(0) > 0 Then path = fFileRepl(Me.LvGears.SelectedItems(0).SubItems(4).Text, fPATH(GbxFile)) @@ -709,7 +705,7 @@ Public Class F_GBX Gear = 1 End If - f = New cFile_V3 + f = New cFile_V3 ShiftOK = f.OpenRead(path) If fldpath.Trim = "" Then @@ -724,14 +720,14 @@ Public Class F_GBX fldOK = FLD0.ReadFile(True, False) End If - Else + Else - Exit Sub + Exit Sub - End If + End If - Catch ex As Exception - Exit Sub + Catch ex As Exception + Exit Sub End Try @@ -765,7 +761,6 @@ Public Class F_GBX End If - 'Create plot If Not ShiftOK And Not fldOK Then Exit Sub @@ -835,8 +830,6 @@ Public Class F_GBX End If - - a.Name = "main" a.AxisX.Title = "engine speed [1/min]" @@ -868,58 +861,51 @@ Public Class F_GBX MyChart.DrawToBitmap(img, New Rectangle(0, 0, Me.PicBox.Width, Me.PicBox.Height)) Me.PicBox.Image = img - - End Sub - #Region "Torque Converter" - 'TC on/off - Private Sub ChTCon_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChTCon.CheckedChanged - Change() - CheckGearTC() - PnTC.Enabled = ChTCon.Checked - End Sub - - 'Browse TC file - Private Sub BtTCfileBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtTCfileBrowse.Click - If fbTCC.OpenDialog(fFileRepl(Me.TbTCfile.Text, fPATH(GbxFile))) Then - Me.TbTCfile.Text = fFileWoDir(fbTCC.Files(0), fPATH(GbxFile)) - End If - End Sub + 'TC on/off + Private Sub ChTCon_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChTCon.CheckedChanged + Change() + CheckGearTC() + PnTC.Enabled = ChTCon.Checked + End Sub - 'Open TC file - Private Sub BtTCfileOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtTCfileOpen.Click - OpenFiles(fFileRepl(Me.TbTCfile.Text, fPATH(GbxFile))) - End Sub + 'Browse TC file + Private Sub BtTCfileBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtTCfileBrowse.Click + If fbTCC.OpenDialog(fFileRepl(Me.TbTCfile.Text, fPATH(GbxFile))) Then + Me.TbTCfile.Text = fFileWoDir(fbTCC.Files(0), fPATH(GbxFile)) + End If + End Sub - Private Sub CheckGearTC() - Dim lv0 As ListViewItem + 'Open TC file + Private Sub BtTCfileOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtTCfileOpen.Click + OpenFiles(fFileRepl(Me.TbTCfile.Text, fPATH(GbxFile))) + End Sub - If Not Init Then Exit Sub + Private Sub CheckGearTC() + Dim lv0 As ListViewItem - For Each lv0 In Me.LvGears.Items + If Not Init Then Exit Sub - If lv0.SubItems(0).Text = "Axle" Then Continue For + For Each lv0 In Me.LvGears.Items - If Me.ChTCon.Checked Then - If lv0.Index = 1 Then - lv0.SubItems(1).Text = "on" - Else - lv0.SubItems(1).Text = "off" - End If - Else - lv0.SubItems(1).Text = "-" - End If - Next + If lv0.SubItems(0).Text = "Axle" Then Continue For - End Sub + If Me.ChTCon.Checked Then + If lv0.Index = 1 Then + lv0.SubItems(1).Text = "on" + Else + lv0.SubItems(1).Text = "off" + End If + Else + lv0.SubItems(1).Text = "-" + End If + Next + End Sub #End Region - - - End Class diff --git a/VECTO/GUI/F_Graph.vb b/VECTO/GUI/F_Graph.vb index 923e092879c9cfb834c290661d108494465d57d5..f386389d2d8c91506e0b5a84977161ca1886ef3d 100644 --- a/VECTO/GUI/F_Graph.vb +++ b/VECTO/GUI/F_Graph.vb @@ -12,586 +12,573 @@ Imports System.Collections.Generic Public Class F_Graph + Private Filepath As String + Private Channels As List(Of cChannel) + Private DistList As List(Of Single) + Private TimeList As List(Of Single) - Private Filepath As String - Private Channels As List(Of cChannel) - Private DistList As List(Of Single) - Private TimeList As List(Of Single) + Private xMin As Single + Private xMax As Single - Private xMin As Single - Private xMax As Single + Private xMax0 As Single - Private xMax0 As Single + Public Sub New() - Public Sub New() + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() - ' Dieser Aufruf ist für den Designer erforderlich. - InitializeComponent() + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + Channels = New List(Of cChannel) - ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - Channels = New List(Of cChannel) + Clear() - Clear() + Me.CbXaxis.SelectedIndex = 0 + End Sub - Me.CbXaxis.SelectedIndex = 0 + Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click + If fbVMOD.OpenDialog(Filepath) Then - End Sub + LoadNewFile(fbVMOD.Files(0)) - Private Sub ToolStripBtOpen_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripBtOpen.Click - - If fbVMOD.OpenDialog(Filepath) Then + End If + End Sub - LoadNewFile(fbVMOD.Files(0)) - End If + Private Sub ToolStripButton2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton2.Click + LoadFile() + End Sub - End Sub + Public Sub LoadNewFile(ByVal Path As String) + Dim lv0 As ListViewItem + Dim i As Integer + Clear() - Private Sub ToolStripButton2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton2.Click - LoadFile() - End Sub + Filepath = Path - Public Sub LoadNewFile(ByVal Path As String) - Dim lv0 As ListViewItem - Dim i As Integer + LoadFile() - Clear() + For i = 2 To 3 + lv0 = New ListViewItem + lv0.Text = Channels(i).Name + lv0.SubItems.Add("Left") + lv0.Tag = i + lv0.Checked = True + Me.ListView1.Items.Add(lv0) + Next + End Sub - Filepath = Path + Private Sub LoadFile() + Dim file As cFile_V3 + Dim i As Integer + Dim sDim As Integer + Dim line As String() + Dim c0 As cChannel + Dim l0 As List(Of String) - LoadFile() - For i = 2 To 3 - lv0 = New ListViewItem - lv0.Text = Channels(i).Name - lv0.SubItems.Add("Left") - lv0.Tag = i - lv0.Checked = True - Me.ListView1.Items.Add(lv0) - Next + file = New cFile_V3 - End Sub + If file.OpenRead(Filepath) Then - Private Sub LoadFile() - Dim file As cFile_V3 - Dim i As Integer - Dim sDim As Integer - Dim line As String() - Dim c0 As cChannel - Dim l0 As List(Of String) + Try + Channels.Clear() - file = New cFile_V3 + 'Header + line = file.ReadLine - If file.OpenRead(Filepath) Then + sDim = UBound(line) - Try + For i = 0 To sDim + c0 = New cChannel + c0.Name = line(i) + c0.Values = New List(Of String) + Channels.Add(c0) + Next - Channels.Clear() + 'Values + Do While Not file.EndOfFile + line = file.ReadLine + For i = 0 To sDim + Channels(i).Values.Add(line(i)) + Next + Loop - 'Header - line = file.ReadLine + file.Close() - sDim = UBound(line) + l0 = Channels(0).Values + TimeList = New List(Of Single) + For i = 0 To l0.Count - 1 + TimeList.Add(CSng(l0(i))) + Next - For i = 0 To sDim - c0 = New cChannel - c0.Name = line(i) - c0.Values = New List(Of String) - Channels.Add(c0) - Next + l0 = Channels(1).Values + DistList = New List(Of Single) + For i = 0 To l0.Count - 1 + DistList.Add(CSng(l0(i))) + Next - 'Values - Do While Not file.EndOfFile - line = file.ReadLine - For i = 0 To sDim - Channels(i).Values.Add(line(i)) - Next - Loop + SetxMax0() - file.Close() + Me.TbXmin.Text = 0 + Me.TbXmax.Text = xMax0 - l0 = Channels(0).Values - TimeList = New List(Of Single) - For i = 0 To l0.Count - 1 - TimeList.Add(CSng(l0(i))) - Next + Me.Text = fFILE(Filepath, True) - l0 = Channels(1).Values - DistList = New List(Of Single) - For i = 0 To l0.Count - 1 - DistList.Add(CSng(l0(i))) - Next + Catch ex As Exception + file.Close() + Exit Sub + End Try - SetxMax0() + End If - Me.TbXmin.Text = 0 - Me.TbXmax.Text = xMax0 + UpdateGraph() + End Sub - Me.Text = fFILE(Filepath, True) + Private Sub SetxMax0() - Catch ex As Exception - file.Close() - Exit Sub - End Try + If Channels.Count = 0 Then Exit Sub - End If + If Me.CbXaxis.SelectedIndex = 0 Then + xMax0 = DistList(DistList.Count - 1) + Else + xMax0 = TimeList(TimeList.Count - 1) + End If + End Sub - UpdateGraph() + Private Sub UpdateGraph() + Dim lv0 As ListViewItem + Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart + Dim s As System.Windows.Forms.DataVisualization.Charting.Series + Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea + Dim OverDist As Boolean + Dim leftaxis As New List(Of String) + Dim rightaxis As New List(Of String) + Dim IsLeft As Boolean + Dim txt As String + Dim i As Integer + Dim img As Image - End Sub + If Me.WindowState = FormWindowState.Minimized Then Exit Sub - Private Sub SetxMax0() + If Me.ListView1.CheckedItems.Count = 0 Then + Me.PictureBox1.Image = Nothing + Exit Sub + End If - If Channels.Count = 0 Then Exit Sub + OverDist = (Me.CbXaxis.SelectedIndex = 0) - If Me.CbXaxis.SelectedIndex = 0 Then - xMax0 = DistList(DistList.Count - 1) - Else - xMax0 = TimeList(TimeList.Count - 1) - End If + SetxMax0() - End Sub - Private Sub UpdateGraph() - Dim lv0 As ListViewItem - Dim MyChart As System.Windows.Forms.DataVisualization.Charting.Chart - Dim s As System.Windows.Forms.DataVisualization.Charting.Series - Dim a As System.Windows.Forms.DataVisualization.Charting.ChartArea - Dim OverDist As Boolean - Dim leftaxis As New List(Of String) - Dim rightaxis As New List(Of String) - Dim IsLeft As Boolean - Dim txt As String - Dim i As Integer - Dim img As Image + MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart + MyChart.Width = Me.PictureBox1.Width + MyChart.Height = Me.PictureBox1.Height - If Me.WindowState = FormWindowState.Minimized Then Exit Sub + a = New System.Windows.Forms.DataVisualization.Charting.ChartArea - If Me.ListView1.CheckedItems.Count = 0 Then - Me.PictureBox1.Image = Nothing - Exit Sub - End If - OverDist = (Me.CbXaxis.SelectedIndex = 0) + For Each lv0 In Me.ListView1.CheckedItems - SetxMax0() + IsLeft = (lv0.SubItems(1).Text = "Left") + s = New System.Windows.Forms.DataVisualization.Charting.Series - MyChart = New System.Windows.Forms.DataVisualization.Charting.Chart - MyChart.Width = Me.PictureBox1.Width - MyChart.Height = Me.PictureBox1.Height + If OverDist Then + s.Points.DataBindXY(DistList, Channels(lv0.Tag).Values) + Else + s.Points.DataBindXY(TimeList, Channels(lv0.Tag).Values) + End If - a = New System.Windows.Forms.DataVisualization.Charting.ChartArea + s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine + s.Name = lv0.Text + s.BorderWidth = 2 + If IsLeft Then + If Not leftaxis.Contains(lv0.SubItems(0).Text) Then leftaxis.Add(lv0.SubItems(0).Text) + Else + If Not rightaxis.Contains(lv0.SubItems(0).Text) Then rightaxis.Add(lv0.SubItems(0).Text) + s.YAxisType = DataVisualization.Charting.AxisType.Secondary + End If - For Each lv0 In Me.ListView1.CheckedItems + MyChart.Series.Add(s) - IsLeft = (lv0.SubItems(1).Text = "Left") + Next - s = New System.Windows.Forms.DataVisualization.Charting.Series - If OverDist Then - s.Points.DataBindXY(DistList, Channels(lv0.Tag).Values) - Else - s.Points.DataBindXY(TimeList, Channels(lv0.Tag).Values) - End If + a.Name = "main" - s.ChartType = DataVisualization.Charting.SeriesChartType.FastLine - s.Name = lv0.Text - s.BorderWidth = 2 + If OverDist Then + a.AxisX.Title = "distance [km]" + Else + a.AxisX.Title = "time [s]" + End If + a.AxisX.TitleFont = New Font("Helvetica", 10) + a.AxisX.LabelStyle.Font = New Font("Helvetica", 8) + a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisX.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot - If IsLeft Then - If Not leftaxis.Contains(lv0.SubItems(0).Text) Then leftaxis.Add(lv0.SubItems(0).Text) - Else - If Not rightaxis.Contains(lv0.SubItems(0).Text) Then rightaxis.Add(lv0.SubItems(0).Text) - s.YAxisType = DataVisualization.Charting.AxisType.Secondary - End If + If xMax > xMin Then + a.AxisX.Minimum = xMin + a.AxisX.Maximum = xMax + a.AxisX.Interval = xAutoInt() + Else + a.AxisX.Minimum = 0 + a.AxisX.Maximum = xMax0 + End If - MyChart.Series.Add(s) - Next + If leftaxis.Count > 0 Then + txt = leftaxis(0) + For i = 1 To leftaxis.Count - 1 + txt &= ", " & leftaxis(i) + Next - a.Name = "main" + a.AxisY.Title = txt + a.AxisY.TitleFont = New Font("Helvetica", 10) + a.AxisY.LabelStyle.Font = New Font("Helvetica", 8) + a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None - If OverDist Then - a.AxisX.Title = "distance [km]" - Else - a.AxisX.Title = "time [s]" - End If - a.AxisX.TitleFont = New Font("Helvetica", 10) - a.AxisX.LabelStyle.Font = New Font("Helvetica", 8) - a.AxisX.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None - a.AxisX.MajorGrid.LineDashStyle = DataVisualization.Charting.ChartDashStyle.Dot + End If - If xMax > xMin Then - a.AxisX.Minimum = xMin - a.AxisX.Maximum = xMax - a.AxisX.Interval = xAutoInt() - Else - a.AxisX.Minimum = 0 - a.AxisX.Maximum = xMax0 - End If + If rightaxis.Count > 0 Then + txt = rightaxis(0) + For i = 1 To rightaxis.Count - 1 + txt &= ", " & rightaxis(i) + Next + a.AxisY2.Title = txt + a.AxisY2.TitleFont = New Font("Helvetica", 10) + a.AxisY2.LabelStyle.Font = New Font("Helvetica", 8) + a.AxisY2.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.AxisY2.MinorGrid.Enabled = False + a.AxisY2.MajorGrid.Enabled = False - If leftaxis.Count > 0 Then + End If - txt = leftaxis(0) - For i = 1 To leftaxis.Count - 1 - txt &= ", " & leftaxis(i) - Next + a.BackColor = Color.GhostWhite - a.AxisY.Title = txt - a.AxisY.TitleFont = New Font("Helvetica", 10) - a.AxisY.LabelStyle.Font = New Font("Helvetica", 8) - a.AxisY.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None + a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid + a.BorderWidth = 1 - End If + MyChart.ChartAreas.Add(a) - If rightaxis.Count > 0 Then + With MyChart.ChartAreas(0) + .Position.X = 0 + .Position.Y = 0 + .Position.Width = 85 + .Position.Height = 100 + End With - txt = rightaxis(0) - For i = 1 To rightaxis.Count - 1 - txt &= ", " & rightaxis(i) - Next + MyChart.Legends.Add("main") + MyChart.Legends(0).Font = New Font("Helvetica", 8) + MyChart.Legends(0).BorderColor = Color.Black + MyChart.Legends(0).BorderWidth = 1 + MyChart.Legends(0).Position.X = 86 + MyChart.Legends(0).Position.Y = 3 + MyChart.Legends(0).Position.Width = 13 + MyChart.Legends(0).Position.Height = 40 + + MyChart.Update() + + img = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) + MyChart.DrawToBitmap(img, New Rectangle(0, 0, Me.PictureBox1.Width, Me.PictureBox1.Height)) - a.AxisY2.Title = txt - a.AxisY2.TitleFont = New Font("Helvetica", 10) - a.AxisY2.LabelStyle.Font = New Font("Helvetica", 8) - a.AxisY2.LabelAutoFitStyle = DataVisualization.Charting.LabelAutoFitStyles.None - a.AxisY2.MinorGrid.Enabled = False - a.AxisY2.MajorGrid.Enabled = False + Me.PictureBox1.Image = img + End Sub - End If + Private Function xAutoInt() As Single + Dim Interv0 As Single + Dim Grx As Long + Dim xyd(3) As Single + Dim xydmin As Single + Dim xyamin As Single + Dim xya(3) As Single + Dim i As Int16 - a.BackColor = Color.GhostWhite + Interv0 = (xMax - xMin)/10 - a.BorderDashStyle = DataVisualization.Charting.ChartDashStyle.Solid - a.BorderWidth = 1 + Grx = 20 + Do While 10^Grx > Interv0 + Grx = Grx - 1 + Loop + + xyd(0) = 1*10^Grx + xyd(1) = 2.5*10^Grx + xyd(2) = 5*10^Grx + xyd(3) = 10*10^Grx + For i = 0 To 3 + xya(i) = Math.Abs(Interv0 - xyd(i)) + Next + + xyamin = xya(0) + xydmin = xyd(0) + For i = 1 To 3 + If xya(i) < xyamin Then + xyamin = xya(i) + xydmin = xyd(i) + End If + Next - MyChart.ChartAreas.Add(a) + 'Intervall speichern + Return xydmin + End Function - With MyChart.ChartAreas(0) - .Position.X = 0 - .Position.Y = 0 - .Position.Width = 85 - .Position.Height = 100 - End With + Private Sub Clear() - MyChart.Legends.Add("main") - MyChart.Legends(0).Font = New Font("Helvetica", 8) - MyChart.Legends(0).BorderColor = Color.Black - MyChart.Legends(0).BorderWidth = 1 - MyChart.Legends(0).Position.X = 86 - MyChart.Legends(0).Position.Y = 3 - MyChart.Legends(0).Position.Width = 13 - MyChart.Legends(0).Position.Height = 40 + Filepath = "" - MyChart.Update() + Me.ListView1.Items.Clear() - img = New Bitmap(MyChart.Width, MyChart.Height, Imaging.PixelFormat.Format32bppArgb) - MyChart.DrawToBitmap(img, New Rectangle(0, 0, Me.PictureBox1.Width, Me.PictureBox1.Height)) + Me.TbXmin.Text = "" + Me.TbXmax.Text = "" - Me.PictureBox1.Image = img + Me.PictureBox1.Image = Nothing + End Sub - End Sub + Private Class cChannel + Public Name As String + Public Values As List(Of String) + End Class - Private Function xAutoInt() As Single - Dim Interv0 As Single - Dim Grx As Long - Dim xyd(3) As Single - Dim xydmin As Single - Dim xyamin As Single - Dim xya(3) As Single - Dim i As Int16 + Private Sub BtAddCh_Click(sender As System.Object, e As System.EventArgs) Handles BtAddCh.Click + Dim dlog As New F_Graph_ChEdit + Dim i As Integer + Dim lv0 As ListViewItem - Interv0 = (xMax - xMin) / 10 + If Channels.Count = 0 Then Exit Sub - Grx = 20 - Do While 10 ^ Grx > Interv0 - Grx = Grx - 1 - Loop + For i = 0 To Channels.Count - 1 + dlog.ComboBox1.Items.Add(Channels(i).Name) + Next - xyd(0) = 1 * 10 ^ Grx - xyd(1) = 2.5 * 10 ^ Grx - xyd(2) = 5 * 10 ^ Grx - xyd(3) = 10 * 10 ^ Grx - For i = 0 To 3 - xya(i) = Math.Abs(Interv0 - xyd(i)) - Next + dlog.RbLeft.Checked = True - xyamin = xya(0) - xydmin = xyd(0) - For i = 1 To 3 - If xya(i) < xyamin Then - xyamin = xya(i) - xydmin = xyd(i) - End If - Next + dlog.ComboBox1.SelectedIndex = 0 - 'Intervall speichern - Return xydmin + If dlog.ShowDialog = Windows.Forms.DialogResult.OK Then + lv0 = New ListViewItem + i = dlog.ComboBox1.SelectedIndex + lv0.Text = Channels(i).Name + lv0.Tag = i + lv0.Checked = True + If dlog.RbLeft.Checked Then + lv0.SubItems.Add("Left") + Else + lv0.SubItems.Add("Right") + End If + + Me.ListView1.Items.Add(lv0) + + UpdateGraph() + + End If + End Sub + + Private Sub EditChannel() + Dim dlog As New F_Graph_ChEdit + Dim i As Integer + Dim lv0 As ListViewItem + + If Me.ListView1.SelectedItems.Count = 0 Or Channels.Count = 0 Then Exit Sub + + lv0 = Me.ListView1.SelectedItems(0) + + For i = 0 To Channels.Count - 1 + dlog.ComboBox1.Items.Add(Channels(i).Name) + Next + + If lv0.SubItems(1).Text = "Left" Then + dlog.RbLeft.Checked = True + Else + dlog.RbRight.Checked = True + End If + + dlog.ComboBox1.SelectedIndex = lv0.Tag + + If dlog.ShowDialog = Windows.Forms.DialogResult.OK Then + i = dlog.ComboBox1.SelectedIndex + lv0.Text = Channels(i).Name + lv0.Tag = i + lv0.Checked = True + If dlog.RbLeft.Checked Then + lv0.SubItems(1).Text = "Left" + Else + lv0.SubItems(1).Text = "Right" + End If + + UpdateGraph() + + End If + End Sub + + Private Sub RemoveChannel() + Dim i0 As Int16 - End Function + If Me.ListView1.Items.Count = 0 Then Exit Sub - Private Sub Clear() + If Me.ListView1.SelectedItems.Count = 0 Then Me.ListView1.Items(Me.ListView1.Items.Count - 1).Selected = True - Filepath = "" + i0 = Me.ListView1.SelectedItems(0).Index - Me.ListView1.Items.Clear() + Me.ListView1.SelectedItems(0).Remove() - Me.TbXmin.Text = "" - Me.TbXmax.Text = "" + If i0 < Me.ListView1.Items.Count Then + Me.ListView1.Items(i0).Selected = True + Me.ListView1.Items(i0).EnsureVisible() + End If - Me.PictureBox1.Image = Nothing - End Sub + UpdateGraph() + End Sub - Private Class cChannel - Public Name As String - Public Values As List(Of String) - - End Class - - Private Sub BtAddCh_Click(sender As System.Object, e As System.EventArgs) Handles BtAddCh.Click - Dim dlog As New F_Graph_ChEdit - Dim i As Integer - Dim lv0 As ListViewItem - - If Channels.Count = 0 Then Exit Sub - - For i = 0 To Channels.Count - 1 - dlog.ComboBox1.Items.Add(Channels(i).Name) - Next - - dlog.RbLeft.Checked = True - - dlog.ComboBox1.SelectedIndex = 0 - - If dlog.ShowDialog = Windows.Forms.DialogResult.OK Then - lv0 = New ListViewItem - i = dlog.ComboBox1.SelectedIndex - lv0.Text = Channels(i).Name - lv0.Tag = i - lv0.Checked = True - If dlog.RbLeft.Checked Then - lv0.SubItems.Add("Left") - Else - lv0.SubItems.Add("Right") - End If - - Me.ListView1.Items.Add(lv0) - - UpdateGraph() - - End If - - End Sub - - Private Sub EditChannel() - Dim dlog As New F_Graph_ChEdit - Dim i As Integer - Dim lv0 As ListViewItem - - If Me.ListView1.SelectedItems.Count = 0 Or Channels.Count = 0 Then Exit Sub - - lv0 = Me.ListView1.SelectedItems(0) - - For i = 0 To Channels.Count - 1 - dlog.ComboBox1.Items.Add(Channels(i).Name) - Next - - If lv0.SubItems(1).Text = "Left" Then - dlog.RbLeft.Checked = True - Else - dlog.RbRight.Checked = True - End If - - dlog.ComboBox1.SelectedIndex = lv0.Tag - - If dlog.ShowDialog = Windows.Forms.DialogResult.OK Then - i = dlog.ComboBox1.SelectedIndex - lv0.Text = Channels(i).Name - lv0.Tag = i - lv0.Checked = True - If dlog.RbLeft.Checked Then - lv0.SubItems(1).Text = "Left" - Else - lv0.SubItems(1).Text = "Right" - End If - - UpdateGraph() - - End If - - End Sub - - Private Sub RemoveChannel() - Dim i0 As Int16 - - If Me.ListView1.Items.Count = 0 Then Exit Sub - - If Me.ListView1.SelectedItems.Count = 0 Then Me.ListView1.Items(Me.ListView1.Items.Count - 1).Selected = True - - i0 = Me.ListView1.SelectedItems(0).Index - - Me.ListView1.SelectedItems(0).Remove() - - If i0 < Me.ListView1.Items.Count Then - Me.ListView1.Items(i0).Selected = True - Me.ListView1.Items(i0).EnsureVisible() - End If - - UpdateGraph() - - End Sub - - Private Sub ListView1_DoubleClick(sender As Object, e As System.EventArgs) Handles ListView1.DoubleClick - If Me.ListView1.SelectedItems.Count > 0 Then - Me.ListView1.SelectedItems(0).Checked = Not Me.ListView1.SelectedItems(0).Checked - EditChannel() - End If - End Sub - - Private Sub BtRemCh_Click(sender As System.Object, e As System.EventArgs) Handles BtRemCh.Click - RemoveChannel() - End Sub - - Private Sub ListView1_ItemChecked(sender As Object, e As System.Windows.Forms.ItemCheckedEventArgs) Handles ListView1.ItemChecked - UpdateGraph() - End Sub - - Private Sub ListView1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles ListView1.KeyDown - Select Case e.KeyCode - Case Keys.Delete, Keys.Back - RemoveChannel() - Case Keys.Enter - EditChannel() - End Select - End Sub - - Private Sub CbXaxis_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbXaxis.SelectedIndexChanged - SetxMax0() - Me.TbXmin.Text = 0 - Me.TbXmax.Text = xMax0 - UpdateGraph() - End Sub - - Private Sub BtReset_Click(sender As System.Object, e As System.EventArgs) Handles BtReset.Click - xMin = 0 - xMax = xMax0 - Me.TbXmin.Text = 0 - Me.TbXmax.Text = xMax0 - End Sub - - Private Sub TbXmin_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbXmin.TextChanged - If IsNumeric(Me.TbXmin.Text) Then xMin = Me.TbXmin.Text - UpdateGraph() - End Sub - - Private Sub TbXmax_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbXmax.TextChanged - If IsNumeric(Me.TbXmax.Text) Then xMax = Me.TbXmax.Text - UpdateGraph() - End Sub - - Private Sub ToolStripButton3_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton3.Click - Dim FGraph As New F_Graph - FGraph.Show() - End Sub - - Private Sub F_Graph_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged - UpdateGraph() - End Sub - - Private Sub BtZoomIn_Click(sender As System.Object, e As System.EventArgs) Handles BtZoomIn.Click - Dim d As Single - - d = (xMax - xMin) / 10 - - xMin += 2 * 0.5 * d - xMax -= 2 * (1 - 0.5) * d - - If xMin > 1000 Then - xMin = Math.Round(xMin / 100, 0) * 100 - Else - xMin = Math.Round(xMin, 0) - End If - - Me.TbXmin.Text = xMin - Me.TbXmax.Text = xMax - - End Sub - - Private Sub BtZoomOut_Click(sender As System.Object, e As System.EventArgs) Handles BtZoomOut.Click - Dim d As Single - - d = (xMax - xMin) / 10 - - xMin -= 2 * 0.5 * d - xMax += 2 * (1 - 0.5) * d - - If xMin > 1000 Then - xMin = Math.Round(xMin / 100, 0) * 100 - Else - xMin = Math.Round(xMin, 0) - End If - - Me.TbXmin.Text = xMin - Me.TbXmax.Text = xMax - - End Sub - - Private Sub BtMoveL_Click(sender As System.Object, e As System.EventArgs) Handles BtMoveL.Click - Dim d As Single - - If xMin <= 0 Then Exit Sub - - d = (xMax - xMin) / 3 - xMin -= d - xMax -= d - - If xMin > 1000 Then - xMin = Math.Round(xMin / 100, 0) * 100 - Else - xMin = Math.Round(xMin, 0) - End If - - Me.TbXmin.Text = xMin - Me.TbXmax.Text = xMax - - - End Sub - - Private Sub BtMoveR_Click(sender As System.Object, e As System.EventArgs) Handles BtMoveR.Click - Dim d As Single - - If xMax >= xMax0 Then Exit Sub - - d = (xMax - xMin) / 3 - xMin += d - xMax += d - - If xMin > 1000 Then - xMin = Math.Round(xMin / 100, 0) * 100 - Else - xMin = Math.Round(xMin, 0) - End If - - Me.TbXmin.Text = xMin - Me.TbXmax.Text = xMax - - End Sub - - Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\Graph.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\Graph.html") - Else - MsgBox("User Manual not found!", MsgBoxStyle.Critical) - End If - End Sub + Private Sub ListView1_DoubleClick(sender As Object, e As System.EventArgs) Handles ListView1.DoubleClick + If Me.ListView1.SelectedItems.Count > 0 Then + Me.ListView1.SelectedItems(0).Checked = Not Me.ListView1.SelectedItems(0).Checked + EditChannel() + End If + End Sub + + Private Sub BtRemCh_Click(sender As System.Object, e As System.EventArgs) Handles BtRemCh.Click + RemoveChannel() + End Sub + + Private Sub ListView1_ItemChecked(sender As Object, e As System.Windows.Forms.ItemCheckedEventArgs) _ + Handles ListView1.ItemChecked + UpdateGraph() + End Sub + + Private Sub ListView1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles ListView1.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + RemoveChannel() + Case Keys.Enter + EditChannel() + End Select + End Sub + + Private Sub CbXaxis_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbXaxis.SelectedIndexChanged + SetxMax0() + Me.TbXmin.Text = 0 + Me.TbXmax.Text = xMax0 + UpdateGraph() + End Sub + Private Sub BtReset_Click(sender As System.Object, e As System.EventArgs) Handles BtReset.Click + xMin = 0 + xMax = xMax0 + Me.TbXmin.Text = 0 + Me.TbXmax.Text = xMax0 + End Sub + + Private Sub TbXmin_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbXmin.TextChanged + If IsNumeric(Me.TbXmin.Text) Then xMin = Me.TbXmin.Text + UpdateGraph() + End Sub + + Private Sub TbXmax_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbXmax.TextChanged + If IsNumeric(Me.TbXmax.Text) Then xMax = Me.TbXmax.Text + UpdateGraph() + End Sub + + Private Sub ToolStripButton3_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton3.Click + Dim FGraph As New F_Graph + FGraph.Show() + End Sub + + Private Sub F_Graph_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged + UpdateGraph() + End Sub + + Private Sub BtZoomIn_Click(sender As System.Object, e As System.EventArgs) Handles BtZoomIn.Click + Dim d As Single + + d = (xMax - xMin)/10 + + xMin += 2*0.5*d + xMax -= 2*(1 - 0.5)*d + + If xMin > 1000 Then + xMin = Math.Round(xMin/100, 0)*100 + Else + xMin = Math.Round(xMin, 0) + End If + + Me.TbXmin.Text = xMin + Me.TbXmax.Text = xMax + End Sub + + Private Sub BtZoomOut_Click(sender As System.Object, e As System.EventArgs) Handles BtZoomOut.Click + Dim d As Single + + d = (xMax - xMin)/10 + + xMin -= 2*0.5*d + xMax += 2*(1 - 0.5)*d + + If xMin > 1000 Then + xMin = Math.Round(xMin/100, 0)*100 + Else + xMin = Math.Round(xMin, 0) + End If + + Me.TbXmin.Text = xMin + Me.TbXmax.Text = xMax + End Sub + + Private Sub BtMoveL_Click(sender As System.Object, e As System.EventArgs) Handles BtMoveL.Click + Dim d As Single + + If xMin <= 0 Then Exit Sub + + d = (xMax - xMin)/3 + xMin -= d + xMax -= d + + If xMin > 1000 Then + xMin = Math.Round(xMin/100, 0)*100 + Else + xMin = Math.Round(xMin, 0) + End If + + Me.TbXmin.Text = xMin + Me.TbXmax.Text = xMax + End Sub + + Private Sub BtMoveR_Click(sender As System.Object, e As System.EventArgs) Handles BtMoveR.Click + Dim d As Single + + If xMax >= xMax0 Then Exit Sub + + d = (xMax - xMin)/3 + xMin += d + xMax += d + + If xMin > 1000 Then + xMin = Math.Round(xMin/100, 0)*100 + Else + xMin = Math.Round(xMin, 0) + End If + + Me.TbXmin.Text = xMin + Me.TbXmax.Text = xMax + End Sub + + Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#graph-window")) + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub End Class \ No newline at end of file diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb index de3579a1ef214f88f3b3661d267d7e1d3851f453..d4dfd54c5f1e070cb0e2df101308b32d8b703983 100644 --- a/VECTO/GUI/F_MAINForm.vb +++ b/VECTO/GUI/F_MAINForm.vb @@ -1374,8 +1374,12 @@ Imports TUGraz.VectoCore.Utils Private Sub UserManualToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ Handles UserManualToolStripMenuItem.Click - If IO.File.Exists(MyAppPath & "User Manual\usermanual.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\usermanual.html") + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, Uri.EscapeDataString(MyAppPath & "User Manual\help.html")) Else MsgBox("User Manual not found!", MsgBoxStyle.Critical) End If diff --git a/VECTO/GUI/F_Settings.vb b/VECTO/GUI/F_Settings.vb index a98a93b9448c86c405d3859250a8a3425986f277..3cc4f3f534467d0b61fe35c205f7bd0300b97731 100644 --- a/VECTO/GUI/F_Settings.vb +++ b/VECTO/GUI/F_Settings.vb @@ -14,66 +14,70 @@ ''' </summary> ''' <remarks></remarks> Public Class F_Settings - - 'Initialize - load config - Private Sub F03_Options_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - - LoadSettings() - - End Sub - - Private Sub LoadSettings() - - Me.TextBoxLogSize.Text = Cfg.LogSize - Me.TbAirDensity.Text = CStr(Cfg.AirDensity) - Me.TbOpenCmd.Text = Cfg.OpenCmd - Me.TbOpenCmdName.Text = Cfg.OpenCmdName - Me.TbFuelDens.Text = Cfg.FuelDens.ToString - Me.TbCO2toFC.Text = Cfg.CO2perFC.ToString - - Me.GrCalc.Enabled = Not Cfg.DeclMode - - End Sub - - - 'Reset Button - Private Sub ButReset_Click(sender As System.Object, e As System.EventArgs) Handles ButReset.Click - If MsgBox("This will reset all application settings including the Options Tab. Filehistory will not be deleted." & vbCrLf & vbCrLf & "Continue ?", MsgBoxStyle.YesNo, "Reset Application Settings") = MsgBoxResult.Yes Then - Cfg.SetDefault() - If Cfg.DeclMode Then Cfg.DeclInit() - F_MAINForm.LoadOptions() - LoadSettings() - Me.Close() - End If - End Sub - - 'Save and close - Private Sub ButtonOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOK.Click - Cfg.LogSize = CSng(Me.TextBoxLogSize.Text) - Cfg.AirDensity = CSng(Me.TbAirDensity.Text) - Cfg.OpenCmd = Me.TbOpenCmd.Text - Cfg.OpenCmdName = Me.TbOpenCmdName.Text - Cfg.FuelDens = CSng(Me.TbFuelDens.Text) - Cfg.CO2perFC = CSng(Me.TbCO2toFC.Text) - '---------------------------------------------------- - - Cfg.ConfigSAVE() - - Me.Close() - End Sub - - 'Cancel - Private Sub ButtonCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCancel.Click - Me.Close() - End Sub - - 'Help button - Private Sub BtHelp_Click(sender As System.Object, e As System.EventArgs) Handles BtHelp.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\settings.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\settings.html") - Else - MsgBox("User Manual not found!", MsgBoxStyle.Critical) - End If - End Sub - + 'Initialize - load config + Private Sub F03_Options_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + + LoadSettings() + End Sub + + Private Sub LoadSettings() + + Me.TextBoxLogSize.Text = Cfg.LogSize + Me.TbAirDensity.Text = CStr(Cfg.AirDensity) + Me.TbOpenCmd.Text = Cfg.OpenCmd + Me.TbOpenCmdName.Text = Cfg.OpenCmdName + Me.TbFuelDens.Text = Cfg.FuelDens.ToString + Me.TbCO2toFC.Text = Cfg.CO2perFC.ToString + + Me.GrCalc.Enabled = Not Cfg.DeclMode + End Sub + + + 'Reset Button + Private Sub ButReset_Click(sender As System.Object, e As System.EventArgs) Handles ButReset.Click + If _ + MsgBox( + "This will reset all application settings including the Options Tab. Filehistory will not be deleted." & vbCrLf & + vbCrLf & "Continue ?", MsgBoxStyle.YesNo, "Reset Application Settings") = MsgBoxResult.Yes Then + Cfg.SetDefault() + If Cfg.DeclMode Then Cfg.DeclInit() + F_MAINForm.LoadOptions() + LoadSettings() + Me.Close() + End If + End Sub + + 'Save and close + Private Sub ButtonOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOK.Click + Cfg.LogSize = CSng(Me.TextBoxLogSize.Text) + Cfg.AirDensity = CSng(Me.TbAirDensity.Text) + Cfg.OpenCmd = Me.TbOpenCmd.Text + Cfg.OpenCmdName = Me.TbOpenCmdName.Text + Cfg.FuelDens = CSng(Me.TbFuelDens.Text) + Cfg.CO2perFC = CSng(Me.TbCO2toFC.Text) + '---------------------------------------------------- + + Cfg.ConfigSAVE() + + Me.Close() + End Sub + + 'Cancel + Private Sub ButtonCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCancel.Click + Me.Close() + End Sub + + 'Help button + Private Sub BtHelp_Click(sender As System.Object, e As System.EventArgs) Handles BtHelp.Click + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#settings")) + Else + MsgBox("User Manual not found!", MsgBoxStyle.Critical) + End If + End Sub End Class diff --git a/VECTO/GUI/F_VECTO.vb b/VECTO/GUI/F_VECTO.vb index c176552cdbdba0d60bce744a7da9274a82cb10f1..e0d6b3e1cbcaf70f501199b39c2df8d100f7e697 100644 --- a/VECTO/GUI/F_VECTO.vb +++ b/VECTO/GUI/F_VECTO.vb @@ -16,7 +16,6 @@ Imports System.Collections.Generic ''' </summary> ''' <remarks></remarks> Public Class F_VECTO - Private VECTOfile As String Private Changed As Boolean = False @@ -35,7 +34,7 @@ Public Class F_VECTO Private Sub F02_GEN_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim x As Int16 - n_idle = -1 + n_idle = - 1 FLDfile = "" AuxDlog = New F_VEH_AuxDlog @@ -46,7 +45,7 @@ Public Class F_VECTO Me.TabControl1.TabPages(x).Show() Next - Me.LvAux.Columns(2).Width = -2 + Me.LvAux.Columns(2).Width = - 2 'Declaration Mode If Cfg.DeclMode Then @@ -66,11 +65,11 @@ Public Class F_VECTO Me.PnEcoRoll.Enabled = Not Cfg.DeclMode Changed = False - End Sub 'Close - Check for unsaved changes - Private Sub F02_GEN_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + Private Sub F02_GEN_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) _ + Handles Me.FormClosing If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then e.Cancel = ChangeCheckCancel() End If @@ -98,7 +97,11 @@ Public Class F_VECTO Me.TbUnderSpeed.Text = cDeclaration.Underspeed Me.TbVmin.Text = cDeclaration.ECvmin - If LvAux.Items.Count <> 5 OrElse (Me.LvAux.Items(0).Text <> sKey.AUX.Fan OrElse Me.LvAux.Items(1).Text <> sKey.AUX.SteerPump OrElse Me.LvAux.Items(2).Text <> sKey.AUX.HVAC OrElse Me.LvAux.Items(3).Text <> sKey.AUX.ElecSys OrElse Me.LvAux.Items(4).Text <> sKey.AUX.PneumSys) Then + If _ + LvAux.Items.Count <> 5 OrElse + (Me.LvAux.Items(0).Text <> sKey.AUX.Fan OrElse Me.LvAux.Items(1).Text <> sKey.AUX.SteerPump OrElse + Me.LvAux.Items(2).Text <> sKey.AUX.HVAC OrElse Me.LvAux.Items(3).Text <> sKey.AUX.ElecSys OrElse + Me.LvAux.Items(4).Text <> sKey.AUX.PneumSys) Then Me.LvAux.Items.Clear() LV0 = New ListViewItem(sKey.AUX.Fan) @@ -147,8 +150,6 @@ Public Class F_VECTO Me.LvAux.Items.Add(LV0) End If - - End Sub @@ -171,19 +172,23 @@ Public Class F_VECTO #Region "Browse Buttons" Private Sub ButtonVEH_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonVEH.Click - If fbVEH.OpenDialog(fFileRepl(Me.TbVEH.Text, fPATH(VECTOfile))) Then Me.TbVEH.Text = fFileWoDir(fbVEH.Files(0), fPATH(VECTOfile)) + If fbVEH.OpenDialog(fFileRepl(Me.TbVEH.Text, fPATH(VECTOfile))) Then _ + Me.TbVEH.Text = fFileWoDir(fbVEH.Files(0), fPATH(VECTOfile)) End Sub Private Sub ButtonMAP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonMAP.Click - If fbENG.OpenDialog(fFileRepl(Me.TbENG.Text, fPATH(VECTOfile))) Then Me.TbENG.Text = fFileWoDir(fbENG.Files(0), fPATH(VECTOfile)) + If fbENG.OpenDialog(fFileRepl(Me.TbENG.Text, fPATH(VECTOfile))) Then _ + Me.TbENG.Text = fFileWoDir(fbENG.Files(0), fPATH(VECTOfile)) End Sub Private Sub ButtonGBX_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGBX.Click - If fbGBX.OpenDialog(fFileRepl(Me.TbGBX.Text, fPATH(VECTOfile))) Then Me.TbGBX.Text = fFileWoDir(fbGBX.Files(0), fPATH(VECTOfile)) + If fbGBX.OpenDialog(fFileRepl(Me.TbGBX.Text, fPATH(VECTOfile))) Then _ + Me.TbGBX.Text = fFileWoDir(fbGBX.Files(0), fPATH(VECTOfile)) End Sub Private Sub BtDesMaxBr_Click_1(sender As System.Object, e As System.EventArgs) Handles BtDesMaxBr.Click - If fbACC.OpenDialog(fFileRepl(Me.TbDesMaxFile.Text, fPATH(VECTOfile))) Then Me.TbDesMaxFile.Text = fFileWoDir(fbACC.Files(0), fPATH(VECTOfile)) + If fbACC.OpenDialog(fFileRepl(Me.TbDesMaxFile.Text, fPATH(VECTOfile))) Then _ + Me.TbDesMaxFile.Text = fFileWoDir(fbACC.Files(0), fPATH(VECTOfile)) End Sub Private Sub BtAccOpen_Click(sender As System.Object, e As System.EventArgs) Handles BtAccOpen.Click @@ -218,7 +223,6 @@ Public Class F_VECTO End If If Not Trim(f) = "" Then F_VEH.openVEH(f) - End Sub 'Open Engine Editor @@ -245,7 +249,6 @@ Public Class F_VECTO End If If Not Trim(f) = "" Then F_ENG.openENG(f) - End Sub 'Open Gearbox Editor @@ -272,7 +275,6 @@ Public Class F_VECTO End If If Not Trim(f) = "" Then F_GBX.openGBX(f) - End Sub #End Region @@ -311,8 +313,13 @@ Public Class F_VECTO 'Help Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\VECTO.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\VECTO.html") + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#job-editor")) Else MsgBox("User Manual not found!", MsgBoxStyle.Critical) End If @@ -365,7 +372,7 @@ Public Class F_VECTO Me.Close() F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked F_MAINForm.OpenVectoFile(file) - Case -1 + Case - 1 Exit Sub Case Else '0 'Continue... @@ -450,7 +457,6 @@ Public Class F_VECTO UpdatePic() '------------------------------------------------------------- - End Sub 'Save file @@ -536,7 +542,6 @@ Public Class F_VECTO Changed = False Return True - End Function 'New file @@ -544,7 +549,7 @@ Public Class F_VECTO If ChangeCheckCancel() Then Exit Sub - n_idle = -1 + n_idle = - 1 FLDfile = "" 'Files @@ -582,7 +587,6 @@ Public Class F_VECTO Me.ToolStripStatusLabelGEN.Text = "" Changed = False UpdatePic() - End Sub @@ -590,16 +594,20 @@ Public Class F_VECTO #Region "'Change' Events" - Private Sub TextBoxVEH_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbVEH.TextChanged + Private Sub TextBoxVEH_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles TbVEH.TextChanged UpdatePic() Change() End Sub - Private Sub TextBoxMAP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbENG.TextChanged + + Private Sub TextBoxMAP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles TbENG.TextChanged UpdatePic() Change() End Sub - Private Sub TextBoxFLD_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TbGBX.TextChanged + Private Sub TextBoxFLD_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ + Handles TbGBX.TextChanged UpdatePic() Change() End Sub @@ -613,7 +621,8 @@ Public Class F_VECTO Change() End Sub - Private Sub TBSStime_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbSStime.TextChanged, TbSSdelay.TextChanged + Private Sub TBSStime_TextChanged(sender As System.Object, e As System.EventArgs) _ + Handles TbSStime.TextChanged, TbSSdelay.TextChanged Change() End Sub @@ -625,7 +634,8 @@ Public Class F_VECTO Change() End Sub - Private Sub TbVmin_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbVmin.TextChanged, TbVminLA.TextChanged + Private Sub TbVmin_TextChanged(sender As System.Object, e As System.EventArgs) _ + Handles TbVmin.TextChanged, TbVminLA.TextChanged Change() End Sub @@ -633,7 +643,8 @@ Public Class F_VECTO Change() End Sub - Private Sub LvCycles_AfterLabelEdit(sender As Object, e As System.Windows.Forms.LabelEditEventArgs) Handles LvCycles.AfterLabelEdit + Private Sub LvCycles_AfterLabelEdit(sender As Object, e As System.Windows.Forms.LabelEditEventArgs) _ + Handles LvCycles.AfterLabelEdit Change() End Sub @@ -667,7 +678,6 @@ Public Class F_VECTO Return False End If - End Function #End Region @@ -680,11 +690,11 @@ Public Class F_VECTO AuxDlog.VehPath = fPATH(VECTOfile) AuxDlog.TbPath.Text = "" - AuxDlog.CbType.SelectedIndex = -1 + AuxDlog.CbType.SelectedIndex = - 1 AuxDlog.CbType.Text = "" AuxDlog.TbID.Text = "" '!!! Vorher Type setzen weil ID beim ändern von Type überschrieben wird !!!" -lbDlog: + lbDlog: If AuxDlog.ShowDialog = Windows.Forms.DialogResult.OK Then ID = UCase(Trim(AuxDlog.TbID.Text)) @@ -715,7 +725,6 @@ lbDlog: Change() End If - End Sub Private Sub ButAuxRem_Click(sender As System.Object, e As System.EventArgs) Handles ButAuxRem.Click @@ -744,7 +753,7 @@ lbDlog: SelItem = LvAux.SelectedItems(0) AuxDlog.VehPath = fPATH(VECTOfile) - AuxDlog.CbType.SelectedIndex = -1 + AuxDlog.CbType.SelectedIndex = - 1 AuxDlog.CbType.Text = SelItem.SubItems(1).Text AuxDlog.TbID.Text = SelItem.SubItems(0).Text 'After Type-set! @@ -763,7 +772,7 @@ lbDlog: End If Else - AuxDlog.CbTech.SelectedIndex = -1 + AuxDlog.CbTech.SelectedIndex = - 1 AuxDlog.TbPath.Text = SelItem.SubItems(2).Text End If @@ -787,7 +796,6 @@ lbDlog: Change() End If - End Sub Private Sub RemoveAuxItem() @@ -815,7 +823,6 @@ lbDlog: End If Change() - End Sub #End Region @@ -834,7 +841,8 @@ lbDlog: #Region "Cycle list" Private Sub LvCycles_DoubleClick(sender As Object, e As System.EventArgs) Handles LvCycles.DoubleClick - If Me.LvCycles.SelectedItems.Count > 0 Then OpenFiles(fFileRepl(Me.LvCycles.SelectedItems(0).SubItems(0).Text, fPATH(VECTOfile))) + If Me.LvCycles.SelectedItems.Count > 0 Then _ + OpenFiles(fFileRepl(Me.LvCycles.SelectedItems(0).SubItems(0).Text, fPATH(VECTOfile))) End Sub Private Sub LvCycles_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvCycles.KeyDown @@ -862,7 +870,6 @@ lbDlog: Change() End If - End Sub Private Sub BtDRIrem_Click(sender As System.Object, e As System.EventArgs) Handles BtDRIrem.Click @@ -895,7 +902,6 @@ lbDlog: End If Change() - End Sub #End Region @@ -922,23 +928,25 @@ lbDlog: TbGBX.Enabled = OnOff ButtonGBX.Enabled = OnOff GrAux.Enabled = OnOff - End Sub 'Start/Stop changed - Private Sub ChBStartStop_CheckedChanged_1(sender As System.Object, e As System.EventArgs) Handles ChBStartStop.CheckedChanged + Private Sub ChBStartStop_CheckedChanged_1(sender As System.Object, e As System.EventArgs) _ + Handles ChBStartStop.CheckedChanged Change() If Not Cfg.DeclMode Then Me.PnStartStop.Enabled = Me.ChBStartStop.Checked End Sub 'LAC changed - Private Sub CbLookAhead_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CbLookAhead.CheckedChanged + Private Sub CbLookAhead_CheckedChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbLookAhead.CheckedChanged Change() Me.PnLookAhead.Enabled = CbLookAhead.Checked End Sub 'EcoRoll / Overspeed changed - Private Sub RdOff_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdOff.CheckedChanged, RdOverspeed.CheckedChanged, RdEcoRoll.CheckedChanged + Private Sub RdOff_CheckedChanged(sender As System.Object, e As System.EventArgs) _ + Handles RdOff.CheckedChanged, RdOverspeed.CheckedChanged, RdEcoRoll.CheckedChanged Dim EcoR As Boolean Dim Ovr As Boolean @@ -958,7 +966,6 @@ lbDlog: Me.TbVmin.Enabled = Ovr Or EcoR Me.Label23.Enabled = Ovr Or EcoR Me.Label21.Enabled = Ovr Or EcoR - End Sub #End Region @@ -1074,7 +1081,7 @@ lbDlog: End If - Me.TbEngTxt.Text = (ENG0.Displ / 1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW " & ENG0.ModelName + Me.TbEngTxt.Text = (ENG0.Displ/1000).ToString("0.0") & " l " & pmax.ToString("#") & " kW " & ENG0.ModelName MAP0 = New cMAP @@ -1233,7 +1240,6 @@ lbDlog: End If - End Sub @@ -1250,14 +1256,15 @@ lbDlog: OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName CmOpenFile.Show(Cursor.Position) - End Sub - Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenWithToolStripMenuItem.Click + Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles OpenWithToolStripMenuItem.Click If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") End Sub - Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ShowInFolderToolStripMenuItem.Click + Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles ShowInFolderToolStripMenuItem.Click If IO.File.Exists(CmFiles(0)) Then Try System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") @@ -1270,7 +1277,4 @@ lbDlog: End Sub #End Region - - - End Class diff --git a/VECTO/GUI/F_VEH.vb b/VECTO/GUI/F_VEH.vb index e7b6f3096e1189df631bca77e41e292a2932b660..9933b7520155c650260edb9c2995b8bfab1fc197 100644 --- a/VECTO/GUI/F_VEH.vb +++ b/VECTO/GUI/F_VEH.vb @@ -15,154 +15,152 @@ Imports System.Collections.Generic ''' </summary> ''' <remarks></remarks> Public Class F_VEH + Dim AxlDlog As F_VEH_Axle + Dim VehFile As String + Public AutoSendTo As Boolean = False + Public JobDir As String = "" - Dim AxlDlog As F_VEH_Axle - Dim VehFile As String - Public AutoSendTo As Boolean = False - Public JobDir As String = "" + Private Changed As Boolean = False - Private Changed As Boolean = False + 'Close - Check for unsaved changes + Private Sub F_VEH_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) _ + Handles Me.FormClosing + If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then + e.Cancel = ChangeCheckCancel() + End If + End Sub + + 'Initialise form + Private Sub F05_VEH_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + Dim txt As String + + Me.TbLoadingMax.Text = "-" + Me.PnLoad.Enabled = Not Cfg.DeclMode + Me.ButAxlAdd.Enabled = Not Cfg.DeclMode + Me.ButAxlRem.Enabled = Not Cfg.DeclMode + Me.CbCdMode.Enabled = Not Cfg.DeclMode + Me.PnCdARig.Visible = Cfg.DeclMode + Me.LbCdATr.Visible = Cfg.DeclMode + Me.PnWheelDiam.Enabled = Not Cfg.DeclMode + + If Cfg.DeclMode Then + Me.PnCdATrTr.Width = 64 + Else + Me.PnCdATrTr.Width = 132 + End If + + AxlDlog = New F_VEH_Axle - 'Close - Check for unsaved changes - Private Sub F_VEH_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing - If e.CloseReason <> CloseReason.ApplicationExitCall And e.CloseReason <> CloseReason.WindowsShutDown Then - e.Cancel = ChangeCheckCancel() - End If - End Sub + Me.CbRim.Items.Add("-") + For Each txt In Declaration.RimsList + Me.CbRim.Items.Add(txt) + Next + + Changed = False + + newVEH() + End Sub - 'Initialise form - Private Sub F05_VEH_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load - Dim txt As String + 'Set HDVclasss + Private Sub SetHDVclass() + Dim s0 As cSegmentTableEntry = Nothing + Dim VehC As tVehCat + Dim AxlC As tAxleConf + Dim MaxMass As Single + Dim HDVclass As String - Me.TbLoadingMax.Text = "-" - Me.PnLoad.Enabled = Not Cfg.DeclMode - Me.ButAxlAdd.Enabled = Not Cfg.DeclMode - Me.ButAxlRem.Enabled = Not Cfg.DeclMode - Me.CbCdMode.Enabled = Not Cfg.DeclMode - Me.PnCdARig.Visible = Cfg.DeclMode - Me.LbCdATr.Visible = Cfg.DeclMode - Me.PnWheelDiam.Enabled = Not Cfg.DeclMode - - If Cfg.DeclMode Then - Me.PnCdATrTr.Width = 64 - Else - Me.PnCdATrTr.Width = 132 - End If + VehC = CType(Me.CbCat.SelectedIndex, tVehCat) - AxlDlog = New F_VEH_Axle - - Me.CbRim.Items.Add("-") - For Each txt In Declaration.RimsList - Me.CbRim.Items.Add(txt) - Next - - Changed = False - - newVEH() - - End Sub - - 'Set HDVclasss - Private Sub SetHDVclass() - Dim s0 As cSegmentTableEntry = Nothing - Dim VehC As tVehCat - Dim AxlC As tAxleConf - Dim MaxMass As Single - Dim HDVclass As String - - VehC = CType(Me.CbCat.SelectedIndex, tVehCat) - - AxlC = CType(Me.CbAxleConfig.SelectedIndex, tAxleConf) - - MaxMass = CSng(fTextboxToNumString(Me.TbMassMass.Text)) - - If Declaration.SegmentTable.SetRef(s0, VehC, AxlC, MaxMass) Then - HDVclass = s0.HDVclass - Else - HDVclass = "-" - End If - - Me.TbHDVclass.Text = HDVclass - - Me.PicVehicle.Image = Image.FromFile(Declaration.ConvPicPath(HDVclass, False)) - - End Sub - - - 'Set generic values for Declaration mode - Private Sub DeclInit() - Dim VehC As tVehCat - Dim AxlC As tAxleConf - Dim MaxMass As Single - Dim HDVclass As String - Dim s0 As cSegmentTableEntry = Nothing - Dim i As Int16 - Dim i0 As Int16 - Dim AxleCount As Int16 - Dim lvi As ListViewItem - Dim rdyn As Single - - If Not Cfg.DeclMode Then Exit Sub - - VehC = CType(Me.CbCat.SelectedIndex, tVehCat) - - AxlC = CType(Me.CbAxleConfig.SelectedIndex, tAxleConf) - - MaxMass = CSng(fTextboxToNumString(Me.TbMassMass.Text)) - - If Declaration.SegmentTable.SetRef(s0, VehC, AxlC, MaxMass) Then - HDVclass = s0.HDVclass - - AxleCount = s0.AxleShares(s0.Missions(0)).Count - i0 = LvRRC.Items.Count - - If AxleCount > i0 Then - For i = 1 To AxleCount - LvRRC.Items.Count - lvi = New ListViewItem - lvi.SubItems(0).Text = (i + i0).ToString - lvi.SubItems.Add("-") - lvi.SubItems.Add("no") - lvi.SubItems.Add("") - lvi.SubItems.Add("") - lvi.SubItems.Add("-") - lvi.SubItems.Add("-") - LvRRC.Items.Add(lvi) - Next - - ElseIf AxleCount < LvRRC.Items.Count Then - For i = AxleCount To LvRRC.Items.Count - 1 - LvRRC.Items.RemoveAt(LvRRC.Items.Count - 1) - 'LvRRC.Items(i).ForeColor = Color.Red - Next - End If - - If s0.TrailerOnlyInLongHaul Then - Me.PnCdATrTr.Width = 64 - Me.PnCdARig.Visible = True - Me.LbCdATr.Visible = True - Else - Me.PnCdATrTr.Width = 132 - Me.PnCdARig.Visible = False - Me.LbCdATr.Visible = False - End If + AxlC = CType(Me.CbAxleConfig.SelectedIndex, tAxleConf) + + MaxMass = CSng(fTextboxToNumString(Me.TbMassMass.Text)) + + If Declaration.SegmentTable.SetRef(s0, VehC, AxlC, MaxMass) Then + HDVclass = s0.HDVclass + Else + HDVclass = "-" + End If + + Me.TbHDVclass.Text = HDVclass + + Me.PicVehicle.Image = Image.FromFile(Declaration.ConvPicPath(HDVclass, False)) + End Sub + + + 'Set generic values for Declaration mode + Private Sub DeclInit() + Dim VehC As tVehCat + Dim AxlC As tAxleConf + Dim MaxMass As Single + Dim HDVclass As String + Dim s0 As cSegmentTableEntry = Nothing + Dim i As Int16 + Dim i0 As Int16 + Dim AxleCount As Int16 + Dim lvi As ListViewItem + Dim rdyn As Single - Me.PnAll.Enabled = True + If Not Cfg.DeclMode Then Exit Sub - Else - Me.PnAll.Enabled = False - HDVclass = "-" - End If + VehC = CType(Me.CbCat.SelectedIndex, tVehCat) - Me.TbMassExtra.Text = "-" - Me.TbLoad.Text = "-" + AxlC = CType(Me.CbAxleConfig.SelectedIndex, tAxleConf) + + MaxMass = CSng(fTextboxToNumString(Me.TbMassMass.Text)) + + If Declaration.SegmentTable.SetRef(s0, VehC, AxlC, MaxMass) Then + HDVclass = s0.HDVclass + + AxleCount = s0.AxleShares(s0.Missions(0)).Count + i0 = LvRRC.Items.Count + + If AxleCount > i0 Then + For i = 1 To AxleCount - LvRRC.Items.Count + lvi = New ListViewItem + lvi.SubItems(0).Text = (i + i0).ToString + lvi.SubItems.Add("-") + lvi.SubItems.Add("no") + lvi.SubItems.Add("") + lvi.SubItems.Add("") + lvi.SubItems.Add("-") + lvi.SubItems.Add("-") + LvRRC.Items.Add(lvi) + Next + + ElseIf AxleCount < LvRRC.Items.Count Then + For i = AxleCount To LvRRC.Items.Count - 1 + LvRRC.Items.RemoveAt(LvRRC.Items.Count - 1) + 'LvRRC.Items(i).ForeColor = Color.Red + Next + End If + + If s0.TrailerOnlyInLongHaul Then + Me.PnCdATrTr.Width = 64 + Me.PnCdARig.Visible = True + Me.LbCdATr.Visible = True + Else + Me.PnCdATrTr.Width = 132 + Me.PnCdARig.Visible = False + Me.LbCdATr.Visible = False + End If + + Me.PnAll.Enabled = True + + Else + Me.PnAll.Enabled = False + HDVclass = "-" + End If + + Me.TbMassExtra.Text = "-" + Me.TbLoad.Text = "-" Me.CbCdMode.SelectedIndex = CType(tCdMode.CdOfVdecl, Integer) Me.TbCdFile.Text = "" If Me.LvRRC.Items.Count > 0 Then rdyn = Declaration.rdyn(Me.LvRRC.Items(1).SubItems(5).Text, Me.CbRim.Text) Else - rdyn = -1 + rdyn = - 1 End If If rdyn < 0 Then @@ -170,11 +168,9 @@ Public Class F_VEH Else Me.TBrdyn.Text = rdyn End If - End Sub - #Region "Toolbar" 'New @@ -220,13 +216,17 @@ Public Class F_VEH End If F_VECTO.TbVEH.Text = fFileWoDir(VehFile, JobDir) - End Sub 'Help Private Sub ToolStripButton1_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton1.Click - If IO.File.Exists(MyAppPath & "User Manual\GUI\GUI_Calls\VEH.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\GUI\GUI_Calls\VEH.html") + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + Dim BrowserRegistryString As String = + My.Computer.Registry.ClassesRoot.OpenSubKey("\http\shell\open\command\").GetValue("").ToString + Dim DefaultBrowserPath As String = + System.Text.RegularExpressions.Regex.Match(BrowserRegistryString, "(\"".*?\"")").Captures(0).ToString + System.Diagnostics.Process.Start(DefaultBrowserPath, + String.Format("""{0}{1}""", MyAppPath, "User Manual\help.html#vehicle-editor")) Else MsgBox("User Manual not found!", MsgBoxStyle.Critical) End If @@ -288,13 +288,11 @@ Public Class F_VEH DeclInit() - VehFile = "" Me.Text = "VEH Editor" Me.LbStatus.Text = "" Changed = False - End Sub 'Open VEH @@ -323,7 +321,7 @@ Public Class F_VEH Me.Close() F_MAINForm.RbDecl.Checked = Not F_MAINForm.RbDecl.Checked F_MAINForm.OpenVectoFile(file) - Case -1 + Case - 1 Exit Sub Case Else '0 'Continue... @@ -401,7 +399,6 @@ Public Class F_VEH Me.Activate() Changed = False - End Sub 'Save VEH @@ -477,13 +474,13 @@ Public Class F_VEH Changed = False Return True - End Function #Region "Cd" 'Cd Mode Change - Private Sub CbCdMode_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbCdMode.SelectedIndexChanged + Private Sub CbCdMode_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbCdMode.SelectedIndexChanged Dim bEnabled As Boolean Select Case CType(Me.CbCdMode.SelectedIndex, tCdMode) @@ -521,8 +518,8 @@ Public Class F_VEH ex = "vcdb" End If - If fbCDx.OpenDialog(fFileRepl(Me.TbCdFile.Text, fPATH(VehFile)), False, ex) Then TbCdFile.Text = fFileWoDir(fbCDx.Files(0), fPATH(VehFile)) - + If fbCDx.OpenDialog(fFileRepl(Me.TbCdFile.Text, fPATH(VehFile)), False, ex) Then _ + TbCdFile.Text = fFileWoDir(fbCDx.Files(0), fPATH(VehFile)) End Sub 'Open Cd File @@ -535,7 +532,8 @@ Public Class F_VEH #Region "Retarder" 'Rt Type Change - Private Sub CbRtType_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbRtType.SelectedIndexChanged + Private Sub CbRtType_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbRtType.SelectedIndexChanged Select Case Me.CbRtType.SelectedIndex Case 1 'Primary Me.LbRtRatio.Text = "Ratio to engine speed" @@ -555,14 +553,13 @@ Public Class F_VEH End Select Change() - End Sub 'Rt File Browse Private Sub BtRtBrowse_Click(sender As System.Object, e As System.EventArgs) Handles BtRtBrowse.Click - If fbRLM.OpenDialog(fFileRepl(Me.TbRtPath.Text, fPATH(VehFile))) Then TbRtPath.Text = fFileWoDir(fbRLM.Files(0), fPATH(VehFile)) - + If fbRLM.OpenDialog(fFileRepl(Me.TbRtPath.Text, fPATH(VehFile))) Then _ + TbRtPath.Text = fFileWoDir(fbRLM.Files(0), fPATH(VehFile)) End Sub #End Region @@ -595,7 +592,6 @@ Public Class F_VEH Return False End If - End Function Private Sub TBmass_TextChanged(sender As System.Object, e As System.EventArgs) Handles TbMass.TextChanged @@ -611,12 +607,14 @@ Public Class F_VEH Change() End Sub - Private Sub CbRim_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbRim.SelectedIndexChanged + Private Sub CbRim_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbRim.SelectedIndexChanged Change() DeclInit() End Sub - Private Sub TBcw_TextChanged(sender As System.Object, e As System.EventArgs) Handles TBcdA.TextChanged, TBcdA2.TextChanged + Private Sub TBcw_TextChanged(sender As System.Object, e As System.EventArgs) _ + Handles TBcdA.TextChanged, TBcdA2.TextChanged Change() End Sub @@ -637,7 +635,8 @@ Public Class F_VEH Change() End Sub - Private Sub CbCat_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbCat.SelectedIndexChanged + Private Sub CbCat_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbCat.SelectedIndexChanged Change() SetHDVclass() DeclInit() @@ -655,7 +654,8 @@ Public Class F_VEH DeclInit() End Sub - Private Sub CbAxleConfig_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CbAxleConfig.SelectedIndexChanged + Private Sub CbAxleConfig_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) _ + Handles CbAxleConfig.SelectedIndexChanged Change() SetHDVclass() DeclInit() @@ -663,166 +663,159 @@ Public Class F_VEH #End Region - 'Update maximum load when truck/trailer mass was changed - Private Sub SetMaxLoad() - If Not Cfg.DeclMode Then - If IsNumeric(Me.TbMass.Text) And IsNumeric(Me.TbMassExtra.Text) And IsNumeric(Me.TbMassMass.Text) Then - Me.TbLoadingMax.Text = CStr(CSng(Me.TbMassMass.Text) * 1000 - CSng(Me.TbMass.Text) - CSng(Me.TbMassExtra.Text)) - Else - Me.TbLoadingMax.Text = "" - End If - End If - End Sub + 'Update maximum load when truck/trailer mass was changed + Private Sub SetMaxLoad() + If Not Cfg.DeclMode Then + If IsNumeric(Me.TbMass.Text) And IsNumeric(Me.TbMassExtra.Text) And IsNumeric(Me.TbMassMass.Text) Then + Me.TbLoadingMax.Text = CStr(CSng(Me.TbMassMass.Text)*1000 - CSng(Me.TbMass.Text) - CSng(Me.TbMassExtra.Text)) + Else + Me.TbLoadingMax.Text = "" + End If + End If + End Sub #Region "Axle Configuration" - Private Sub ButAxlAdd_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlAdd.Click - Dim lv0 As ListViewItem - - AxlDlog.Clear() + Private Sub ButAxlAdd_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlAdd.Click + Dim lv0 As ListViewItem - If AxlDlog.ShowDialog = Windows.Forms.DialogResult.OK Then - lv0 = New ListViewItem + AxlDlog.Clear() - lv0.SubItems(0).Text = Me.LvRRC.Items.Count + 1 - lv0.SubItems.Add(Trim(AxlDlog.TbAxleShare.Text)) - If AxlDlog.CbTwinT.Checked Then - lv0.SubItems.Add("yes") - Else - lv0.SubItems.Add("no") - End If - lv0.SubItems.Add(Trim(AxlDlog.TbRRC.Text)) - lv0.SubItems.Add(Trim(AxlDlog.TbFzISO.Text)) - lv0.SubItems.Add(Trim(AxlDlog.CbWheels.Text)) - lv0.SubItems.Add(Trim(AxlDlog.TbI_wheels.Text)) + If AxlDlog.ShowDialog = Windows.Forms.DialogResult.OK Then + lv0 = New ListViewItem - Me.LvRRC.Items.Add(lv0) - - Change() - DeclInit() - - End If - - - End Sub + lv0.SubItems(0).Text = Me.LvRRC.Items.Count + 1 + lv0.SubItems.Add(Trim(AxlDlog.TbAxleShare.Text)) + If AxlDlog.CbTwinT.Checked Then + lv0.SubItems.Add("yes") + Else + lv0.SubItems.Add("no") + End If + lv0.SubItems.Add(Trim(AxlDlog.TbRRC.Text)) + lv0.SubItems.Add(Trim(AxlDlog.TbFzISO.Text)) + lv0.SubItems.Add(Trim(AxlDlog.CbWheels.Text)) + lv0.SubItems.Add(Trim(AxlDlog.TbI_wheels.Text)) - Private Sub ButAxlRem_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlRem.Click - RemoveAxleItem() - End Sub + Me.LvRRC.Items.Add(lv0) - Private Sub LvAxle_DoubleClick(sender As Object, e As System.EventArgs) Handles LvRRC.DoubleClick - EditAxleItem() - End Sub + Change() + DeclInit() - Private Sub LvAxle_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvRRC.KeyDown - Select Case e.KeyCode - Case Keys.Delete, Keys.Back - If Not Cfg.DeclMode Then RemoveAxleItem() - Case Keys.Enter - EditAxleItem() - End Select - End Sub + End If + End Sub - Private Sub RemoveAxleItem() - Dim lv0 As ListViewItem - Dim i As Integer + Private Sub ButAxlRem_Click(sender As System.Object, e As System.EventArgs) Handles ButAxlRem.Click + RemoveAxleItem() + End Sub - If LvRRC.SelectedItems.Count = 0 Then - If LvRRC.Items.Count = 0 Then - Exit Sub - Else - LvRRC.Items(LvRRC.Items.Count - 1).Selected = True - End If - End If + Private Sub LvAxle_DoubleClick(sender As Object, e As System.EventArgs) Handles LvRRC.DoubleClick + EditAxleItem() + End Sub - LvRRC.SelectedItems(0).Remove() + Private Sub LvAxle_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles LvRRC.KeyDown + Select Case e.KeyCode + Case Keys.Delete, Keys.Back + If Not Cfg.DeclMode Then RemoveAxleItem() + Case Keys.Enter + EditAxleItem() + End Select + End Sub - If LvRRC.Items.Count > 0 Then + Private Sub RemoveAxleItem() + Dim lv0 As ListViewItem + Dim i As Integer - i = 0 - For Each lv0 In LvRRC.Items - i += 1 - lv0.SubItems(0).Text = i.ToString - Next + If LvRRC.SelectedItems.Count = 0 Then + If LvRRC.Items.Count = 0 Then + Exit Sub + Else + LvRRC.Items(LvRRC.Items.Count - 1).Selected = True + End If + End If - LvRRC.Items(LvRRC.Items.Count - 1).Selected = True - LvRRC.Focus() - End If + LvRRC.SelectedItems(0).Remove() - Change() + If LvRRC.Items.Count > 0 Then - End Sub + i = 0 + For Each lv0 In LvRRC.Items + i += 1 + lv0.SubItems(0).Text = i.ToString + Next - Private Sub EditAxleItem() - Dim LV0 As ListViewItem + LvRRC.Items(LvRRC.Items.Count - 1).Selected = True + LvRRC.Focus() + End If - If LvRRC.SelectedItems.Count = 0 Then Exit Sub + Change() + End Sub - LV0 = LvRRC.SelectedItems(0) + Private Sub EditAxleItem() + Dim LV0 As ListViewItem - AxlDlog.TbAxleShare.Text = LV0.SubItems(1).Text - AxlDlog.CbTwinT.Checked = (LV0.SubItems(2).Text = "yes") - AxlDlog.TbRRC.Text = LV0.SubItems(3).Text - AxlDlog.TbFzISO.Text = LV0.SubItems(4).Text - AxlDlog.TbI_wheels.Text = LV0.SubItems(6).Text - AxlDlog.CbWheels.Text = LV0.SubItems(5).Text + If LvRRC.SelectedItems.Count = 0 Then Exit Sub - If AxlDlog.ShowDialog = Windows.Forms.DialogResult.OK Then - LV0.SubItems(1).Text = AxlDlog.TbAxleShare.Text - If AxlDlog.CbTwinT.Checked Then - LV0.SubItems(2).Text = "yes" - Else - LV0.SubItems(2).Text = "no" - End If - LV0.SubItems(3).Text = AxlDlog.TbRRC.Text - LV0.SubItems(4).Text = AxlDlog.TbFzISO.Text - LV0.SubItems(5).Text = AxlDlog.CbWheels.Text - LV0.SubItems(6).Text = AxlDlog.TbI_wheels.Text + LV0 = LvRRC.SelectedItems(0) - Change() - DeclInit() + AxlDlog.TbAxleShare.Text = LV0.SubItems(1).Text + AxlDlog.CbTwinT.Checked = (LV0.SubItems(2).Text = "yes") + AxlDlog.TbRRC.Text = LV0.SubItems(3).Text + AxlDlog.TbFzISO.Text = LV0.SubItems(4).Text + AxlDlog.TbI_wheels.Text = LV0.SubItems(6).Text + AxlDlog.CbWheels.Text = LV0.SubItems(5).Text - End If + If AxlDlog.ShowDialog = Windows.Forms.DialogResult.OK Then + LV0.SubItems(1).Text = AxlDlog.TbAxleShare.Text + If AxlDlog.CbTwinT.Checked Then + LV0.SubItems(2).Text = "yes" + Else + LV0.SubItems(2).Text = "no" + End If + LV0.SubItems(3).Text = AxlDlog.TbRRC.Text + LV0.SubItems(4).Text = AxlDlog.TbFzISO.Text + LV0.SubItems(5).Text = AxlDlog.CbWheels.Text + LV0.SubItems(6).Text = AxlDlog.TbI_wheels.Text + Change() + DeclInit() - End Sub + End If + End Sub #End Region #Region "Open File Context Menu" - Private CmFiles As String() - - Private Sub OpenFiles(ParamArray files() As String) + Private CmFiles As String() - If files.Length = 0 Then Exit Sub + Private Sub OpenFiles(ParamArray files() As String) - CmFiles = files + If files.Length = 0 Then Exit Sub - OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName + CmFiles = files - CmOpenFile.Show(Cursor.Position) + OpenWithToolStripMenuItem.Text = "Open with " & Cfg.OpenCmdName - End Sub + CmOpenFile.Show(Cursor.Position) + End Sub - Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles OpenWithToolStripMenuItem.Click - If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") - End Sub + Private Sub OpenWithToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles OpenWithToolStripMenuItem.Click + If Not FileOpenAlt(CmFiles(0)) Then MsgBox("Failed to open file!") + End Sub - Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles ShowInFolderToolStripMenuItem.Click - If IO.File.Exists(CmFiles(0)) Then - Try - System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") - Catch ex As Exception - MsgBox("Failed to open file!") - End Try - Else - MsgBox("File not found!") - End If - End Sub + Private Sub ShowInFolderToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) _ + Handles ShowInFolderToolStripMenuItem.Click + If IO.File.Exists(CmFiles(0)) Then + Try + System.Diagnostics.Process.Start("explorer", "/select,""" & CmFiles(0) & "") + Catch ex As Exception + MsgBox("Failed to open file!") + End Try + Else + MsgBox("File not found!") + End If + End Sub #End Region - - - End Class diff --git a/VECTO/GUI/F_Welcome.vb b/VECTO/GUI/F_Welcome.vb index fd53aee8ed773d7e8af708ea7140b6dc422c9df0..1daa1694e2288363090091b5b432734d5046e722 100644 --- a/VECTO/GUI/F_Welcome.vb +++ b/VECTO/GUI/F_Welcome.vb @@ -15,33 +15,32 @@ Imports System.Windows.Forms ''' </summary> ''' <remarks></remarks> Public Class F_Welcome + 'Close + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub - 'Close - Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click - Me.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Close() - End Sub - - 'Init - Private Sub F_Welcome_Load(sender As Object, e As System.EventArgs) Handles Me.Load + 'Init + Private Sub F_Welcome_Load(sender As Object, e As System.EventArgs) Handles Me.Load Me.Text = "VECTO " & VECTOvers & " / VectoCore " & COREvers - End Sub + End Sub - 'Open Release Notes - Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click - If IO.File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\Release Notes.pdf") - Else - MsgBox("Release Notes not found!", MsgBoxStyle.Critical) - End If - End Sub + 'Open Release Notes + Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click + If IO.File.Exists(MyAppPath & "User Manual\Release Notes.pdf") Then + System.Diagnostics.Process.Start(MyAppPath & "User Manual\Release Notes.pdf") + Else + MsgBox("Release Notes not found!", MsgBoxStyle.Critical) + End If + End Sub - 'Open Quick Start Guide - Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click - If IO.File.Exists(MyAppPath & "User Manual\usermanual.html") Then - System.Diagnostics.Process.Start(MyAppPath & "User Manual\usermanual.html") - Else - MsgBox("Quick Start Guide not found!", MsgBoxStyle.Critical) - End If - End Sub + 'Open Quick Start Guide + Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click + If IO.File.Exists(MyAppPath & "User Manual\help.html") Then + System.Diagnostics.Process.Start(MyAppPath & "User Manual\help.html") + Else + MsgBox("User manual not found!", MsgBoxStyle.Critical) + End If + End Sub End Class diff --git a/VECTO/VECTO.vbproj b/VECTO/VECTO.vbproj index c73cf190a755085a25dc90e74b2a57bb5e74a176..560df51c89741a3ece3398444f12de475657f402 100644 --- a/VECTO/VECTO.vbproj +++ b/VECTO/VECTO.vbproj @@ -104,6 +104,7 @@ <Reference Include="System.Drawing" /> <Reference Include="System.Management" /> <Reference Include="System.Runtime.Remoting" /> + <Reference Include="System.Web" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms.DataVisualization" /> <Reference Include="System.Xml" />